Nginx Ingress Controller не может найти узлы в Google Kubernetes Engine - PullRequest
1 голос
/ 04 ноября 2019

Я установил «входной контроллер nginx» на моем кластере GKE. Я следовал этому руководству для установки входного контроллера nginx в GKE.

При развертывании ресурсов для служебного и входного ресурса я понял, что входной контроллер находится на 0/1 enter image description here

События, говорящие мне:

0/1 nodes are available: 1 node(s) didn't match node selector.

Теперь я проверил yaml / опишите: https://pastebin.com/QG3GKxh1 И обнаружил, что:

nodeSelector:
    kubernetes.io/os: linux

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

Решение:

Приведенный ответ показал мне путь. Мой узел был помечен beta.kubernetes/io: linux, в то время как контроллер искал kubernetes/io: linux. Переименование nodeSelector в контроллере сработало.

1 Ответ

2 голосов
/ 04 ноября 2019

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

С помощью:

nodeSelector:
    kubernetes.io/os: linux

Вы говорите, что модули должны быть назначены узлу, который имеетэтикетка kubernetes.io/os: linux. Если ни один из ваших узлов не имеет такой метки, Pod никогда не будет назначен.

Удаление селектора из входного контроллера nginx или добавление метки kubernetes.io/os: linux к любому узлу должно исправить вашу проблему.

...