Chapitre 2.6 - kubelet
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre le rôle de kubelet
- Expliquer comment kubelet gère les Pods
- Comprendre les health checks
- Identifier les interactions avec le Container Runtime
Qu'est-ce que kubelet?
kubelet est l'agent qui s'exécute sur chaque Worker Node. Il est responsable de:
- Gérer les Pods sur son node
- Communiquer avec l'API Server
- Démarrer/arrêter les conteneurs
- Effectuer les health checks
Rôles de kubelet
1. Gestion des Pods
kubelet surveille les Pods assignés à son node:
2. Communication avec l'API Server
kubelet:
- Reçoit les spécifications des Pods
- Signale l'état des Pods
- Envoie les métriques et événements
3. Health Checks
kubelet effectue trois types de probes:
- Liveness Probe: Le conteneur est-il vivant?
- Readiness Probe: Le conteneur est-il prêt?
- Startup Probe: Le conteneur a-t-il démarré?
Cycle de Vie d'un Pod
Health Checks (Probes)
Liveness Probe
Détermine si le conteneur doit être redémarré:
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
Si la probe échoue → kubelet redémarre le conteneur.
Readiness Probe
Détermine si le conteneur est prêt à recevoir du trafic:
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
Si la probe échoue → le Pod est retiré des Services.
Startup Probe
Pour les applications lentes à démarrer:
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10
Interaction avec Container Runtime
kubelet communique avec le Container Runtime via CRI (Container Runtime Interface):
Opérations:
CreateContainer()StartContainer()StopContainer()RemoveContainer()
Métriques et Événements
kubelet collecte et envoie:
- Métriques: CPU, mémoire, disque, réseau
- Événements: Création, démarrage, arrêt, erreurs
- Statut: État des Pods et conteneurs
Sécurité
kubelet:
- Authentifie avec l'API Server (certificats)
- Valide les images avant de les exécuter
- Applique les politiques de sécurité (Pod Security Standards)
Commandes Utiles
# Voir les logs de kubelet (sur le node)
journalctl -u kubelet
# Voir les Pods sur un node spécifique
kubectl get pods --field-selector spec.nodeName=<node-name>
# Voir les événements d'un Pod
kubectl describe pod <pod-name>
Résumé
Dans ce chapitre, vous avez appris:
kubelet: Agent qui gère les Pods sur chaque Worker Node
Gestion: Création, démarrage, arrêt des conteneurs
Health Checks: Liveness, Readiness, Startup probes
Communication: Avec API Server et Container Runtime
Surveillance: Métriques et événements en continu
Prochaines Étapes
Maintenant que vous comprenez kubelet:
Chapitre 2.7: kube-proxy - Networking
Chapitre 2.8: Container Runtime
Chapitre créé le: Décembre 2024