Ingress vs Node Port

Asking for help? Comment out what you need so we can get more information to help you!

Cluster information:

Kubernetes version: 1.26.7
Cloud being used: (put bare-metal if not on a public cloud) bare-metal
Installation method: RKE2
Host OS: Ubuntu20.04
CNI and version: calico
CRI and version: containerd

In our Kubernetes environment, we are exploring options for exposing multiple services. Currently, we are considering using NodePorts and load balancing these NodePorts to all cluster node IP addresses through an external Nginx or Load Balancer. Our external Nginx and Load Balancer already handle reverse proxy and load balancing for services outside the Kubernetes cluster.

We are curious about the potential benefits of using the Nginx Ingress Controller instead of load balancing to node IP addresses and NodePorts. What are the recommended best practices in this scenario, and what is the performance impact of both approaches?

Any insights or experiences from the community would be highly appreciated.