<p>I have a Kubernetes cluster with 1 master and 5 workers,
when I try to join the 6th worker node, It gets this error:</p>

<pre><code>$ sudo kubeadm join 172.22.20.20:6443 --token xxxxx.yyyyyyyy --discovery-token-ca-cert-hash sha256:zzzzzzz
[preflight] Running pre-flight checks.
    [WARNING FileExisting-crictl]: crictl not found in system path
Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl
[discovery] Trying to connect to API Server "172.22.20.20:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://172.22.20.20:6443"
[discovery] Failed to request cluster info, will try again: [Get https://172.22.20.20:6443/api/v1/namespaces/kube-public/configmaps/cluster-info: dial tcp 172.22.20.20:6443: getsockopt: connection refused]
</code></pre>

<p>All worker nodes are built the exact same way (script) on Ubuntu Server 16.04.</p>

<p>Is there any limit for join?
What kind of logs would be useful?</p>

<p>I had the same problem. In my case, I was using vagrant to set up a private network.
When starting kubeadm, you must specify the host IP.</p>

<pre><code>sudo kubeadm init --pod-network-cidr = 192.168.0.0 / 16 --apiserver-advertise-address = {Static_IP_ADRESS_HOST}
</code></pre>

<p>Example:</p>

<pre><code>sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=172.16.94.10
</code></pre>

<p>the expected output will be something like
<a href="https://i.stack.imgur.com/7Xypw.png" rel="noreferrer"><img src="https://i.stack.imgur.com/7Xypw.png" alt="enter image description here"></a></p>

<p>I hope this helps.</p>
