Le control plane
Cerveau qui surveille l’état du cluster.
Formation suivie via le blog de Stéphane Robert : parcours Kubernetes.
3 outils permettent de créer des clusters K8S dans Docker : Kind, k3d/k3s, minikube.
Kind « a été conçu avant tout pour tester Kubernetes » et c’est un installeur certifié conforme par la CNCF.
kubectl cluster-info # Vérifier la connexionkubectl get nodes # Lister les machineskubectl get namespaces # Lister les espaces de nomskubectl get pods -A # Lister tous les podskubectl get deployments -A # Lister tous les deploymentskubectl get services -A # Lister tous les serviceskubectl apply -f fichier.yaml # Appliquer une configurationkubectl diff -f fichier.yaml # Voir les différencesEnsemble de machines qui travaillent ensemble pour exécuter les applications. Il se compose de deux types de machines :
Le control plane
Cerveau qui surveille l’état du cluster.
Les worker nodes
Celles qui exécutent les conteneurs.
Machine (physique ou virtuelle) qui fait partie du cluster. Chaque node peut exécuter plusieurs pods.
Control plane
| Composant | Rôle |
|---|---|
| API Server | Point d’entrée unique du cluster : tous les composants passent par lui. |
| etcd | Base clé-valeur qui stocke l’état du cluster. Seul l’API Server y accède. |
| Scheduler | Choisit sur quel node placer chaque nouveau Pod. |
| Controller Manager | Fait tourner les contrôleurs qui ramènent l’état réel vers l’état souhaité. |
| Cloud Controller Manager | Fait le lien avec le fournisseur cloud (load balancers, disques…). Absent hors cloud. |
Worker nodes
| Composant | Rôle |
|---|---|
| kubelet | Agent du node : démarre les Pods qui lui sont assignés et remonte leur état. |
| kube-proxy | Traduit les Services en règles réseau sur le node. |
| Container runtime | Télécharge les images et lance les conteneurs (containerd, CRI-O). |
Le détail de chaque composant est dans la fiche 4. L’architecture.
Espace de noms qui isole logiquement les ressources.
| Namespace | Usage |
|---|---|
default |
vos applications si rien n’est spécifié |
kube-system |
composants internes de Kubernetes |
kube-public |
ressources lisibles par tous |
kube-node-lease |
gestion interne des heartbeats des nodes |
Unité minimale que Kubernetes déploie. Dans la majorité des cas, il contient un seul conteneur applicatif. Plusieurs conteneurs dans un même Pod partagent le même réseau (même IP) et peuvent partager des volumes.
kubectl get pods -AContrôleur le plus courant pour faire tourner une application. Il ne se contente pas de créer des pods, il maintient le bon nombre de répliques, remplace ceux qui tombent et pilote les mises à jour progressives.
Le Deployment crée des Pods avec des labels qu’il a lui-même déterminés. Ces labels sont nécessaires pour l’identification des Pods et pour les distinguer les uns des autres.
Fournit un point d’accès stable à un groupe de pods. Comme les pods sont éphémères (ils peuvent être recréés avec une nouvelle IP), on ne les contacte pas directement : on passe par le Service, qui garde une adresse stable et répartit le trafic.
Types de services :
Un service ne rend pas les pods publics. Il leur donne d’abord une adresse stable à l’intérieur du cluster : les pods peuvent mourir et renaître avec des adresses différentes, celle du Service ne bouge pas.
Pour obtenir des informations sur un Service :
kubectl describe service <name> -n <namespace>Deux informations importantes sont à vérifier en cas d’investigation :
app=nginx).