Перезапуск Kubernetes Pod несколько способов

предисловие

В использовании грузчика в процессе, мы можем использовать 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 запустить программу, вы хотите, чтобы решить неожиданное завершение работы программы, в конечном счете должен исправить ошибки.

Опубликовано 33 оригинальные статьи · вона похвала 0 · Просмотров 3909

рекомендация

отblog.csdn.net/erhaiou2008/article/details/104063100