Что это значит

Контроллер ingress-nginx пересобирает конфигурацию и не находит у сервиса ни одного адреса, куда отправлять запросы. Пользователь получает ответ 503. Адреса у сервиса появляются только у подов, которые совпадают с селектором сервиса и прошли проверку готовности (readiness).

Причин три: поды есть, но не готовы; поды есть, но метки не совпадают с селектором; подов нет, потому что приложение остановлено или масштабировано в ноль. Последний случай на тестовых стендах обычен и тревоги не заслуживает.

Как проверить

kubectl get endpointslices -n <namespace> -l kubernetes.io/service-name=<service>
kubectl get pods -n <namespace> -l <селектор сервиса> -o wide
kubectl describe svc <service> -n <namespace> | grep -i selector

Если подов нет, смотреть, кто остановил приложение. Если поды не готовы, смотреть события пода и проверку готовности: kubectl describe pod, ошибки вида Readiness probe failed.

Что сделать

  1. Поды не готовы: разбирать, почему не проходит проверка готовности.
  2. Метки не совпадают: привести селектор сервиса и метки шаблона пода к одному виду.
  3. Приложение остановлено намеренно: убрать правило ingress или исключить такие пространства имён из тревог.