2016-10-19 1 views
1

Я следую инструкциям [1] для создания многоузлового кластера K8S, который имеет 1 мастер и 2 узла. Кроме того, метка должна быть установлена ​​на каждый узел соответственно.Как установить метку на узел Kubernetes во время создания?

Node 1 - label name=orders 
Node 2 - label name=payment 

Я знаю, что выше может быть достигнут запуском команды kubectl

kubectl get nodes 
kubectl label nodes <node-name> <label-key>=<label-value> 

Но я хотел бы знать, как установить метку при создании узла. Руководство по созданию узла находится в [2].

Цените свой ввод.

[1] https://coreos.com/kubernetes/docs/latest/getting-started.html

[2] https://coreos.com/kubernetes/docs/latest/deploy-workers.html

ответ

1

Есть несколько вариантов, доступных для вас. Простейшим IMHO было бы использовать systemd unit для установки и настройки kubectl, а затем запустить команду kubectl label. Кроме того, вы можете просто использовать curl для немедленного обновления меток в node'smetadata.

В то время как я не знаю вашего конкретного случая использования, то, как вы используете метки на узлах, кажется, это попытка обойти некоторые ключевые функции Kubernetes, такие как динамическое планирование компонентов по узлам. Я бы предложил вместо работы по маркировке узлов автоматически, чтобы вы попытались решить, почему вам нужно идентифицировать узлы в первую очередь.

+0

Yup. Я с тобой согласен. Но мое требование - создавать контейнеры на узлах, где он соответствует метке. Потому что в кластере K8S будет так много контейнеров, и мне легко понять, какой модуль работает на каком узле. –

2

На самом деле существует тривиальный способ достичь этого с 1,3 или что-то в этом роде.

Что несет ответственность за регистрацию вашего узла, это запущенный на нем процесс кубе, все, что вам нужно сделать, это передать ему флаг, подобный этому --node-labels 'role=kubemaster'. Именно так я различаю узлы между различными группами автомасштабирования в моем кластере AWS k8s.

+0

похоже, что мой кластер 'v1.7.3 + coreos.0' не обнаруживает, что аргумент CLI для kubelet изменился.' - node-labels mapStringString <Предупреждение: функция Alpha> Ярлыки для добавления при регистрации узла в кластере , Ярлыки должны быть ключевыми парами значений, разделенными символом «,». – mighq

+0

Согласно https://github.com/kubernetes/kubernetes/issues/51858, он применяется только во время начальной регистрации узла. – mighq

Смежные вопросы