Health-check сервисов в K8s

ЗАКРОМА.Хранение предоставляет три системных эндпоинта для проверки статуса сервиса.

/healthz

Проверяет только факт работы процесса.

  • Всегда возвращает 200 OK
  • Не учитывается в метриках
  • Не записывается в аудит

/readyz

Эндпоинт возвращает общую готовность сервиса и его зависимостей.

Основные зависимости:

  • core: завершение миграциb БД + проверка статуса БД PostgreSQL
  • worker: завершение миграций БД + проверка статуса БД PostgreSQL + доступность сервиса core
  • composer: инициализация сервиса composer + ожидание доступности сервиса core
  • cdn: Инициализация сервиса cdn + проверка статуса сервиса core + проверка доступности брокеров Kafka
  • gateway: Завершение миграции БД + проверка статуса БД PostgreSQL + доступность сервиса composer
  • seclog/notification: завершение миграции БД + проверка статуса БД PostgreSQL + проверка доступности брокеров Kafka

При нарушении одного из условий, сервис будет “отдавать” статус 503(Service Unavailable)

/readynode

Проверяет готовность всей ноды.

Условия:

  • composer должен получать ready от сервиса core и хотя бы одного worker
  • gateway должен получать ready** от сервиса composer` и БД

При нарушении одного из условий, сервис будет “отдавать” статус 503(Service Unavailable)

Описание параметров readinessProbe в Kubernetes

По умолчанию ЗАКРОМА проверяют состояние доступности сервиса со следющими параметрами:

1readinessProbe: periodSeconds: 10 failureThreshold: 7

Исключения

Обращения к /healthz, /readyz, /readynode не пишутся в аудит лог.