Nginx-Ingress controller не работает после обновления Kubernetes до 1.24+ в Azure AKS

Поскольку мой заказчик требует, чтобы у него были установлены актуальные версии софта, мне приходится обновлять и Kubernetes в соответствии с политикой поддержки релизов Kubernetes в Azure.
Последнее обновление до Kubernetes 1.24+ прошло не совсем гладко - поломался Nginx-ingress контроллер, и все приложения перестали работать.
Симптомы такие, что при обращении к приложению я получаю тайм-аут, а в логах контроллера я видел примерно вот такое:
Service 'XXX' does not have any active Endpoint.
Решение
Проблема заключалась в том, что Azure AKS как-то некоректно обновляет свой балансировщик (Kubernetes 1.24 начал использовать HTTP/S хелс-чеки вместо TCP). Надо еще раз передеплоить контроллер с дополнительной аннотацией:
service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path: /healthz
Судя по всему, редеплой измененной конфигурации заставляет AKS перепроверить настройку своего балансировщика. Вот как было до:
А вот как стало после (обратите внимание на колонку Path):
azure (ru), kubernetes (ru), aks (ru)
- Просмотров: 198