[Kubernetes] kubeadm join 을 통한 신규 노드 추가

INYEONG KIM·2024년 8월 22일
post-thumbnail

AS-IS

cluster3-node2 를 클러스터에 추가해야하는 상황 및 kubelet 버전 업그레이드 필요

➜ k get node
NAME                     STATUS   ROLES           AGE     VERSION
cluster3-controlplane1   Ready    control-plane   3h28m   v1.30.1
cluster3-node1           Ready    <none>          3h23m   v1.30.1

# ssh cluster3-node2
➜ kubelet --vsion
Kubernetes v1.29.5

# kubeadm 은 이미 버전이 v1.30 인 상황 (업그레이드 불필요)
➜ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"30", GitVersion:"v1.30.1", GitCommit:"6911225c3f747e1cd9d109c305436d08b668f086", GitTreeState:"clean", BuildDate:"2024-05-14T10:49:05Z", GoVersion:"go1.22.2", Compiler:"gc", Platform:"linux/amd64"}

# 그러나 kubeadm upgrade plane 실행 시 관련 파일들이 없다는 에러 발생
### 실제로 클러스터에 join 되지 않은 노드리는 의미
➜ kubeadm upgrade plan 
couldn't create a Kubernetes client from file "/etc/kubernetes/kubelet.conf": failed to load admin kubeconfig: open /etc/kubernetes/kubelet.conf: no such file or directory
To see the stack trace of this error execute with --v=5 or higher

1. kubectl, kubelete 업그레이드

node2 를 controlplane 과 동일한 버전으로 바이너리 설정

➜ apt-get update
➜ apt install kubectl=1.30.1-1.1 kubelet=1.30.1-1.1

➜ kubelet --vsion
Kubernetes v1.30.1

# 완료
➜ systemctl restart kubelet

2. kubeadm join

controlplane 에서 token 생성

# join 하기 쉽도록 --print-join-command 옵션 추가
➜ kubeadm token create --print-join-command
kubeadm join {controlplane IP}:6443 --token newtoken --discovery-token-ca-cert-hash sha256:asdfasdf9

# 신규 token 내용 확인 가능
➜ kubeadm token list

이후 node2 에서 위의 command 실행 (kubeadm join)

➜ kubeadm join {controlplane IP}:6443 --token newtoken --discovery-token-ca-cert-hash sha256:asdfasdf9

TO-BE

신규 노드의 추가 내용 확인

➜ k get node
NAME                     STATUS   ROLES           AGE     VERSION
cluster3-controlplane1   Ready    control-plane   3h28m   v1.30.1
cluster3-node1           Ready    <none>          3h23m   v1.30.1
cluster3-node2           Ready    <none>          10m     v1.30.1

참고

https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

profile
미래의 저를 위해 작성하는 중입니다 🙆‍♂️

0개의 댓글