Search code examples
kuberneteskubernetes-ingressnginx-ingressmetallb

Exposing Service from a BareMetal(Kubeadm) Kubernetes Cluster to outside world


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.

For that, I have created a deployment and service for NGINX as shown below, enter image description here

As per my search, found that we have below to expose to outside world

  • MetalLb
  • Ingress NGINX
  • Some HELM resources

I would like to know all these 3 or any more approaches in such way it help me to learn new things.

GOAL

  • Exposing Service from a BareMetal(Kubeadm) Built Kubernetes Cluster to the outside world.
  • How Can I make my service has its own public IP to access from the outside cluster?

Solution

  • You need to set up MetalLB to get an external IP address for the LoadBalancer type services. It will give a local network IP address to the service.

    Then you can do port mapping (configuration in the router) of incoming traffic of port 80 and port 443 to your external service IP address.

    I have done a similar setup you can check it here in detail:

    1. https://developerdiary.me/lets-build-low-budget-aws-at-home/

    2. https://developerdiary.me/exposing-web-apps-running-in-our-raspberry-pi-cluster/