如何在创建时将标签设置为Kubernetes节点?

时间:2016-10-19 12:40:57

标签: kubernetes

我正在跟踪指南[1]以创建具有1个主节点和2个节点的多节点K8S群集。此外,标签需要分别设置为每个节点。

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

3 个答案:

答案 0 :(得分:4)

您可以选择几种方式。最简单的IMHO是使用 systemd unit 来安装和配置kubectl,然后运行kubectl label命令。或者,您可以使用curl直接更新node's metadata中的标签。

话虽如此,虽然我不知道您的确切用例,但您在节点上使用标签的方式似乎是绕过Kubernetes的一些关键功能,例如跨节点动态调度组件。我建议您自动标记节点,而不是尝试解决为什么需要首先识别节点。

答案 1 :(得分:4)

事实上,从1.3或类似的东西开始,实现这一目标有一个微不足道的方法。

负责注册节点的是在其上启动的kubelet进程,您需要做的就是向它传递一个像--node-labels 'role=kubemaster'这样的标志。这就是我如何区分AWS k8s群集中不同自动缩放组之间的节点。

答案 2 :(得分:0)

我知道这不是创建时间,但以下内容非常简单(标签遵循 key=value 的模式):

k label node minikube gpu.nvidia.com/model=Quadro_RTX_4000 node.coreweave.cloud/cpu=intel-xeon-v2
node/minikube labeled