Aller au contenu principal

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