<p>I installed a one node Kubernetes with <code>kubeadm</code>. This is on a <code>vServer</code> &quot;bare metal&quot; with dedicated external static IP.</p>
<p>With these components/settings:</p>
<ul>
<li>calico (default settings)</li>
<li>MetalLB (Layer 2 config with address range <code>192.168.1.240-192.168.1.250</code>)</li>
<li>Traefik (default settings)</li>
</ul>
<p>Now a traefik service is exposed as an &quot;external IP&quot; but the IP is <code>192.168.1.240</code>. This is external from k8s point of view but how do I expose the ingress service to the internet?</p>
<p>I do not want to set up an additional external load balancer. How can I achieve this?</p>

Dieshe
<p>metalLB is not needed at all. When you install traefik add this value file (as <code>traefik.yaml</code> in this case):</p>
<pre><code>service:
  externalIPs:
    - &lt;your_external_static_ip_here_without_the_brackets&gt;

</code></pre>
<p>and then install it like this: <code>helm install --values=./traefik.yaml traefik traefik/traefik -n traefik --create-namespace</code></p>
