Kubernetes startupProbe: дать приложению время на запуск
startupProbe защищает медленно запускающийся контейнер от преждевременного перезапуска. Пока startup-проверка не прошла, Kubernetes не запускает для контейнера livenessProbe и readinessProbe.
Настроить startup, liveness и readiness
Добавьте настройки в элемент контейнера внутри spec.template.spec.containers:
ports:
- name: http
containerPort: 8080
startupProbe:
httpGet:
path: /healthz
port: http
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 30
livenessProbe:
httpGet:
path: /healthz
port: http
periodSeconds: 10
timeoutSeconds: 2
readinessProbe:
httpGet:
path: /readyz
port: http
periodSeconds: 5
timeoutSeconds: 2Приложение должно отвечать на оба health path. При таких значениях startup-проверка допускает примерно до 300 секунд на запуск (30 × 10 секунд). После успеха liveness контролирует зависшее приложение, а readiness убирает pod из балансировки, пока он не готов принимать запросы.
Не делайте readiness зависимым от всех внешних систем, если их кратковременный сбой не должен убирать каждый экземпляр из обслуживания. Подберите пороги под реальное время старта и поведение приложения.
Документация: Liveness, Readiness and Startup Probes.