개요
2022.09.05 - [kubeadm/cri-dockerd] Kubernetes 설치 / 클러스터 생성 에서 생성한 단일 노드 클러스터에 노드를 추가하고자 한다.
kubeadm join
node join 시에는 apiserver 주소, token 그리고 인증서 정보가 필요하다.
join 명령은 join할 노드에서 실행하면 된다. master와 마찬가지로 container runtime, kubectl, kubeadm, kubelet은 설치되어 있어야 한다.
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
# 예시
kubeadm join 172.31.29.238:6443 --token kglces.6gw78mgmpybtvtpz \
--discovery-token-ca-cert-hash sha256:cfe638f4ddcb4ae9e2478ee191645e9d00632d53801a71acf2fbea7880a02ee6
token 목록 확인
사용할 수 있는 token 목록은 list 명령으로 확인할 수 있다. token은 기본적으로 24시간 동안 유효하다.
kubeadm token list
token 생성
사용할 수 있는 token이 없는 경우, create 명령으로 생성할 수 있다.
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/^.* //'
결과값 앞에 "sha256:"을 붙여서 --discovery-token-ca-cert-hash 옵션으로 전달한다.
참고 문서
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-join/