Ответ
Liveness Probe (проба жизнеспособности) — это механизм, с помощью которого kubelet периодически проверяет, работает ли контейнер в состоянии, пригодном для обслуживания запросов. Если проба fails, kubelet убивает контейнер и перезапускает его согласно политике restartPolicy.
Цель: Восстановление «зависшего» (deadlocked) или неработоспособного приложения автоматически, без ручного вмешательства. Контейнер может быть запущен (Running), но само приложение внутри — нет.
Пример конфигурации для веб-приложения:
apiVersion: v1
kind: Pod
metadata:
name: web-pod
spec:
containers:
- name: web-app
image: nginx:alpine
livenessProbe:
httpGet: # Тип проверки - HTTP GET запрос
path: /health # Эндпоинт здоровья приложения
port: 8080
httpHeaders:
- name: Custom-Header
value: "Liveness-Check"
initialDelaySeconds: 15 # Ждем 15 сек после старта контейнера
periodSeconds: 10 # Проверяем каждые 10 секунд
timeoutSeconds: 3 # Таймаут на ответ - 3 секунды
failureThreshold: 3 # После 3 неудачных проверок подряд - контейнер неживой
Ключевое отличие от readinessProbe:
livenessProbeотвечает на вопрос «Жив ли контейнер?». Неудача → перезапуск.readinessProbeотвечает на вопрос «Готов ли контейнер принимать трафик?». Неудача → контейнер исключается из эндпоинтов Service. Это позволяет приложению спокойно завершить запуск или временно уйти на обслуживание без перезапуска.
Почему это важно для DevOps: Пробы обеспечивают самоисцеление (self-healing) приложений в продакшене, повышая общую отказоустойчивость сервиса.