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 секунд.
relaxed¶
Для тяжёлых сервисов с долгим стартом (ML-модели, большие .NET приложения, сервисы с миграциями БД).
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 определяет только тайминги. Путь и порт — свойства сервиса:
Endpoint должен:
- Возвращать HTTP 2xx (200, 204, ...)
- Отвечать быстро (в пределах
timeoutSeconds) - Быть лёгким (без тяжёлых запросов к БД)
Простой health endpoint
Не нужно проверять все зависимости. Достаточно вернуть 200 OK если сервис запущен и может обрабатывать запросы.
Custom policies¶
Для нестандартных случаев обратитесь к платформенной команде — они могут добавить кастомный пресет в Helm chart.