По порядку Middle Pod и Deployment обновлено

Остановка пода

Вопрос

Расставь шаги корректной остановки пода при kubectl delete pod или rolling update.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Приложение дожидается текущих запросов и завершается
  2. 2
    Под убирается из EndpointSlice, параллельно kubelet запускает preStop-хук
  3. 3
    После preStop контейнерам отправляется SIGTERM
  4. 4
    Если контейнер не вышел за terminationGracePeriodSeconds, kubelet отправляет SIGKILL
  5. 5
    Под получает deletionTimestamp и статус Terminating
Показать ответ и разбор

Коротко

Удаление пода начинается с пометки и вывода из балансировки, затем хук preStop, затем SIGTERM. Таймаут terminationGracePeriodSeconds отсчитывается с начала остановки и включает время preStop.

Правильный порядок

  1. 1
    Под получает deletionTimestamp и статус Terminating
  2. 2
    Под убирается из EndpointSlice, параллельно kubelet запускает preStop-хук
  3. 3
    После preStop контейнерам отправляется SIGTERM
  4. 4
    Приложение дожидается текущих запросов и завершается
  5. 5
    Если контейнер не вышел за terminationGracePeriodSeconds, kubelet отправляет SIGKILL

Разбор

Удаление пода начинается с пометки и вывода из балансировки, затем хук preStop, затем SIGTERM. Таймаут terminationGracePeriodSeconds отсчитывается с начала остановки и включает время preStop. SIGKILL это страховка, хорошо написанное приложение выходит раньше.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме