-1
votes

Pourquoi Kubettes Pod ne parvient pas à exécuter l'image Docker

Je crée un fichier binaire simple exécutable programme code> qui fonctionne pour toujours: xxx pré>

puis je dockerise ce programme à l'aide de tels dockerfile code>: xxx pré>

puis je construit et appuyez sur l'image Docker sur un référentiel global: p> xxx pré>

puis je crée un déployé. YAML CODE> Fichier de ce programme Pour être exécuté sur un POD Kubettes: P>

Events:
  Type     Reason     Age                 From                         Message
  ----     ------     ----                ----                         -------
  Normal   Scheduled  27m                 default-scheduler            Successfully assigned 
mariusl/ingress to mma7-standard5-ime
  Normal   Created    26m (x4 over 27m)   kubelet, mma7-standard5-ime  Created container 
ingress
  Normal   Started    26m (x4 over 27m)   kubelet, mma7-standard5-ime  Started container 
ingress
  Normal   Pulling    25m (x5 over 27m)   kubelet, mma7-standard5-ime  Pulling image 
"docker:5000/program"
  Normal   Pulled     25m (x5 over 27m)   kubelet, mma7-standard5-ime  Successfully pulled 
image "docker:5000/program"
  Warning  BackOff    2m (x117 over 27m)  kubelet, mma7-standard5-ime  Back-off restarting 
failed container


1 commentaires

Pouvez-vous ajouter une sortie complète de la commande décrit devrait donner plus de détails comme le code de sortie de ce qui est sur les journaux.


3 Réponses :


0
votes

Votre conteneur exécute l'écho "succès" et se termine, voir https://kubernet.io/docs / Tâches / Inject-Data-Data-Application / Définir-Command-argument-Conteneur / # Notes

commande dans KubeNettes remplace Entrypoint dans docker. Mais cela n'explique pas pourquoi le conteneur est échoué.


0 commentaires

2
votes

Votre POD est configuré avec la commande : ["ECHO", "SUCCESS"] qui écrasera le Entrypoint ["/ Program"] et, par conséquent, votre conteneur sera Seuls écho réussit et terminer immédiatement.

Notez que dans Kubernet , Commande écrasera Entrypoint dans le conteneur Docker et args écrasera cmd dans docker conteneur.

Vous pouvez supprimer la commande Line : ["ECHO", "SUCCESS"] et le POD sera opérationnel!


0 commentaires

1
votes

Lorsque vous remplacez le point d'entrée par défaut et la cmd, ces règles s'appliquent: Lire ici

1) Si vous ne fournissez pas de commande ou arguments pour un conteneur, les valeurs par défaut définies dans l'image Docker sont utilisées.

2) Si vous fournissez une commande mais pas d'arguments pour un conteneur, seule la commande fournie est utilisée. Le point d'entrée par défaut et la cmd par défaut définie dans l'image Docker sont ignorés.

3) Si vous fournissez uniquement des args pour un conteneur, le point d'entrée par défaut défini dans l'image Docker est exécuté avec les arguments que vous avez fournis.

4) Si vous fournissez une commande et des arguments, le point d'entrée par défaut et la cmd par défaut définie dans l'image Docker sont ignorés. Votre commande est exécutée avec vos arguments.


0 commentaires