Перейти к содержанию

Lifecycle Policies

Lifecycle policies управляют тем, как Kubernetes проверяет здоровье вашего сервиса. Это пресеты таймингов для startup, readiness и liveness probes.

Что проверяют probes

Probe Когда Зачем
Startup При старте контейнера Ждёт пока сервис инициализируется
Readiness Постоянно Определяет, готов ли сервис принимать трафик
Liveness Постоянно Перезапускает контейнер если сервис завис

Все probes используют HTTP GET запрос на healthPath и port из .hive.yml.

Встроенные policies

standard (по умолчанию)

Подходит для большинства сервисов. Старт за ~60 секунд, проверки каждые 10 секунд.

# .hive.yml
lifecycle: standard    # можно не указывать, это default

relaxed

Для тяжёлых сервисов с долгим стартом (ML-модели, большие .NET приложения, сервисы с миграциями БД).

lifecycle: relaxed

aggressive

Для лёгких сервисов, которые стартуют мгновенно. Быстрое обнаружение проблем.

lifecycle: aggressive

Сравнение таймингов

Startup Probe

Параметр standard relaxed aggressive
periodSeconds 2 10 1
failureThreshold 30 60 30
Макс. время старта 60s 600s 30s

Readiness Probe

Параметр standard relaxed aggressive
periodSeconds 10 30 5
timeoutSeconds 5 30 3
successThreshold 1 1 1
failureThreshold 3 5 1

Liveness Probe

Параметр standard relaxed aggressive
periodSeconds 10 30 5
timeoutSeconds 5 30 3
failureThreshold 3 5 3

Как выбрать

graph TD
    A[Ваш сервис] --> B{Стартует быстро?<br/>< 5 секунд}
    B -->|Да| C{Критичен<br/>быстрый failover?}
    B -->|Нет| D{Стартует дольше<br/>60 секунд?}
    C -->|Да| E[aggressive]
    C -->|Нет| F[standard]
    D -->|Да| G[relaxed]
    D -->|Нет| F
Ваш случай Policy
Обычный веб-сервис (Go, Node.js, Python) standard
Быстрый stateless сервис aggressive
.NET с долгой инициализацией relaxed
ML-сервис, загрузка моделей relaxed
Сервис с миграциями БД при старте relaxed

Health endpoint

Policy определяет только тайминги. Путь и порт — свойства сервиса:

# .hive.yml
port: 8080
healthPath: /healthz     # default: /
lifecycle: standard

Endpoint должен:

  • Возвращать HTTP 2xx (200, 204, ...)
  • Отвечать быстро (в пределах timeoutSeconds)
  • Быть лёгким (без тяжёлых запросов к БД)

Простой health endpoint

Не нужно проверять все зависимости. Достаточно вернуть 200 OK если сервис запущен и может обрабатывать запросы.

Custom policies

Для нестандартных случаев обратитесь к платформенной команде — они могут добавить кастомный пресет в Helm chart.