k8s设置node节点Role属性

1
2
3
4
5
root@k8s-master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 50d v1.11.2
k8s-node1 NotReady <none> 50d v1.11.2
k8s-node2 NotReady <none> 50d v1.11.2

在 kubeadm 引导的 k8s 集群中, 查看 nodes 信息时, ROLES 一列标记了 master 节点的身份, 其他节点默认没有标记. 在手动安装的 k8s 集群中, 你看到情况可能是如下这样的:

1
2
3
4
5
root@k8s-master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready <none> 50d v1.11.2
k8s-node1 NotReady <none> 50d v1.11.2
k8s-node2 NotReady <none> 50d v1.11.2

没错, 连 master 节点的标记都没有, 我们可以手动给任意 node 设置 ROLES

原理就是给 node 打标签, 只不过是特殊的标签

1
2
3
4
5
6
7
8
9
10
11
12
13
root@k8s-master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 50d v1.11.2
k8s-node1 NotReady <none> 50d v1.11.2
k8s-node2 NotReady <none> 50d v1.11.2
root@k8s-master:~# kubectl label node k8s-node1 node-role.kubernetes.io/worker=worker
node/k8s-node1 labeled
root@k8s-master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 50d v1.11.2
k8s-node1 NotReady worker 50d v1.11.2
k8s-node2 NotReady <none> 50d v1.11.2
root@k8s-master:~#

参考文档:

https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/