본문 바로가기

DevOps/쿠버네티스(Kubernetes)

[쿠버네티스 #tip4] 새로운 워커노드를 Join 시키거나 클러스터를 초기화할 때

728x90

안녕하세요 오랜만에 쿠버네티스 글입니다.

 

제 미천한 블로그를 찾아주시는 분들 중에 쿠버네티스 팁 중에 뭐가 도움이 될까 생각해보니 

 

두 가지가 떠올랐습니다.

 

바로 새로운 워커노드를 추가할 때나 클러스터를 초기화 하는 과정이 필요하다고 생각했어요

 

Minikube의 경우에는 이런 과정이 쉽겠지만 실제 VM이나 온프레미스환경에서 구축한 경우 여러가지 경우에 의하여 초기화 시키는 경우가 많았습니다. (물론 저 혼자 에러때문에 초기화한 거지만..)

 

그런 분들에게 도움이 되고자 이 글을 작성합니다.

 

우선 새로운 워커노드를 추가하는 방법입니다.

 

기존에 처음 Join했을 때를 기억하시나요? 

 

워커노드에서

$ kubeadm join (IP주소):6443 --token (토큰 값) --discovery-token-ca-cert-hash sha256:(토큰 해쉬변환 값)

이 명령어를 복사했을 겁니다.

 

마찬가지로 똑같이 새로운 워커노드에 이 명령어를 쳐주면 되는데 토큰 값에서 문제가 발생합니다.

 

토큰은 유효기간이 있거든요. 따라서 토큰을 새로 발급 받고 그 토큰을 해쉬변환값이 필요합니다.

 

$ kubeadm token list
를 통해 리스트를확인하고 

$ kubeadm token create
를 통해 토큰을 생성합니다.
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

이 명령어를 치게 되면 발급된 토큰의 해쉬변환값을 얻을 수 있습니다.

 

이제 나온 값들을 위 join 명령어에 대입해주면 됩니다.

 

 

두번째는 초기화 방법입니다.

 

kubeadm으로 설치를 하셨다면 초기화방법은 간단합니다.

 

바로

$ kubeadm reset

을 해주면 되거든요 하지만! 여기서 주의할 점이있습니다. 

 

단순히 이 명령어만 친다고 되는게 아니라 추가적으로 파일을 하나 삭제해야합니다.

 

리셋 명령어를 치게되면 특정 파일을 삭제하라고 합니다. 그 파일을 삭제해줘야 다시 init을 했을 때 문제가 생기지 않습니다.

 

 

반응형