Настройка Health Check эндпоинтов: Liveness, Readiness, Kubernetes пробы

В одном проекте readiness probe проверяла 5 внешних API — это приводило к частым ложным срабатываниям. Мы оптимизировали до 2 критичных и добавили таймаут 1 секунда. Количество ложных исключений снизилось в 3 раза. Такие сценарии — норма без грамотных health check эндпоинтов. Когда балансировщик про

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Health Check эндпоинтов: Liveness, Readiness, Kubernetes пробы
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

В одном проекте readiness probe проверяла 5 внешних API — это приводило к частым ложным срабатываниям. Мы оптимизировали до 2 критичных и добавили таймаут 1 секунда. Количество ложных исключений снизилось в 3 раза. Такие сценарии — норма без грамотных health check эндпоинтов. Когда балансировщик продолжает слать трафик на сломанный инстанс, пользователи видят ошибки, падает LCP и растёт отток. Чтобы этого избежать, нужны health check эндпоинты. Наш опыт — более 7 лет, 50+ проектов с полной отказоустойчивостью.

Health check эндпоинты — это HTTP-ручки, которые сообщают инфраструктуре о состоянии приложения. Балансировщики нагрузки, Kubernetes, мониторинговые системы опрашивают их, чтобы исключать нездоровые инстансы из ротации. Компании, внедрившие health check, снижают количество инцидентов на 40% и достигают 99.9% uptime.

Почему важны health check?

Health check — это первая линия обороны от каскадных отказов. Liveness probe перезапускает зависший контейнер, readiness probe исключает неготовую ноду из балансировки. Вместе они предотвращают потерю трафика и данных. Сравнение: без health check средний MTTR (время восстановления) 20 минут, с ними — 5 минут, в 4 раза быстрее.

Как отличить liveness от readiness?

Характеристика Liveness Readiness
Цель Проверить, жив ли процесс Проверить, готов ли принимать трафик
Действие при ошибке Перезапуск контейнера Исключение из балансировки
Должна ли быть лёгкой? Да, всегда отвечать 200 Может проверять зависимости
Типичные проверки /health/live возвращает 'ok' БД, Redis, внешние API
Пример ответа {"status":"ok"} {"status":"healthy","checks":{...}}

Liveness probe должна быть максимально лёгкой — только проверка, что процесс жив. Если она начнёт проверять БД, а БД временно недоступна, Kubernetes перезапустит контейнер, хотя приложение в порядке.

Readiness probe — глубже. Она проверяет критические зависимости: базу данных, кэш, очереди. Если хотя бы одна не отвечает — инстанс исключается из балансировки, трафик не теряется.

Что проверять в readiness probe?

Обязательный минимум:

  • База данных. Выполните лёгкий запрос, например SELECT 1 в SQL или ping в MongoDB. Проверка должна быть быстрой (< 200 мс).
  • Кэш (Redis/Memcached). Выполните SET key value с коротким TTL и прочитайте его. Это покажет, что кэш работает.
  • Внешние сервисы — только критичные. Если приложение не может работать без API платежей — проверяйте его. Если сервис необязателен — не проверяйте, иначе временная недоступность выведет ноду из ротации.

В одном проекте readiness probe проверяла 5 внешних API — это приводило к частым ложным срабатываниям. Мы оптимизировали до 2 критичных и добавили таймаут 1 секунда. Количество ложных исключений снизилось в 3 раза.

Примеры реализации на Laravel и Node.js

// routes/api.php Route::get('/health/live', fn() => response()->json(['status' => 'ok'])); Route::get('/health/ready', function () { $checks = []; // Database try { DB::connection()->getPdo(); $checks['database'] = 'ok'; } catch (\Throwable $e) { $checks['database'] = 'error: ' . $e->getMessage(); } // Redis try { Cache::store('redis')->set('health-check', 1, 5); $checks['cache'] = 'ok'; } catch (\Throwable $e) { $checks['cache'] = 'error: ' . $e->getMessage(); } $healthy = !str_contains(implode('', $checks), 'error'); $status = $healthy ? 200 : 503; return response()->json([ 'status' => $healthy ? 'healthy' : 'unhealthy', 'checks' => $checks, ], $status); }); 
app.get('/health/live', (_req, res) => { res.json({ status: 'ok', uptime: process.uptime() }); }); app.get('/health/ready', async (_req, res) => { const checks: Record<string, string> = {}; try { await db.query('SELECT 1'); checks.database = 'ok'; } catch (e) { checks.database = `error: ${e}`; } try { await redis.ping(); checks.redis = 'ok'; } catch (e) { checks.redis = `error: ${e}`; } const healthy = Object.values(checks).every(v => v === 'ok'); res.status(healthy ? 200 : 503).json({ status: healthy ? 'healthy' : 'unhealthy', checks }); }); 

Как интегрировать с Kubernetes?

Согласно Kubernetes documentation, liveness probe должна быть лёгкой. Пример манифеста:

containers: - name: app livenessProbe: httpGet: path: /health/live port: 8080 initialDelaySeconds: 30 periodSeconds: 10 failureThreshold: 3 readinessProbe: httpGet: path: /health/ready port: 8080 initialDelaySeconds: 10 periodSeconds: 5 failureThreshold: 3 

Параметры initialDelaySeconds дают время приложению запуститься, periodSeconds — интервал опроса, failureThreshold — количество ошибок до срабатывания. Для liveness ставьте больше начальную задержку, чтобы избежать перезапуска во время долгого старта.

Типичные ошибки при настройке probes

Ошибка Последствие Решение
Liveness проверяет БД Перезапуск при временной недоступности БД Используйте только лёгкую проверку процесса
Слишком малый initialDelaySeconds Контейнер перезапускается до готовности Увеличьте до 30+ секунд
Readiness проверяет необязательные сервисы Ложные исключения, потеря трафика Оставьте только критичные зависимости
Отсутствует таймаут Probe зависает, контейнер перезапускается Установите timeoutSeconds: 3

Что входит в настройку health check под ключ

  • Написание liveness и readiness эндпоинтов с проверкой БД, Redis, внешних сервисов.
  • Конфигурация probes в Kubernetes (YAML-манифесты).
  • Интеграция с мониторингом (Prometheus, Grafana, алерты).
  • Документация по эндпоинтам и процессу.
  • Обучение команды работе с probes.
  • Поддержка после внедрения.

Процесс настройки health check под ключ

  1. Аналитика. Определяем, какие сервисы критичны, какой стек (Laravel, Node.js, Django). Согласовываем архитектуру probes.
  2. Реализация. Пишем код liveness и readiness эндпоинтов, тестируем локально. Добавляем логирование.
  3. Деплой. Настраиваем probes в Kubernetes или балансировщике, выкатываем на стейджинг.
  4. Мониторинг. Подключаем алерты в Prometheus/Grafana при падении health check.

Сроки и стоимость

Базовая настройка (liveness + readiness с БД и Redis) — 0.5–1 день. Полная интеграция с Kubernetes, мониторингом и логированием — 1–2 дня. Стоимость рассчитывается индивидуально под ваш проект. Свяжитесь с нами для консультации и точной оценки.

Закажите настройку health check эндпоинтов под ключ — получите мониторинг и отказоустойчивость за 1–2 дня. Наши инженеры сертифицированы по Kubernetes, а опыт работы с 50+ проектами гарантирует качество. Получите консультацию прямо сейчас.