ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Kubectl – Как перезапустить Pod

Как читать узлы в Kubernetes

Pod также может иметь один или несколько контейнеров, один из которых является контейнером приложения, а другие – контейнером инициализации, который останавливается после завершения задания или контейнера приложения, готового к выполнению своей функции, и контейнера sidecar, который прикреплен к основному контейнеру приложения. Контейнер или пакет не всегда удаляются из-за сбоя приложения. В подобных сценариях вам потребуется явно перезапустить Kubernetes Pod. В этой статье вы узнаете, как принудительно перезапустить модули в развертывании несколькими способами.

 

Предварительные условия

Чтобы перезапустить модуль с помощью kubectl, убедитесь, что вы установили инструмент kubectl вместе с кластером minikube. В противном случае вы не сможете реализовать прописанную статью.

 

Способы перезапуска модулей с помощью Kubectl

Чтобы перезапустить поды с помощью Kubectl, вы должны сначала запустить кластер minikube, используя следующую добавленную команду в терминале.

$ minikube start

Этот процесс займет некоторое время, поэтому вам придется подождать некоторое время, чтобы завершить процесс эффективно. Теперь мы готовы составить список модулей с помощью прикрепленной команды.

$ kubectl get pods

Вы можете пока это проверить; в системе присутствует только один модуль. Теперь создадим развертывание. Итак, изначально нам нужно создать файл конфигурации для развертывания. Создайте файл в домашнем каталоге вашей системы с помощью прикрепленной команды.

$ touch deployment.YAML

Файл будет создан в вашем домашнем каталоге. Откройте его, запишите прикрепленный ниже сценарий в файл конфигурации и сохраните его.

Теперь создайте развертывание с помощью следующей прикрепленной команды kubectl.

$ kubectl create –f deployment.yaml

Развертывание будет успешно создано. Теперь снова подключите все модули вашей системы с помощью прикрепленной команды kubectl.

$ kubectl get pods

Убедитесь, что теперь работают 2 модуля, как показано на скриншоте выше.

 

Способ 1:

Последовательный перезапуск будет использоваться для перезапуска каждого модуля в порядке от развертывания. Это наиболее рекомендуемая стратегия, поскольку она не приведет к перерыву в обслуживании. Напишите в терминале команду, указанную ниже.

$ kubectl rollout restart deployment <deployment name>

 

Замените <deployment name> в соответствии с вашими потребностями.

Упомянутая выше команда перезапустит его. Ваше приложение будет доступно, поскольку большинство контейнеров будут работать.

 

Способ 2:

Второй метод – заставить поды перезапускаться и синхронизироваться с изменениями, внесенными вами путем установки или изменения переменной среды.

$ kubectl set env deployment <deployment name> DEPLOY_DATE="$(date)"

 

Замените <deployment name> в соответствии с вашими потребностями.

 

Способ 3:

Уменьшение количества копий развертывания до нуля и масштабирование до соответствующего состояния – еще один метод перезапуска модулей. Это заставляет все текущие модули прекратить работу и прекратить работу, после чего на их место будет назначено расписание новых модулей. Ограничение количества копий до 0 приведет к отключению. Следовательно, рекомендуется непрерывный перезапуск. Используйте следующую добавленную команду, чтобы установить для реплик развертывания значение 0.

$ kubectl scale deployment <deployment name> --replicas=0

 

Замените <deployment name> в соответствии с вашими потребностями.

Масштаб команд определяет количество реплик, которые должны быть активны для каждого модуля. Он эффективно завершает процесс, когда пользователи устанавливают его на ноль. Чтобы снова запустить упомянутый под, мы собираемся установить его значение реплики больше 0.

$ kubectl scale deployment <deployment name> --replicas=1

Замените <deployment name> в соответствии с вашими потребностями.

 

Вывод

Kubernetes – это эффективная платформа для оркестровки контейнеров. Однако трудности возникают, как и со всеми системами. Таким образом, перезапуск модуля не решит основную проблему, которая изначально вызвала его сбой, поэтому обязательно определите и устраните основную причину. Мы надеемся, что вы легко сможете перезапустить свой модуль, следуя любому из методов, описанных в этом руководстве.

Exit mobile version