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
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, and you may be wondering which one is right for you. As with so many decisions, it depends on your use case. The features we’ve discussed in this blog are recommended for production‑grade app delivery and they are unique to the NGINX Plus-based version of NGINX Ingress Controller.
On our blog we provide an overview of the three most common versions:
- Kubernetes Community (kubernetes/ingress-nginx on GitHub)
- NGINX Open Source (nginxinc/kubernetes-ingress on GitHub)
- NGINX Plus (commercial version based on NGINX Plus)