如何在Kubernetes中为节点添加角色?

gz5pxeao  于 2023-01-20  发布在  Kubernetes
关注(0)|答案(6)|浏览(295)

当我使用kubeadm配置Kubernetes集群时,我的节点被标记为“无”。这是Kubernetes中的一个已知错误,目前正在进行PR。
但是,我想知道是否有为节点手动添加角色名称的选项。

root@ip-172-31-14-133:~# kubectl get nodes
NAME               STATUS    ROLES     AGE       VERSION
ip-172-31-14-133   Ready     master    19m       v1.9.3
ip-172-31-6-147    Ready     <none>    16m       v1.9.3
ftf50wuq

ftf50wuq1#

这对我很有效:
kubectl label node cb2.4xyz.couchbase.com node-role.kubernetes.io/worker=worker

NAME                                          STATUS    ROLES           AGE       VERSION
cb2.4xyz.couchbase.com                          Ready     custom,worker   35m       v1.11.1
cb3.5xyz.couchbase.com                          Ready     worker          29m       v1.11.1

我无法删除/更新旧标签,但我可以接受。

ohfgkhjo

ohfgkhjo2#

节点角色只是node-role.kubernetes.io/<role>的标签
您可以使用kubectl label自行添加此内容

46qrfjad

46qrfjad3#

默认值

添加角色

kubectl label node <node name> node-role.kubernetes.io/<role name>=<key - (any name)>

删除角色

kubectl label node <node name> node-role.kubernetes.io/<role name>-

fnatzsnv

fnatzsnv4#

标签前:

general@master-node:~$ kubectl get nodes
NAME          STATUS   ROLES    AGE   VERSION
master-node   Ready    master   23m   v1.18.2
slave-node    Ready    <none>   19m   v1.18.2

kubectl label nodes <your_node> kubernetes.io/role=<your_label>
在我的示例中,从节点例如
kubectl label nodes slave-node kubernetes.io/role=worker

标签后:

general@master-node:~$ kubectl label nodes slave-node kubernetes.io/role=worker
node/slave-node labeled
general@master-node:~$ kubectl get nodes
NAME          STATUS   ROLES    AGE   VERSION
master-node   Ready    master   24m   v1.18.2
slave-node    Ready    worker   21m   v1.18.2

**您也可以更改标签。**只需输入--overwrite

kubectl label --overwrite nodes <your_node> kubernetes.io/role=<your_new_label>
例如:
kubectl label --overwrite nodes slave-node kubernetes.io/role=worker1

覆盖标签后:

general@master-node:~$ kubectl label --overwrite nodes slave-node kubernetes.io/role=worker1
node/slave-node labeled
general@master-node:~$ kubectl get nodes
NAME          STATUS   ROLES     AGE   VERSION
master-node   Ready    master    36m   v1.18.2
slave-node    Ready    worker1   32m   v1.18.2
4ioopgfo

4ioopgfo5#

添加角色

$ kubectl get nodes 

master  Ready    control-plane,master   166m    v1.21.1
worker1  Ready    worker                 48m     v1.21.1
worker2  Ready    worker                 16m     v1.21.1
worker3   Ready    worker                 9m57s   v1.21.1    

$ kubectl label node worker1  node-role.kubernetes.io/worker=worker

$ kubectl label node worker2  node-role.kubernetes.io/worker=worker

$ kubectl label node worker3  node-role.kubernetes.io/worker=worker

如果您想覆盖,请使用下面的命令。

$ kubectl label node worker1  node-role.kubernetes.io/worker=worker --overwrite
to94eoyn

to94eoyn6#

在我的例子中,我可以用下面的命令来完成

kubectl label nodes ip-10-0-47-13.ec2.internal kubernetes.io/role=worker
    • 产出**
node/ip-10-0-47-13.ec2.internal labeled

mansoor.hasan@PURE-DEV-MANSOORHASAN EKS % kubectl get nodes                                                       
NAME                         STATUS   ROLES    AGE    VERSION
ip-10-0-47-13.ec2.internal   Ready    worker   161m   v1.20.15-eks-fb459a0

相关问题