<p>I am working on setting up a multi-node, multi hardware server Kubernetes Cluster. I am using Calico and Kubeadm.</p>

<p>The one server version is working on windows using a private network among the host machine.</p>

<p>I am facing a networking issue that I am trying to fix to connect nodes across the external network (LAN).</p>

<p>So I am trying to use a bridge adapter ‘a nic virtualization’ within the virtual machines (nodes) to allow visibility over the network to a remote server using promiscuous mode and a static IP address. I am using Vagrant.</p>

<p>But I cannot create a static public IP over the network (LAN), maybe I have don’t have the privilege to do it.</p>

<p><strong>Troubleshooting:</strong></p>

<ol>
<li><p>To start I’ve tried to create a random IP public address, it’s working. But when I tried to join the worker nodes to the master it failed using kubeadm, “connection refused”. Kubeadm join command works only on the private network,
I read that there’s extra Kubernetes config to edit to allow the external access, but I couldn't figure out how to do it. I tried to use: <code>
kubeadm join &lt;public-ip&gt;:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx</code> 
but the generated file /etc/kubernetes/bootstrapkubelet.conf and /etc/kubernetes/kubelet.conf is still using the :6443 inside it.
I tried also to update  --advertise-address.</p></li>
<li><p>One of the ideas it to create a gateway to forward the traffic of a specific port from the first net interface to the second, I am using Ubuntu/xenial on the host machines.</p></li>
<li>I think that the easiest solution, it to fix the traffic forwarding and the IP address allocation.</li>
</ol>

<p>I am asking if someone could help me.</p>

<p>Thank you.</p>

<p>While doing kubeadm init add the PUBLIC IP and PORT as part of <code>--control-plane-endpoint</code> parameter.</p>

<pre><code>sudo kubeadm init --control-plane-endpoint "PUBLIC_IP:PORT"
</code></pre>
