web-dev-qa-db-fra.com

Comment réessayer tirer une image dans un Pods kubernetes?

Je suis nouveau à Kubernetes. J'ai un problème dans les pods. Quand je lance la commande

 kubectl get pods

Résultat:

NAME                   READY     STATUS             RESTARTS   AGE
mysql-apim-db-1viwg    1/1       Running            1          20h
mysql-govdb-qioee      1/1       Running            1          20h
mysql-userdb-l8q8c     1/1       Running            0          20h
wso2am-default-813fy   0/1       ImagePullBackOff   0          20h

En raison d'un problème de noeud "wso2am-default-813fy", je dois le redémarrer. Toute suggestion?

77

Généralement, dans le cas de "ImagePullBackOff", il est réessayé après quelques secondes/minutes. Si vous souhaitez réessayer manuellement, vous pouvez supprimer l'ancien pod et recréer le pod. La commande à une ligne pour supprimer et recréer le pod serait:

kubectl replace --force -f <yml_file_describing_pod>
55
Ayon Nahiyan

Si vous n'avez pas le fichier yaml:

kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -

202
Maciek Sawicki
$ kubectl replace --force -f <resource-file>

si tout se passe bien, vous devriez voir quelque chose comme:

<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced

vous trouverez des détails à ce sujet dans la documentation de Kubernetes, "gérer-le déploiement" et kubectl-cheatsheet pages au moment de la rédaction.

19
eversMcc

Si la Pod fait partie d'une Deployment ou Service, sa suppression fera redémarrer la Pod et, éventuellement, la placera sur un autre noeud:

$ kubectl delete po $POD_NAME

replace si c'est un individu Pod:

$ kubectl get po -n $namespace $POD_NAME -o yaml | kubectl replace -f -

6
Carlos Nunez

Essayez de supprimer le pod, il essaiera de tirer à nouveau l’image.

kubectl delete pod <pod_name> -n <namespace_name>

1
Sachin Arote

Essayez d’abord de voir ce qui ne va pas avec le pod:

kubectl logs -p <your_pod>

Dans mon cas, c'était un problème avec le fichier YAML.

J'ai donc dû corriger le fichier de configuration et le remplacer:

kubectl replace --force -f <yml_file_describing_pod>
0
edubriguenti