An Ingress controller is a specialized load balancer for Kubernetes (and other containerized) environments. Kubernetes is the de facto standard for managing containerized applications. For many enterprises, moving production workloads into Kubernetes brings additional challenges and complexities around application traffic management. An Ingress controller abstracts away the complexity of Kubernetes application traffic routing and provides a bridge between Kubernetes services and external ones.
Kubernetes Ingress controllers:
- Accept traffic from outside the Kubernetes platform, and load balance it to pods (containers) running inside the platform
- Can manage egress traffic within a cluster for services which need to communicate with other services outside of a cluster
- Are configured using the Kubernetes API to deploy objects called “Ingress Resources”
- Monitor the pods running in Kubernetes and automatically update the load‑balancing rules when pods are added or removed from a service
Watch this session from NGINX Sprint to learn more about Kubernetes networking concepts and what an Ingress controller does, and get practical advice on deciding which of the three basic kinds of Ingress controllers (open source, cloud-vendor default, and commercial) is best for you.
How Can NGINX Help?
Are you frequently applying configuration changes to your Ingress controller? Is protecting your Kubernetes services from attacks a top priority? Then you need a production‑grade Ingress controller with features like:
- Dynamic reconfiguration
- A lightweight and modern web application firewall (WAF)
- Authorization and authentication with standard battle‑tested single sign‑on (SSO) solutions like OpenID Connect (OIDC)
- 24/7 support to help you quickly move production workloads to Kubernetes
The NGINX Ingress Controller is production‑grade Ingress controller (daemon) that runs alongside NGINX Open Source or NGINX Plus instances in a Kubernetes environment. The daemon monitors NGINX Ingress resources and Kubernetes Ingress resources to discover requests for services that require ingress load balancing. It is compatible with NGINX App Protect, our lightweight, modern WAF that can be deployed on the Ingress controller, as a per‑service proxy, and as a per‑pod proxy.
With NGINX Ingress Controller you harness Kubernetes networking on Layers 4 through 7, to enable tighter security and traffic control among Kubernetes services.
There are many Ingress controllers that use NGINX as the data plane, and you may be wondering which one is right for you. On our blog we provide an overview of the three most common Ingress controllers built on NGINX:
- Kubernetes Community (kubernetes/ingress-nginx on GitHub)
- NGINX Open Source (nginxinc/kubernetes-ingress on GitHub)
- NGINX Plus (commercial product based on NGINX Plus)
Choosing the right Ingress controller depends on your use case. If you need production‑grade app delivery, the features listed above are key and only the NGINX Plus-based version of NGINX Ingress Controller provides them.