Веб-версияОткрыть в Telegram

Пост🚑 HEALTHCHECK: Спасательный круг или выстрел в ногу?

27 января 2026
Б
Библиотека девопса | DevOps, SRE, Sysadmin
🚑 HEALTHCHECK: Спасательный круг или выстрел в ногу? Продолжаем тему стабильности. Сегодня про Healthchecks (в Docker) и Probes (в K8s). Казалось бы, что сложного? Написал curl -f http://localhost/ || exit 1 и пошел пить кофе. Но именно такие "простые" решения часто становятся причиной того, что ваш прод лежит, хотя нагрузка детская. Разберем две крайности и как делать правильно. ❌ Ошибка №1: "Зомби-апокалипсис" (Слишком слабый чек) Вы проверяете только то, что процесс веб-сервера запущен и порт слушается. 🔘Сценарий: У приложения отвалился коннект к БД (pool exhaustion), или случился дедлок внутри кода. 🔘Итог: Хелсчек проходит (порт-то открыт!), балансировщик продолжает лить трафик на под, а пользователи получают 500-ки. 🔘Лечение: Чек должен проверять работоспособность логики, а не просто наличие процесса. ❌ Ошибка №2: "Эффект Домино" (Слишком жадный чек) Вы решили быть умными и в /health эндпоинт засунули проверку коннекта к Базе, Редису и S3. 🔘Сценарий: База данных немного приуныла (медленные запросы). 🔘Итог: Хелсчеки всех 50 подов начинают тайм-аутить. Kubernetes думает: "Ага, поды сдохли!" и начинает их перезагружать. 🔘Финал: Все поды рестартуют одновременно, ломятся устанавливать соединения к и так лежащей базе и добивают её окончательно. Congratulations, you played yourself. ✅ Как делать правильно: Liveness vs Readiness В Kubernetes (да и в грамотном Docker Compose) эти понятия разделены. Это фундамент. 1. Liveness Probe (Я жив?) 🔘Цель: Понять, не завис ли процесс намертво. 🔘Действие при сбое: РЕСТАРТ контейнера. 🔘Что проверять: Очень легкий запрос. "Я могу отвечать на HTTP?". Не трогайте тут базу данных! Если база лежит, рестарт бэкенда не поможет ей подняться. 2. Readiness Probe (Я готов работать?) 🔘Цель: Понять, можно ли пускать на меня трафик. 🔘Действие при сбое: УБРАТЬ из балансировки (не убивать!). 🔘Что проверять: Вот тут проверяем зависимости. Есть коннект к БД? Прогрелся кэш? Если нет, просто временно не шлите на меня юзеров. 📝 Пример (K8s Manifest): livenessProbe: httpGet: path: /health/live # Максимально тупой ответ 200 OK port: 8080 initialDelaySeconds: 5 periodSeconds: 10 readinessProbe: httpGet: path: /health/ready # Проверка БД, очередей и т.д. port: 8080 initialDelaySeconds: 10 periodSeconds: 10 failureThreshold: 3 💡 Главный совет Никогда не делайте зависимость Liveness-пробы от внешних сервисов. Если у вас упал сторонний API, ваш сервис не должен уходить в циклическую перезагрузку. Он должен просто перестать говорить, что он Ready, или отдавать ошибку юзеру, оставаясь "живым". #k8s #devops #fails #stability #bestpractices Подпишись 👉@devopslib
19 · 666 ·

Рядом в ленте

ББиблиотека девопса | DevOps, SRE, SysadminОдна из самых недооценённых вещей в DevOps - подготовленные сценарии отказов. Большинство инцидентов выглядят одинаково: 💚 02:37 ночи 💚 CPU 100%, latency растётББиблиотека девопса | DevOps, SRE, Sysadmin🐳 Хватит тащить curl и vim в продакшн! (Используем Ephemeral Containers) Салют, коллеги, всех с прошедшими праздниками! 👋 Сколько раз я видел Dockerfile, которы
это сообщение
ББиблиотека девопса | DevOps, SRE, Sysadmin🛑 Не убивай меня сразу! Настраиваем Graceful Shutdown Коллеги, бывало такое? Вы делаете kubectl rollout restart, Kubernetes обещает бесшовное обновление, но в мББиблиотека девопса | DevOps, SRE, Sysadmin⚖️ Requests vs Limits: Почему твой под тормозит на пустой ноде? Всем привет! 👋 Сегодня о наболевшем - о ресурсах в Kubernetes. Я часто вижу манифесты, где секци
ББиблиотека девопса | DevOps, SRE, SysadminБиблиотека девопса | DevOps, SRE, Sysadmin@devopslib · канал · Технологии
1 267подписчиков259средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем