After running a ‘kubeadm init’ on the main node, it shows you the node join command which includes a token and a hash. It appears these values only stay valid for 24hrs, so if you try to use them again after 24 hours the ‘kubeadm join’ command will fail with something like:
[discovery] Failed to connect to API Server “192.168.1.67:6443”: there is no JWS signed token in the cluster-info ConfigMap. This token id “78a69b” is invalid for this cluster, can’t connect
To create a new join string, from the master node run:
kubeadm token create --print-join-command
Running the new join command string on your new nodes will now allow them to join the cluster.
This is described in the docs here.