I am using Ubuntu 16.04 (Xenial) but here's a problem which I face with kubeadm while joinig nodes to my master:
While joining a node to my master, I continuouly get a timeout issue -
[discovery] Failed to request cluster info, will try again: [Get 
https://{{MASTER_IP}}/api/v1/namespaces/kube- 
public/configmaps/cluster-info: dial tcp {{MASTER_IP}}: i/o timeout]
[discovery] Failed to request cluster info, will try again: [Get 
https://{{MASTER_IP}}/api/v1/namespaces/kube- 
public/configmaps/cluster-info: dial tcp {{MASTER_IP}}: i/o timeout]Note: I have deliberately changed my IP addresses to {{MASTER_IP}} which is nothing but the Master's IP address.
I can ping the master from my node. I can even ssh into it but I can't join it to the cluster. I must also mention that I am not operating behind a proxy (I added this later)
I have tried with flags like no_proxy={{MASTER_IP}} . I have also tried initiating the cluster on the master with the command
sudo kubeadm init --apiserver-advertise-address={{MASTER_IP}}Where can I possibly go wrong? Please help guys.!!
P.S. - I have gone through the git issues which are related to this. I've tried their solutions but in vain. Here's a link to one of them - https://github.com/kubernetes/kubernetes/issues/58921
Most likely you get time out because join token expired, is no longer valid or does not exist on master node. If that is the case then you will not be able to join the cluster.
Check if join token exists on master node. Execute this command on master node.
$ kubeadm token list 
TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION   EXTRA GROUPSAs you can see there are no tokens. Please create new token.
$ kubeadm token create 123456.abcdefghijklmnopOnce, token is created then you will be able to use it in kubeadm join command.
Disabling the firewall worked for me. I was able to connect my Node machine to the master machine using kubeadm join.