Выбор ответа Middle Probes и ресурсы обновлено

Зачем startupProbe

Вопрос

Java-приложение стартует от 30 до 120 секунд. Liveness с initialDelaySeconds: 30 убивает его при медленном старте. Как лучше решить?

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

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Добавить startupProbe с запасом по времени старта; liveness начнёт работать после неё. startupProbe блокирует liveness и readiness до первого успеха, давая медленному старту столько времени, сколько нужно, а после старта liveness реагирует быстро.

Варианты ответа

  1. Добавить startupProbe с запасом по времени старта; liveness начнёт работать после неёправильный ответ
  2. Поставить liveness initialDelaySeconds: 180, это штатное решение для медленного старта
  3. Убрать все probes: Kubernetes сам определит, что процесс жив, по его PID
  4. Увеличить replicas, чтобы хотя бы часть подов успевала стартовать до проверки

Разбор

startupProbe блокирует liveness и readiness до первого успеха, давая медленному старту столько времени, сколько нужно, а после старта liveness реагирует быстро. Огромный initialDelaySeconds замедлит обнаружение зависаний при каждом рестарте. Без probes пропадёт и защита, и корректный rolling update. Реплики проблему старта не решают.

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

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