Kubernetes nodes Roles 변경


 

매번 nodes를 확인할 때마다 ROLES에 <none>이 떠있는 것이 맘에 안들었는데, 고쳐보자

[vagrant@master ~]$ kubectl get nodes
NAME      STATUS   ROLES           AGE     VERSION
master    Ready    control-plane   4d20h   v1.29.2
worker1   Ready    <none>          4d20h   v1.29.2
worker2   Ready    <none>          4d20h   v1.29.2
[vagrant@master ~]$ kubectl get nodes -o wide
NAME      STATUS   ROLES           AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                CONTAINER-RUNTIME
master    Ready    control-plane   4d20h   v1.29.2   192.168.98.10   <none>        CentOS Linux 8   4.18.0-348.7.1.el8_5.x86_64   containerd://1.6.28
worker1   Ready    <none>          4d20h   v1.29.2   192.168.98.20   <none>        CentOS Linux 8   4.18.0-348.7.1.el8_5.x86_64   containerd://1.6.28
worker2   Ready    <none>          4d20h   v1.29.2   192.168.98.30   <none>        CentOS Linux 8   4.18.0-348.7.1.el8_5.x86_64   containerd://1.6.28

 

왜 그런지 kubectl get nodes --show-labels로 라벨을 구체적으로 확인해보자

[vagrant@master ~]$ kubectl get nodes --show-labels
NAME      STATUS   ROLES           AGE     VERSION   LABELS
master    Ready    control-plane   4d20h   v1.29.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,
node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
worker1   Ready    <none>          4d20h   v1.29.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker1,kubernetes.io/os=linux
worker2   Ready    <none>          4d20h   v1.29.2   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker2,kubernetes.io/os=linux

 

잘 비교해보면 node-role.kubernetes.io/~~ 가 master만 있다.

worker도 구문을 추가해주고

master는 control-plane이 아닌 master로 바꿔보자

"kubectl label node <node이름> node-role.kubernetes.io/<변경할 이름>="

[vagrant@master ~]$ kubectl label node master node-role.kubernetes.io/master=
node/master labeled
[vagrant@master ~]$ kubectl label node worker1 node-role.kubernetes.io/worker=
node/worker1 labeled
[vagrant@master ~]$ kubectl label node worker2 node-role.kubernetes.io/worker=
node/worker2 labeled

 

ROLES가 추가된 것을 볼 수 있다.

[vagrant@master ~]$ kubectl get nodes
NAME      STATUS   ROLES                  AGE     VERSION
master    Ready    control-plane,master   4d20h   v1.29.2
worker1   Ready    worker                 4d20h   v1.29.2
worker2   Ready    worker                 4d20h   v1.29.2

 

하지만, master는 두개가 되어버렸다. control-plane을 빼버리자

"kubectl label node <node이름> node-role.kubernetes.io/<변경할 이름>-"

추가하는 것에서 "=" 대신 "-" 적으면 빠짐

[vagrant@master ~]$ kubectl label node master node-role.kubernetes.io/control-plane-
node/master unlabeled

[vagrant@master ~]$ kubectl get nodes
NAME      STATUS   ROLES    AGE     VERSION
master    Ready    master   4d20h   v1.29.2
worker1   Ready    worker   4d20h   v1.29.2
worker2   Ready    worker   4d20h   v1.29.2

 

편안해졌다..

'Container > Kubernetes' 카테고리의 다른 글

kubernetes volumes - nfs  (0) 2024.03.12
Empty Dir  (0) 2024.03.12
Pod 내에 container 생성  (0) 2024.03.08
Deployment  (0) 2024.03.08
ReplicaSet  (0) 2024.03.07

+ Recent posts