Kubernetes удаление пода

K8S останавливает контейнеры по череди, а не убивает сразу весь под. Сначала устанавливается deletionTimestamp, после чего kubectl обнаруживает его, запускается процесс удаления

Последовательность такая:

  • Запускается предостановочные обработчик
  • Отправляется сигнал SIGTERM
  • Ожидание, пока контейнер завершится или не закончится льготный период
  • Принудительное завершение SIGKILL

Так можно установить льготный период

kubectl delete po mypod --grace-period=5

Так можно удалить моментально

kubectl delete po mypod --grace-period=0 --force

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

В таком случае рекомендуется создавать Job или CronJob — которые будут проверять состояние модуля и выполнять миграцию данных, если он не доступен.

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

Механизм удаления пода

Timeline удаления пода

Для того чтобы снизить вероятность обрыва соединений с активными пользователями

lifecycle:
  preStop:
    exec:
      command:
        - sh
        - -c
        - "sleep 5"

 

K8S

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.