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"
0 Comment