Hey everyone! I'm diving into Kubernetes and have a few questions about using Ingress and Services in my home lab setup. I've got a simple 3-node cluster running on Proxmox (192.168.4.0) with one controller and two workers. Currently, I have an Nginx deployment with three replicas exposed through a NodePort service. I'm trying to figure out if I should use Ingress to deploy this properly. My goal is to make it accessible on my home lab LAN at 192.168.4.0, understanding that this isn't the usual cloud/load balancer setup. Do I need something like MetalLB for this to work properly without exposing it via NodePort? Thanks for any insights!
5 Answers
Check out this [blog post](https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0) for a clearer explanation. With some research, you might come back with more specific questions!
You actually don’t need a load balancer or Ingress unless your setup specifically calls for it. Ingress is just another reverse proxy managed via the Ingress controller, based on your Kubernetes resources.
Thank you!
While Ingress has been around for a while, it still works fine. It’s stable and mature for many use cases. If it fits your needs, go ahead! You probably don’t need MetalLB unless you have specific requirements for it.
That’s what I was looking to validate! This is just a homelab, but I want to keep some self-hosted apps running on K8s to learn more.
To set it up, you'll need a load balancer that listens to 192.168.4.0, forwarding to your NodePorts. Using Ingress allows you to manage requests based on hostnames and paths, plus you can handle SSL termination too. Something like Nginx Ingress can really help streamline this.
Thanks! I already installed Nginx Ingress and am now deciding whether to keep using NodePort or switch to Ingress for a more structured setup.
Yes, that's the right idea! Ingress is essentially a routing layer, and you can later switch out Nginx for a different Ingress controller if needed. It gives you flexibility for managing requests based on paths or hostnames.
Thank you!

Thank You!