<p>Exposing Service from a BareMetal(Kubeadm) Build Kubernetes Cluster to the outside world. I am trying to access my Nginx as a service outside of the cluster to get NGINX output in the web browser.</p>
<p>For that, I have created a deployment and service for NGINX as shown below, <a href="https://i.stack.imgur.com/2Gk93.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2Gk93.png" alt="enter image description here" /></a></p>
<p>As per my search, found that we have below to expose to outside world</p>
<ul>
<li>MetalLb</li>
<li>Ingress NGINX</li>
<li>Some HELM resources</li>
</ul>
<p>I would like to know all these 3 or any more approaches in such way it help me to learn new things.</p>
<p><code>GOAL</code></p>
<ul>
<li>Exposing Service from a BareMetal(Kubeadm) Built Kubernetes Cluster to the outside world.</li>
<li>How Can I make my service has its own public IP to access from the outside cluster?</li>
</ul>

<p>You need to set up <code>MetalLB</code> to get an external IP address for the <code>LoadBalancer</code> type services. It will give a local network IP address to the service.</p>
<p>Then you can do port mapping (configuration in the router) of incoming traffic of port <code>80</code> and port <code>443</code> to your external service IP address.</p>
<p>I have done a similar setup you can check it here in detail:
<a href="https://developerdiary.me/lets-build-low-budget-aws-at-home/" rel="nofollow noreferrer">https://developerdiary.me/lets-build-low-budget-aws-at-home/</a></p>
