Ответ
Если Pod не проходит readiness-пробу, Kubernetes исключает его из списка эндпоинтов Service. Это означает:
- Трафик не направляется на этот Pod — балансировщик нагрузки (kube-proxy) обновляет правила iptables/IPVS, убирая IP этого Pod'а из цепочки правил.
- Pod продолжает работать — в отличие от failed liveness-пробы, контейнер не перезапускается.
- Сервис остается доступным через другие, здоровые Pod'ы.
Типичный сценарий использования:
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 10 # Даем время на инициализацию
periodSeconds: 5
failureThreshold: 3
Это полезно, когда приложению нужно время для загрузки кэша, подключения к БД или выполнения других подготовительных операций перед приемом трафика. В моей практике мы настраивали readiness-пробу для сервисов, которые подключаются к нескольким внешним системам — пока все подключения не установлены, Pod не получает пользовательские запросы.