Чем liveness probe отличается от readiness probe?
- Как настроить пробы Kubernetes в Spring Boot?
Liveness — жив ли процесс; не прошла — Kubernetes перезапускает контейнер. Readiness — готов ли принимать трафик; не прошла — под убирают из балансировки, но не перезапускают.
- Spring Boot: /actuator/health/liveness и /actuator/health/readiness
- Liveness не проверяет базу и внешние сервисы — иначе их сбой перезапустит все поды
- Readiness = false при старте и при корректном завершении
А ещё AvailabilityChangeEvent — переключить состояние из кода
Подробно
Liveness: «не завис ли процесс». Если проба падает несколько раз подряд, kubelet убивает контейнер и запускает заново. Проверять только сам процесс. Если включить базу, при её недоступности Kubernetes перезапустит все экземпляры — и они дополнительно ударят по базе при старте.
Readiness: «можно ли сейчас слать трафик». Под с неготовой пробой исключается из Service, пока не поправится. Сюда можно включать прогрев кэшей и критичные зависимости.
Startup (отдельная проба Kubernetes) — даёт время медленному старту.
Spring Boot 2.3+: ApplicationAvailability хранит LivenessState (CORRECT/BROKEN) и ReadinessState (ACCEPTING_TRAFFIC/REFUSING_TRAFFIC). Группы /actuator/health/liveness и /actuator/health/readiness включаются автоматически в Kubernetes (или management.endpoint.health.probes.enabled=true). В readiness можно добавить индикаторы: management.endpoint.health.group.readiness.include=readinessState,db.
При остановке Spring Boot переводит readiness в REFUSING_TRAFFIC и ждёт завершения запросов (server.shutdown=graceful).
Что хотят услышать
- Разница последствий: перезапуск против исключения из балансировки.
- Почему liveness не проверяет зависимости.
- Эндпоинты Spring Boot и группы.
Частые ошибки
- Включать базу в liveness.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Liveness — жив ли процесс (иначе рестарт); readiness — готов ли к трафику
- ✗Liveness решает, пускать ли трафик, а readiness — перезапускать ли под
- ✗Это одно и то же
- ✗Readiness перезапускает контейнер при провале
Что спросят дальше
- Что даёт Spring Boot Actuator?
- Какие метрики важны для readiness?
Разбор темы
- Actuator и наблюдаемость
Production-эндпоинты, health-проверки и probes, метрики через Micrometer, трассировка и безопасность эндпоинтов.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.