Иногда контейнер в Kubernetes или Docker вроде как “Running”, но приложение внутри уже давно упало или зависло. Мониторинг молчит, алерты не срабатывают, а пользователи шлют гневные тикеты.
💡 Спасает правильный healthcheck:
Для Docker —
HEALTHCHECK CMD curl -f http://localhost:8080/health || exit 1Для K8s -
livenessProbe и readinessProbe.📌 Разница между ними:
Liveness проверяет, жив ли контейнер вообще. Если нет - kubelet перезапускает Pod.
- Readiness показывает, готово ли приложение принимать трафик. Если нет - Pod убирается из сервисов, но не убивается.
Ставь интервалы не “на глаз”, а с учётом времени старта и типичных лагов приложения. И не забудь про
initialDelaySeconds - без него kubelet решит, что твой сервис мёртв, ещё до того как он проснулся.🔔@lifeproger