Sign inSign up

nginx/nginx-ingress

Verified Publisher

By NGINX Inc.

•Updated about 2 hours ago

NGINX and NGINX Plus Ingress Controllers for Kubernetes

Image
124

1B+

nginx/nginx-ingress repository overview

⁠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

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

ResourceLink
Full documentationdocs.nginx.com/nginx-ingress-controller⁠
Configuration examplesExamples⁠
NGINX Plus featuresNGINX Plus overview⁠
Helm chartcharts/nginx-ingress⁠

⁠Docker Images

The latest stable release is 5.7.0⁠. For production use, we recommend that you choose the latest stable release.

RegistryLink
Docker Hubnginx/nginx-ingress⁠
GitHub Container Registryghcr.io/nginx/kubernetes-ingress⁠
Amazon ECR Public Gallerypublic.ecr.aws/nginx/nginx-ingress⁠
Quay.ioquay.io/nginx/nginx-ingress⁠
F5 Container Registry (NGINX Plus)See registry docs⁠

You can also build your own image⁠.

⁠Container images & installation resources
VersionDescriptionImage for NGINXImage for NGINX PlusInstallation Manifests and Helm ChartDocumentation and Examples
Latest stable releaseFor production useUse 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/NightlyFor testing and experimentingUse 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 ReleaseBase VersionRelease DateTag
2026 LTS r95.4.314 Oct 20262026-lts-r9

LTS images are available from the following registries:

RegistryLink
F5 Container RegistrySee 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.

Tag summary

Content type

Image

Digest

sha256:bf5100712…

Size

98.5 MB

Last updated

about 2 hours ago

docker pull nginx/nginx-ingress

This week's pulls

Pulls:

150,023

Last week