Как повторить попытку изображения в кубернете?
Я новичок в кубернетах. У меня проблема в стручках. Когда я запускаю команду
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>