Kubernetes трудный путь - Как установить узел unschedulable - PullRequest
0 голосов
/ 03 июля 2018

Я готовлю кластер Kubernets с нуля (причины). Это локальная установка внутри ВМ, и все в порядке, за исключением того, что узел master создан как планируемый.

Я попытался присвоить метку master и соответствующий вред узлу, передав необходимые аргументы двоичному файлу kubelet (проблема не решается):

--register-with-taints=node-role.kubernetes.io/master=:NoSchedule
--node-labels=master,node-role.kubernetes.io/master=""

Вот вывод из kubectl describe <node>:

Name:               myNodeName
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/hostname=myHostName
                    master=
                    node-role.kubernetes.io/master=
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
CreationTimestamp:  Tue, 03 Jul 2018 05:56:53 +0000
Taints:             node-role.kubernetes.io/master=true:NoSchedule
Unschedulable:      false

Как мне установить этот узел как Unschedulable? В документации это не указано (не стесняйтесь, обращайтесь к соответствующей части документации, если я что-то пропустил).

PS: упомянутые выше ярлыки / портят присутствовали до создания / регистрации узла.

1 Ответ

0 голосов
/ 03 июля 2018

Taints дает нам возможность пометить узел, чтобы запретить планировщику использовать его для определенных модулей с параметром NoSchedule, и у них есть специальные значения, которые Kubernetes Scheduler использует на этапе планирования. Стручки по умолчанию не могут появляться на узлах с портами, пока вы не добавите tolerations, что позволит планировщику создавать стручки на узлах с портами, указанными в конфигурации toleration; следовательно, согласно описанию вашего узла, вы успешно зарегистрировали этот узел как NoSchedule, и это означает, что блоки не будут запланированы на этом узле.

портит: node-role.kubernetes.io/master=true:NoSchedule

Кроме того, вы можете использовать команду kubectl cordon NODE, чтобы пометить узел как unschedulable ; поэтому он вообще отключит планирование для узла, поэтому Kubernetes Scheduler будет просто игнорировать его в процессе планирования рабочей нагрузки, и это будет отражаться в конфигурации вашего узла, например:

Недопустимо: правда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...