我正在跟踪指南[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
2 回答
您可以选择几种方式 . 最简单的恕我直言将使用systemd单元来安装和配置kubectl,然后运行
kubectl label
命令 . 或者,您可以直接使用curl
更新node's metadata中的标签 .话虽如此,虽然我不知道您的确切用例,但您在节点上使用标签的方式似乎是绕过Kubernetes的一些关键功能,例如跨节点动态调度组件 . 我建议您自动标记节点,而不是尝试解决为什么需要首先识别节点 .
事实上,从1.3或类似的东西开始,实现这一目标有一个微不足道的方法 .
负责注册节点的是在其上启动的kubelet进程,你需要做的就是传递一个像这样的标志
--node-labels 'role=kubemaster'
. 这就是我如何区分AWS k8s群集中不同自动缩放组之间的节点 .