7K подписчиков

Как перезапустить поды Kubernetes

152 прочитали

Привет! С вами снова Merion Academy - платформа доступного IT образования.

Kubernetes - это система с открытым исходным кодом, созданная для оркестровки, масштабирования и развертывания контейнерных приложений. Если вы хоть раз работали с Kubernetes, то знаете, насколько он полезен для управления контейнерами.

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

Как перезапустить поды Kubernetes
Как перезапустить поды Kubernetes

Из этого туториала Вы узнаете, как перезапустить поды в Kubernetes.

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

Перезапуск подов Kubernetes

Допустим, один из подов в вашем контейнере сообщает об ошибке. В зависимости от политики перезапуска Kubernetes может попытаться автоматически перезапустить под, чтобы он снова заработал. Однако это не всегда решает проблему.

Если Kubernetes не может решить проблему самостоятельно, и вы не можете найти источник ошибки, перезапуск пода вручную - это самый быстрый способ вернуть приложение в рабочее состояние. Быстрое решение - вручную перезапустить затронутые поды. Это может сэкономить ваше время, особенно если ваше приложение работает и вы не хотите выключать службу.

Вот три простых способа сделать это.

Метод 1: Rolling Restart

Начиная с обновления 1.15, Kubernetes позволяет выполнять непрерывный перезапуск развертывания. В качестве нового дополнения к Kubernetes это самый быстрый метод перезапуска.

kubectl rollout restart deployment [deployment_name]

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

kubectl rollout restart deployment
kubectl rollout restart deployment

Метод 2: Использование переменных среды

Другой способ - установить или изменить переменную среды, чтобы поды перезагружались и синхронизировались с внесенными вами изменениями. Например, вы можете изменить дату развертывания контейнера:

kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"

В приведенном выше примере набор команд env настраивает изменение переменных среды, развертывание [deployment_name] выбирает ваше развертывание, а DEPLOY_DATE="$(date) изменяет дату развертывания.

 DEPLOY_DATE
DEPLOY_DATE

Метод 3. Масштабирование количества реплик

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

kubectl scale deployment [deployment_name] --replicas=0

Чтобы перезапустить под, используйте ту же команду, чтобы установить количество реплик на любое значение больше нуля:

kubectl scale deployment [deployment_name] --replicas=1

Когда вы устанавливаете количество реплик равным нулю, Kubernetes уничтожает реплики, которые ему больше не нужны.

Как только вы установите число больше нуля, Kubernetes создаст новые реплики. Новые реплики будут иметь другие имена, чем старые. Вы можете использовать команду kubectl get pods, чтобы проверить статус модулей и увидеть новые имена.

--replicas
--replicas

Итог

Kubernetes - чрезвычайно полезная система, но, как и любая другая система, она не безошибочна.

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

--
До встречи на нашей образовательной платформе.
Merion Academy - платформа доступного IT образования.