2
votes

Raisons de l'échec de l'état du pod

Si l'état du pod est Échec , Kubernetes essaiera de créer de nouveaux pods jusqu'à ce qu'il atteigne terminated-pod-gc-threshold dans kube-controller-manager < / code>. Cela laissera de nombreux pods ayant échoué dans un cluster et devront être nettoyés.

Existe-t-il d'autres raisons à l'exception de Expulsé qui entraîneront un échec du pod?


4 commentaires

Que dit kubectl describe pod NAME ? Veuillez ajouter le résultat à votre question. Les vérifications de l'état du pod sont-elles correctement configurées? Pouvez-vous montrer leur configuration?


@John Je n'ai pas vu d'autres raisons à l'exception de Expulsé qui causent un échec du pod Failed et je veux savoir s'il y a d'autres raisons: D


Oh, alors c'est plus une question théorique?


Oui, je veux savoir si quelqu'un a vu des raisons autres que Expulsé qui causent un Échec du pod.


3 Réponses :


2
votes

Les POD ne survivront pas aux échecs de planification, aux pannes de nœuds ou à d'autres expulsions, telles que le manque de ressources, ou dans le cas de la maintenance des nœuds. Les pods ne doivent pas être créés manuellement mais presque toujours via des contrôleurs tels que les déploiements (auto-réparation, réplication, etc.).

La raison pour laquelle le pod a échoué ou a été arrêté peut être obtenue par

kubeclt describe pod <pod_name>

Autres situations que j'ai rencontrées lorsque le pod a échoué:

  • Problèmes d'image (qui n'existent plus)
  • Lorsque le pod tente d'accéder à ConfigMap ou Secrets, mais qu'il n'est pas trouvé dans l'espace de noms.
  • Échec de la sonde de vivacité
  • Échec du montage du volume persistant
  • Erreur de validation

De plus, l'expulsion est basée sur des ressources - EvictionPolicy

Cela peut aussi être causé par le DRAIN du Node / Pod. Vous pouvez en savoir plus sur DRAIN ici .


0 commentaires

4
votes

Il peut y avoir de nombreuses raisons pour que l'état du POD soit FAILED . Il vous suffit de vérifier les problèmes (s'il en existe) en exécutant la commande

kubectl -n <namespace> describe pod <pod-name>

Vérifiez attentivement la section EVENTS où se trouvent tous les événements survenus lors de la création du POD répertorié. J'espère que vous pourrez identifier la cause de l'échec à partir de là.

Cependant, il y a plusieurs raisons à l'échec du POD, certaines d'entre elles sont les suivantes:

  • Mauvaise image utilisée pour le POD.
  • Une commande / des arguments incorrects sont transmis au POD.
  • Kubelet n'a pas réussi à vérifier la vivacité du POD (c'est-à-dire que la sonde de vivacité a échoué).
  • La vérification de l'état du POD a échoué.
  • Problème dans le plugin CNI réseau (mauvaise configuration du plugin CNI utilisé pour la mise en réseau).


Par exemple:

échec du pod en raison d'une erreur d'extraction d'image

Dans l'exemple ci-dessus, l'image "not-so-busybox" n'a pas pu être extraite car elle n'existe pas. pod ECHEC à s'exécuter. L'état et les événements du pod décrivent clairement le problème.


0 commentaires

2
votes

Faites simplement ceci:

kubectl get pods <pod_name> -o yaml

Et dans la sortie, vers la fin, vous pouvez voir quelque chose comme ceci:

 entrez la description de l'image ici

Cela vous donnera une bonne idée de l'endroit exact où le pod a échoué et de ce qui s'est passé.


0 commentaires