
Ваши liveness-пробы убивают здоровые поды. Разбор по шагам
virelos 51 минуту назад Ваши liveness-пробы убивают здоровые поды. Разбор по шагам Средний 5 мин 1.8K DevOps * Kubernetes * Системное администрирование * Мнение Есть паттерн, который я вижу почти в каждом кластере, куда...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: virelos 51 минуту назад Ваши liveness-пробы убивают здоровые поды. Разбор по шагам Средний 5 мин 1. 8K DevOps * Kubernetes * Системное администрирование * Мнение Есть паттерн, который я вижу почти в каждом кластере, куда прихожу: liveness-проба, скопированная из туториала, которая годами тихо делает продакшен хуже.
Не «не помогает» — именно делает хуже: превращает локальные замедления в каскадные рестарты и красивые инциденты на ровном месте. Тезис статьи простой: liveness-проба — это не «проверка здоровья». Это заявление «если этот запрос не ответил — процесс нужно убить».
Технические детали
И в большинстве конфигураций, которые я встречал, это заявление ложно. Что на самом деле обещают пробы Быстро зафиксируем семантику, потому что путаница начинается уже здесь. readiness отвечает на вопрос «можно ли слать в под трафик прямо сейчас».
Провалилась — под выкидывается из endpoints, трафик уходит на соседей. Процесс жив, никто никого не трогает. liveness отвечает на вопрос «имеет ли смысл дальше держать этот процесс живым».
Провалилась failureThreshold раз подряд — kubelet посылает процессу SIGTERM, потом SIGKILL. Рестарт контейнера, обнуление всего локального состояния: прогретых кешей, JIT-компиляции, пулов соединений. startup — костыль для медленно стартующих приложений: пока она не прошла, liveness и readiness не проверяются.
Отраслевые последствия
Ключевое различие — цена ошибки. Ложно упавшая readiness стоит вам немного трафика на соседние поды. Ложно упавшая liveness стоит вам рестарта — то есть под нагрузкой она стоит вам ещё больше нагрузки на оставшиеся поды.
Анатомия каскадаТеперь механика инцидента, который я наблюдал в разных вариациях не один раз. Исходные условия: HTTP-сервис, liveness и readiness смотрят на один и тот же эндпоинт /health, тот ходит в базу «для честности». Конфиг из туториала: livenessProbe: httpGet: path: /health port: 8080 periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 3 Дальше по шагам: База начинает отвечать медленнее — вечерний пик, тяжёлая миграция, сосед по СУБД, неважно.
/health, который ходит в базу, начинает укладываться не в 200 мс, а в полторы секунды. timeoutSeconds: 1 — проба фейлится. Три раза подряд — это всего 30 секунд деградации базы.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





