kubeadm init
으로 클러스터 생성 시, join에 필요한 token, hash와 함께 join 커맨드가 나오지만, 이 token은 유효기간이 24시간이고, 값을 따로 복사해두지 않으면 join을 할 수 없게 됩니다.
# kubeadm init --config=kubeadm-config.yaml --upload-certs
You can now join any number of the control-plane node running the following command on each as root:
kubeadm join api-server IP:6443 --token [token] \
--discovery-token-ca-cert-hash sha256:hash \
--control-plane --certificate-key ~~
Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join api-server IP:6443 --token [token] \
--discovery-token-ca-cert-hash sha256:hash
클러스터의 main master node로 접속합니다.
클러스터의 토큰을 확인합니다.
$ 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할 node로 접속합니다.
조회한 token값과 hash 값을 사용하여 join 합니다.
$ kubeadm join api-server IP:6443 --token [token] \
--discovery-token-ca-cert-hash sha256:hash
$ kubectl get nodes
토큰 생성 시,
--print-join-command
옵션을 사용하면 Step 1의 과정을 생략하고 바로 join 커맨드를 확인할 수 있습니다.$ kubeadm token create --print-join-command --- kubeadm join api-server IP:6443 --token [token] \ --discovery-token-ca-cert-hash sha256:hash