Skip to content

About

NGINX and NGINX Plus Ingress Controllers for Kubernetes

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5.1k stars

Watchers

102 watching

Forks

Latest commit

 

History

6,049 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NGINX Ingress Controller

logo

Latest Release Go Version Contributors Docker Pulls Artifact Hub Go Reference codecov OpenSSFScorecard License Commercial Support

Open Issues Closed Issues Open PRs

K8s Community Forum

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?

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.

Features

  • 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-services Ingress 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

Quick Start

Install with Helm (recommended)

helm install <RELEASE_NAME> oci://ghcr.io/nginx/charts/nginx-ingress --version 2.8.0

Install with Manifests

# 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.yaml

Full Installation Guide →

Try It Out

Once 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.yaml

See more examples to explore all capabilities.

Documentation

Resource Link
Full documentation docs.nginx.com/nginx-ingress-controller
Configuration examples Examples
NGINX Plus features NGINX Plus overview
Helm chart charts/nginx-ingress

Docker Images

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.

Container images & installation resources

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.

Releases

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 Releases

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

SBOM (Software Bill of Materials)

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 }}' | grype

Community

We'd love to hear from you! Here's how to get involved:

Join The Next Community Call

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.

Meeting Details

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.

License

Apache License 2.0

Support

For NGINX Plus customers, NGINX Ingress Controller (when used with NGINX Plus) is covered by the support contract.

About

NGINX and NGINX Plus Ingress Controllers for Kubernetes

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5.1k stars

Watchers

102 watching

Forks

Releases

Packages

Used by

Contributors

Languages