#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 добавил это к моему ответу