Content slides
Qu'est-ce que Kubernetes ?¶
Kubernetes (K8s) est l'orchestrateur de conteneurs devenu le standard de l'industrie
- Maintenu par la Cloud Native Computing Foundation (CNCF)
- Permet d'automatiser le déploiement, la gestion et le passage à l'échelle
- Philosophie déclarative : On définit l'état désiré, K8s se charge de l'atteindre
- Réconciliation constante entre l'état réel et l'état attendu
Avantages de l'orchestration¶
- Self-healing : Redémarre ou remplace automatiquement les conteneurs défaillants
- Auto-scaling : Adapte le nombre de réplicas en fonction de la charge (HPA)
- Zero Downtime : Déploiements progressifs (RollingUpdate) sans interruption de service
- Abstraction : Masque la complexité de l'infrastructure sous-jacente (Cloud ou On-premise)
Architecture - Plan de contrôle (Control Plane)¶
Le "cerveau" du cluster qui prend les décisions globales :
- API Server : Hub central du cluster, traite toutes les requêtes (REST)
- etcd : Base de données clé-valeur (l'unique source de vérité du cluster)
- Controller Manager : Gère les boucles de contrôle (répliques, nœuds)
- Scheduler : Affecte les nouveaux Pods aux nœuds selon les ressources disponibles
Architecture - Nœuds de travail (Worker Nodes)¶
Les machines qui exécutent réellement vos applications :
- Kubelet : Agent veillant à ce que les conteneurs tournent dans les Pods
- Kube-proxy : Gère les règles réseau et le load-balancing interne
- Container Runtime : Logiciel qui lance les conteneurs (containerd, CRI-O)
Objets Kubernetes essentiels¶
- Namespaces : Isolation logique (ex : dev, prod, monitoring)
- Pods : La plus petite unité (un ou plusieurs conteneurs partageant IP et stockage)
- Deployments : Gère le cycle de vie, les versions et le nombre de réplicas
- Services : Adresse IP stable et DNS interne pour accéder aux Pods
- Ingress : Exposition HTTP/HTTPS du cluster vers l'extérieur
Commandes de survie (kubectl)¶
# Appliquer une configuration (Approche déclarative)
kubectl apply -f deployment.yaml
# Inspecter l'état des ressources
kubectl get pods
kubectl get nodes
# Débugger (Indispensable)
kubectl describe pod <nom>
kubectl logs -f <nom>
# Accès interactif
kubectl exec -it <nom> -- /bin/bash
Conclusion¶
- Kubernetes est le socle des infrastructures modernes (Cloud Native)
- L'approche déclarative permet de gérer des milliers de conteneurs sans effort manuel
- Maîtriser kubectl et les objets de base est la première étape pour tout SRE