Как повторить попытку изображения в кубернете?

Я новичок в кубернетах. У меня проблема в стручках. Когда я запускаю команду

 kubectl get pods

Результат:

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

Из-за проблемы с узлом "wso2am-default-813fy" мне нужно перезапустить его. Любое предложение?

Ответ 1

Обычно в случае "ImagePullBackOff" он повторяется через несколько секунд/минут. В случае, если вы хотите снова попробовать вручную, вы можете удалить старый контейнер и восстановить его. Команда одной строки для удаления и воссоздания модуля будет:

kubectl replace --force -f <yml_file_describing_pod>

Ответ 2

В случае отсутствия файла yaml:

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

Ответ 3

$ kubectl replace --force -f <resource-file>

если все пойдет хорошо, вы должны увидеть что-то вроде:

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

подробности об этом можно найти в документации Kubernetes, "manage-deployment" и страницах kubectl-cheatsheet на момент написания.

Ответ 4

Если Pod является частью Deployment или Service, удаление его перезапустит Pod и, возможно, поместит его в другой узел:

$ kubectl delete po $POD_NAME

replace его, если это отдельный Pod:

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

Ответ 5

Попробуйте удалить модуль, он попытается снова извлечь изображение.

kubectl delete pod <pod_name> -n <namespace_name>

Ответ 6

Сначала попытайтесь понять, что не так со стручком:

kubectl logs -p <your_pod>

В моем случае это была проблема с файлом YAML.

Итак, мне нужно исправить файл конфигурации и заменить его:

kubectl replace --force -f <yml_file_describing_pod>