K8S 클러스터 rejoin

반영환·2024년 6월 21일
0

k8s

목록 보기
13/14
post-thumbnail

비용적 이유 때문에 클러스터를 종료할 때 클러스터를 초기화시키거나, 데이터 플레인만을 종료해서 다시 클러스터에 join시키는 방법이 있다. 즉 컨트롤 플레인은 24/7 운영해야 한다.

K8S 클러스터 토큰

K8S 클러스터에 join하기 위한 토큰은 아래와 같은 형식이다.

kubeadm join <control-plane-private-ip>:6443 --token <token> \
        --discovery-token-ca-cert-hash sha256:<hash>

token 다시 읽기

kubeadm token list

TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
<token>   23h         2024-06-22T06:01:53Z   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token

Token값이 있는데, TTL이 존재해서 토큰이 만료하면 사용할 수 없다. 따라서 토큰을 다시 만들어 주자.

token 재생성

kubeadm token create
# <token2>

kubeadm token list
##################
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
<token>   23h         2024-06-22T06:01:53Z   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token
<token2>   23h         2024-06-22T06:08:53Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

Hash 값 구하기

openssl을 이용해서 구하자.

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

# <hash>

재접속

위에서 구한 token과 hash 를 이용해 재접속을 하면 된다.

kubeadm join <control-plane-private-ip>:6443 --token <new_token> \
        --discovery-token-ca-cert-hash sha256:<new_hash>
profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글