Aller au contenu

Mon pod est en erreur

Votre pod apparaît dans kubectl get pods, mais son statut n’est pas Running (ou il redémarre en boucle). Cette page couvre les trois cas les plus fréquents, avec les causes propres à Kontainers qu’un habitué d’un autre cluster ne devinerait pas.

Commencez toujours par :

Fenêtre de terminal
kubectl describe pod <pod> -n <namespace>
kubectl logs <pod> -n <namespace> --previous

CrashLoopBackOff

Le conteneur démarre puis s’arrête, en boucle. Kubernetes espace les redémarrages (back-off), d’où des périodes d’attente croissantes.

C’est presque toujours votre application qui se termine : configuration manquante, dépendance injoignable, erreur au boot. Les logs de l’exécution précédente (--previous) contiennent la vraie erreur.

Vérifiez notamment :

  • une variable d’environnement ou un secret manquant (ConfigMaps et Secrets) ;
  • une dépendance pas encore prête (base de données…) — ajoutez une readinessProbe et laissez le pod redémarrer, ou un initContainer d’attente ;
  • une dépendance dans un namespace d’une autre organisation : bloquée par design (isolation réseau).

ImagePullBackOff

L’image ne peut pas être téléchargée.

Fenêtre de terminal
kubectl describe pod <pod> -n <namespace> | grep -A3 "Failed"

Causes classiques : nom d’image mal orthographié, tag inexistant, registre privé sans pull secret.

OOMKilled

Le conteneur a dépassé sa mémoire allouée et a été tué. Repérable dans describe pod :

Last State: Terminated
Reason: OOMKilled

Dimensionnez la request sur le pic réel de consommation, visible dans votre monitoring ou via :

Fenêtre de terminal
kubectl top pods -n <namespace>

Ce n’est pas l’un de ces trois cas ?