В Kubernetes произошел сбой при планировании с использованием nodeSelector

#linux #windows #kubernetes #rancher #flannel

#linux #Windows #kubernetes #владелец ранчо #фланель

Вопрос:

Я установил готовый кластер Kubernetes с помощью Rancher с 3 узлами Centos и 1 узлом Windows. Я хотел установить развертывание, которое никогда не будет выполняться через узел Windows, поэтому я установил в спецификации развертывания.template.spec.nodeSelector: kubernetes.io/os : linux

Кажется, что оно выполняется, но развертывание застревает в ожидании с этой ошибкой:

Предупреждение Сбой планирования по умолчанию-в планировщике доступно 0/4 узла: 1 узел (ы) не соответствовал селектору узла, 3 узла (ов) были повреждены {cattle.io/os : linux}, что модуль не допускал.

Есть идеи?

Ответ №1:

Планировщик не может запланировать модуль на узлах Linux, потому что эти узлы заражены. Поэтому вам нужно добавить допуски в спецификацию модуля развертывания.

   tolerations:
  - key: "cattle.io/os"
    operator: "Equal"
    value: "linux"
    effect: "NoSchedule"
  

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

 kubectl taint nodes windowsnode cattle.io/os=windows:NoSchedule
  

Комментарии:

1. УРА, спасибо, это сработало! Просто исправьте оператор: «Равно» на operator: «Равно»

2. ОК, подождите, я все еще вижу, что когда я увеличиваю масштаб развертывания, оно по-прежнему пытается применить один из модулей к узлу Windows…

3. Исправлено путем добавления недостающей ошибки к узлу Windows с использованием: kubectlразрушающие узлы Windows cattle.io/os=windows:NoSchedule

4. @tal47 добавил это к моему ответу