我正在跟踪指南[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
答案 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