본문 바로가기
DevOps/Kubernetes

[kubernetes] 쿠버 클러스터 호스트 네임 변경으로 인해 자식 노드 재가입

by Yoon_estar 2025. 1. 12.
728x90

개요

클러스터 구축 이후 원활한 관리를 위하여 자식 노드의 호스트 네임 변경 후 아래와 같이 정상적으로 클러스터 인식이 안되는 오류를 겪었다. 

kubenode211 > jenkins211

 

따라서 해당 자식노드를 클러스터에 재가입 시켜 오류를 해결하였다. 

# k get no
NAME            STATUS     ROLES           AGE   VERSION
kubemaster210   Ready      control-plane   61d   v1.28.15
kubemaster220   Ready      control-plane   16h   v1.28.15
kubemaster230   Ready      control-plane   15h   v1.28.15
kubenode211     NotReady   <none>          61d   v1.28.15
kubenode212     Ready      <none>          61d   v1.28.15
kubenode213     Ready      <none>          61d   v1.28.15
kubenode214     Ready      <none>          61d   v1.28.15

 

 

클러스터 토큰 값 확인(마스터 노드)

# kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
5ddwmu.xvzdczr8r7r37rx4   6h          2025-01-12T07:52:56Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
abhj3i.riijmng0wmyt4jga   7h          2025-01-12T08:47:24Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
ibp92e.4gp3lwvy36cppehx   6h          2025-01-12T08:09:47Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
nu6nmx.wotjre7gn172lnpb   8h          2025-01-12T09:33:17Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

# kubeadm token create
grlpe2.14qixkx5qcqa7ihn

# kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
5ddwmu.xvzdczr8r7r37rx4   6h          2025-01-12T07:52:56Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
abhj3i.riijmng0wmyt4jga   7h          2025-01-12T08:47:24Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
grlpe2.14qixkx5qcqa7ihn   23h         2025-01-13T01:29:12Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
ibp92e.4gp3lwvy36cppehx   6h          2025-01-12T08:09:47Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
nu6nmx.wotjre7gn172lnpb   8h          2025-01-12T09:33:17Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
07c4ede398ee4ed3e3077925e2237f0484576e0372a79dd6502d21b5e6103973

 

가입할 노드

기존 정보를 삭제해주지 않으면 오류가 발생하므로 반드시 진행해준다.

Token 정보는 위에서 얻은 정보를 토대로 진행한다.

# kubeadm reset

# rm -rf /etc/kubernetes

# netstat -tuln | grep 10250 (없어야함)

# systemctl stop kubelet
# systemctl start kubelet

# kubeadm join 192.168.207.210:6443 --token grlpe2.14qixkx5qcqa7ihn \
--discovery-token-ca-cert-hash sha256:07c4ede398ee4ed3e3077925e2237f0484576e0372a79dd6502d21b5e6103973

 

확인

k get no
NAME            STATUS     ROLES           AGE   VERSION
jenkins211      Ready      <none>          5s    v1.28.15
kubemaster210   Ready      control-plane   61d   v1.28.15
kubemaster220   Ready      control-plane   16h   v1.28.15
kubemaster230   Ready      control-plane   15h   v1.28.15
kubenode211     NotReady   <none>          61d   v1.28.15
kubenode212     Ready      <none>          61d   v1.28.15
kubenode213     Ready      <none>          61d   v1.28.15
kubenode214     Ready      <none>          61d   v1.28.15

 

이전에 오류가 나온 클러스터는 삭제 해준다.

 

# k delete node kubenode211
node "kubenode211" deleted

# k get no
NAME            STATUS   ROLES           AGE   VERSION
jenkins211      Ready    <none>          74s   v1.28.15
kubemaster210   Ready    control-plane   61d   v1.28.15
kubemaster220   Ready    control-plane   16h   v1.28.15
kubemaster230   Ready    control-plane   15h   v1.28.15
kubenode212     Ready    <none>          61d   v1.28.15
kubenode213     Ready    <none>          61d   v1.28.15
kubenode214     Ready    <none>          61d   v1.28.15