How do I find the join command for kubeadm on the master? How do I find the join command for kubeadm on the master? kubernetes kubernetes

How do I find the join command for kubeadm on the master?


kubeadm token create --print-join-command


This might not work for the old Kubernetes versions but I tried with the new version and it worked for me.

To print a join command for worker/slave node,
kubeadm token create --print-join-command

But if you need to join a new control plane node, that won't work as you need to recreate a new key for the control plane join command. This can be done with three simple steps.

01.) re upload certs in the already working master node
sudo kubeadm init phase upload-certs --upload-certs
it will generate a new certificate key.

02.) print join command in the already working master node
kubeadm token create --print-join-command

03.) Add the --control-plane --certificate-key and execute.
<join command from step 02> --control-plane --certificate-key <key from step 01>

Done.


To create kubeadm join command, please run the following commands:

Step 1 - Retrieve Token CA Hash:

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

This command will provide you public key.

Step 2 - Retrieve bootstrap Tokens:

kubeadm token list

This will print all tokens, so copy the token value under TOKEN with the description "The default bootstrap token generated by kubeadm init."

Step 3 - Creates kubeadm init command:

Now use following syntax to create join command without creating a new token:

kubeadm join <ip-address>:6443\    --token=<token-from-step-2> \    --discovery-token-ca-cert-hash sha256:<ca-hash-from-step-1>

kubeadm token create command creates a new token, in this case without any description, so for you not to create any additional tokens, just pick the token which has a DESCRIPTION as mentioned in Step 2.