A production-grade Ingress Controller for Kubernetes, powered by NGINX or NGINX Plus.
This repo provides an implementation of an Ingress Controller for NGINX and NGINX Plus from the people behind NGINX.
- Why NGINX Ingress Controller?
- Features
- Quick Start
- Documentation
- Docker Images
- Releases
- Community
- License
- Support
NGINX Ingress Controller manages traffic into your Kubernetes cluster — routing HTTP, HTTPS, TCP, UDP, and gRPC to your services based on rules you define. Built by the team behind NGINX, it gives you the reliability and performance of NGINX with native Kubernetes integration.
Note: Coming from the community-supported kubernetes/ingress-nginx controller? Check out the NGINX Kubernetes Hub for details on how to migrate to the NGINX Ingress Controller.
- Content-based routing — Host and path-based routing via standard Ingress resources
- TLS/SSL termination — Automatic certificate handling per hostname
- Advanced traffic management — Traffic splitting, A/B testing, and canary deployments via VirtualServer/VirtualServerRoute CRDs
- TCP/UDP load balancing — Via TransportServer CRD
- gRPC load balancing — Via the
nginx.org/grpc-servicesIngress annotation or gRPC upstreams in VirtualServer/VirtualServerRoute - Security policies — Rate limiting, JWT auth, WAF (via F5 WAF for NGINX), mTLS, OIDC, and more
- Prometheus metrics — Built-in monitoring and observability
- Highly configurable — Annotations, ConfigMap, and CRDs for fine-grained control
- Commercial support — Available for NGINX Plus users
helm install <RELEASE_NAME> oci://ghcr.io/nginx/charts/nginx-ingress --version 2.8.0# Install the Custom Resource Definitions (required for the default configuration)
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deploy/crds.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/common/ns-and-sa.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/rbac/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/common/nginx-config.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/deployment/nginx-ingress.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/service/loadbalancer.yaml
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/deployments/common/ingress-class.yamlOnce installed, deploy a sample application:
# Deploy the Cafe example app
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/examples/ingress-resources/complete-example/cafe.yaml
# Create a self-signed TLS certificate for cafe.example.com and store it in the Secret referenced by the Ingress
openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout cafe.key -out cafe.crt \
-subj "/CN=cafe.example.com" -addext "subjectAltName=DNS:cafe.example.com"
kubectl create secret tls tls-secret --cert=cafe.crt --key=cafe.key
kubectl apply -f https://raw.githubusercontent.com/nginx/kubernetes-ingress/v5.7.0/examples/ingress-resources/complete-example/cafe-ingress.yamlSee more examples to explore all capabilities.
| Resource | Link |
|---|---|
| Full documentation | docs.nginx.com/nginx-ingress-controller |
| Configuration examples | Examples |
| NGINX Plus features | NGINX Plus overview |
| Helm chart | charts/nginx-ingress |
The latest stable release is 5.7.0. For production use, we recommend that you choose the latest stable release.
| Registry | Link |
|---|---|
| Docker Hub | nginx/nginx-ingress |
| GitHub Container Registry | ghcr.io/nginx/kubernetes-ingress |
| Amazon ECR Public Gallery | public.ecr.aws/nginx/nginx-ingress |
| Quay.io | quay.io/nginx/nginx-ingress |
| F5 Container Registry (NGINX Plus) | See registry docs |
You can also build your own image.
| Version | Description | Image for NGINX | Image for NGINX Plus | Installation Manifests and Helm Chart | Documentation and Examples |
|---|---|---|---|---|---|
| Latest stable release | For production use | Use the 5.7.0 images from DockerHub, GitHub Container, Amazon ECR Public Gallery or Quay.io or build your own image. | Use the 5.7.0 images from the F5 Container Registry or Build your own image. | Manifests. Helm chart. | Documentation. Examples. |
| Edge/Nightly | For testing and experimenting | Use the edge or nightly images from DockerHub, GitHub Container, Amazon ECR Public Gallery or Quay.io or build your own image. | Build your own image. | Manifests. Helm chart. | Documentation. Examples. |
The latest stable release is 5.7.0. For production use, we recommend the latest stable release.
The edge version is built from the latest commit on
main and is useful for testing new features.
LTS (Long Term Support) releases receive extended maintenance, including critical bug fixes and security patches, for customers who need stability over an extended period. LTS images are NGINX Plus only.
| LTS Release | Base Version | Release Date | Tag |
|---|---|---|---|
| 2026 LTS r9 | 5.4.3 | 14 Oct 2026 | 2026-lts-r9 |
LTS images are available from the following registries:
| Registry | Link |
|---|---|
| F5 Container Registry | See registry docs |
We generate SBOMs for the binaries and the Docker images.
Binaries: Available on the releases page in SPDX format, generated using syft.
Docker Images: Available in DockerHub, GitHub Container, Amazon ECR Public Gallery or Quay.io as attestations in the image manifest.
Example — retrieve and analyze the SBOM for linux/amd64:
docker buildx imagetools inspect nginx/nginx-ingress:edge --format '{{ json (index .SBOM "linux/amd64").SPDX }}' | grypeWe'd love to hear from you! Here's how to get involved:
- Upcoming Events
- Community Forum — Questions and discussion about NGINX Ingress Controller
- Issues — Report bugs or request features
- Discussions — Talk about NGINX Ingress Controller, share ideas, and connect with other users
- Contributing Guide — Learn how to contribute
- Code of Conduct — Our commitment to a welcoming community PLEASE READ BEFORE SUBMITTING
- Security Policy — How to report security issues
- Community Calls — First Tuesday of each month at 16:00 Irish time (convert to your timezone)
We value community input so please join our community call on the first Tuesday of each month. At these calls, we discuss submissions made by community members, answer your questions and hear your feedback. We would love to see you there!
See all of our scheduled calls along with other events on our calendar.
Zoom: NGINX Ingress Controller - Community Call
Meeting ID: 985 4405 5687
Passcode: 982193
When: 16:00 Irish Time / Convert to your timezone, first Tuesday of every month.
| Community Call Dates |
|---|
| 2026-11-03 |
| 2026-12-01 |
| 2027-01-05 |
| 2027-02-02 |
| 2027-03-02 |
| 2027-04-06 |
You can also join the NGINX Community Forum to chat about the NGINX Ingress Controller.
For NGINX Plus customers, NGINX Ingress Controller (when used with NGINX Plus) is covered by the support contract.
