предисловие
В использовании грузчика в процессе, мы можем использовать Docker рестарт {container_id}, чтобы перезапустить контейнер, но не рестарт команды в kubernetes в (без kubectl перезагрузки {podname}), иногда появляется ошибка Pod неожиданно прервана, приводит нам необходимы рестарт Pod, но не хороший способ, особенно в отсутствии дела YAML, поэтому я кратко следующие несколько способов, чтобы перезапустить стручок.
Метод 1
Последний YAML файл.
В том случае, когда там YAML документ может быть использован непосредственно kubectl заменить --force -f xxxx.yaml принудительно заменить API объектов стручок, чтобы достичь цели перезагрузки. Фигура следующим образом:
[root@test-129-70 viua]# kubectl replace --force -f viua.yml
namespace "viua" deleted
service "viua-app-cms" deleted
deployment.apps "viua-app-cms" deleted
service "viua-app-command" deleted
deployment.apps "viua-app-command" deleted
service "viua-show-service" deleted
deployment.apps "viua-show-service" deleted
service "viua-skills-service" deleted
deployment.apps "viua-skills-service" deleted
namespace/viua replaced
secret/xa-harbor-ca replaced
service/viua-app-cms replaced
deployment.apps/viua-app-cms replaced
service/viua-app-command replaced
deployment.apps/viua-app-command replaced
service/viua-show-service replaced
deployment.apps/viua-show-service replaced
service/viua-skills-service replaced
deployment.apps/viua-skills-service replaced
Способ 2
Нет YAML файл, но с использованием объектов развертывания.
kubectl масштаба развертывания ВИУА-приложение-CMS --replicas = 0 -n ВИУА
kubectl масштаба развернуть {развернуть对象} --replicas = 0 -n {} Пространство имен
[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME READY UP-TO-DATE AVAILABLE AGE
viua-app-cms 1/1 1 1 48m
viua-app-command 1/1 1 1 48m
viua-show-service 1/1 1 1 48m
viua-skills-service 1/1 1 1 48m
[root@test-129-70 pvd]# kubectl scale deploy viua-app-cms --replicas=0 -n viua
deployment.apps/viua-app-cms scaled
[root@test-129-70 pvd]# kubectl get deploy -n viua
NAME READY UP-TO-DATE AVAILABLE AGE
viua-app-cms 0/0 0 0 49m
viua-app-command 1/1 1 1 49m
viua-show-service 1/1 1 1 49m
viua-skills-service 1/1 1 1 49m
[root@test-129-70 pvd]# kubectl get po -n viua
NAME READY STATUS RESTARTS AGE
viua-app-command-95f7b6f7f-rb7mh 1/1 Running 0 49m
viua-show-service-85565b9dcf-ss8qp 1/1 Running 0 49m
viua-skills-service-65447f9b94-fhqhr 1/1 Running 0 49m
Поскольку объекты Под развертыванием не являются объектом прямого манипулирования, но объект манипуляции ReplicaSet, и объект ReplicaSet по количеству копий определения шаблона и состав стручка. Таким образом, эта команда должны масштабировать количество ReplicaSet до 0, а затем масштабировать до 1, то Pod будет перезагружен.
Способ 3
YAML также не подавал, но с помощью развертывания объектов.
Используйте команду kubectl удаления стручок {podname} -n { имен}
Этот метод очень прост и груб, и непосредственно к Pod удалены , поскольку Kubernetes декларативно API, поэтому удаляется, Под объектом API является несовместимым с ожиданиями, так будет автоматически повторно создать Pod остаются в соответствии с ожиданиями, но если руководство ReplicaSet Pod многих объектов, а затем вручную удалить один, будет очень хлопотно, он может быть использован kubectl удаления replicaset {rs_name} -п { имен} команда для удаления ReplicaSet
Способ 4
Нет файла YAML, Pod возразит непосредственно.
Используйте команду kubectl прибудет стручок {podname} -п {имена} -o YAML | kubectl заменить --force -f -
В этом случае, так как нет ни одного файла YAML и запустить объекты стручок, он не сразу удалить или масштаб 0, но может быть перезапущен выше команды. Смысл этой команды, чтобы получить YAML заявление стручок в настоящее время работает, и перенаправить вывод в стандартный входной трубе команды kubectl заменить, так как для достижения цели перезагрузки.
резюме
Мы можем перезапустить объекты с помощью различных способов, в целом, наиболее рекомендуемый способ заключается в использовании kubectl прибудет стручок {podname} -п {имен} -o YAML | kubectl заменить --force -f - таким образом, в зависимости от обстоятельств разнообразие объектов. Кроме того, перезапуск не исправить ошибку Pod запустить программу, вы хотите, чтобы решить неожиданное завершение работы программы, в конечном счете должен исправить ошибки.