AKS: входной модуль Nginx застрял в состоянии «Ожидание» из-за nodeSelector - PullRequest
0 голосов
/ 17 октября 2019

Сегодня я развернул службу AKS в облаке Azure и попытался запустить на ней тестовые службы, однако столкнулся с ошибкой, что модуль Ingress застрял в состоянии Pending из-за следующего:

0 /Доступно 2 узла: 2 узла не соответствуют селектору узлов.

Я проверил nodeSelector для входа Nginx:

  nodeSelector:
    kubernetes.io/os: linux

Чтобы устранить проблему, я удалилnodeSelector из развертывания, и теперь все работает как положено.

Ниже приведены свидетельства того, что я использую правильную ОС на своих узлах Kubernetes:

enter image description here

Входная версия 0.26.1 - развернута с использованием манифестов из github .

Итак, понятно, как исправить проблему, но в чем здесь коренная причина? Это ошибка или пробел в знаниях?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Я думаю, что было бы лучшим решением пометить узлы:

kubectl label node --all kubernetes.io/os=linux

1 голос
/ 17 октября 2019

Я использую Kubernetes версии 1.13.10.

Начиная с Kubernetes версии 1.16, beta.kubernetes.io/os устарел, и теперь актуальным является kubernetes.io/os. Таким образом, ingress использует параметры в соответствии с последней версией Kubernetes.

Чтобы навсегда устранить проблему, необходимо использовать параметр beta.kubernetes.io/os в версии kubernetes ниже 1.16.

Замечания к выпуску Kuberentes 1.16.

Я добавил patch в свой конвейер, чтобы решить проблему:

kubectl patch deployment nginx-ingress-controller -p '{"spec":{"template":{"spec":{"nodeSelector":{"beta.kubernetes.io/os":"linux"}}}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...