Repolode
nginx

nginx/kubernetes-ingress

An Ingress Controller for Kubernetes that runs NGINX or NGINX Plus to route external HTTP, gRPC, TCP and UDP traffic to cluster services.

Stars
5,094
Forks
2,056
Open issues
190
Last commit
14 hours ago

What is it?

NGINX Ingress Controller is a Kubernetes component that configures an NGINX or NGINX Plus load balancer according to Ingress resources in a cluster. It handles content-based routing by host and path, and TLS/SSL termination for each hostname, so applications inside the cluster can be reached from outside.

Beyond standard Ingress, the controller adds NGINX features as annotations and ConfigMap settings. It also provides its own VirtualServer and VirtualServerRoute resources for cases such as traffic splitting, and a TransportServer resource for TCP, UDP and TLS passthrough. Websocket, gRPC, TCP and UDP applications are supported in addition to HTTP.

The project is maintained by NGINX (F5). Installation is available through a Helm chart or Kubernetes manifests, and images are published for both NGINX and NGINX Plus. It is distinct from the kubernetes/ingress-nginx controller.

Key features

  • 01Host-based and path-based routing for HTTP traffic.
  • 02TLS/SSL termination for each hostname.
  • 03Load balancing for HTTP, Websocket, gRPC, TCP and UDP applications.
  • 04VirtualServer resources for traffic splitting and advanced routing.
  • 05TLS passthrough through TransportServer resources.
  • 06Works with both NGINX open source and NGINX Plus.

Use cases

  • Exposing web applications running in a Kubernetes cluster to external clients.
  • Terminating TLS certificates for multiple services at a single entry point.
  • Splitting traffic between application versions during a rollout.
  • Load balancing gRPC or TCP services inside a Kubernetes environment.

Quick start

  1. 1

    Install the controller with the Helm chart or Kubernetes manifests linked in the README

  2. 2

    Configure load balancing for a sample app using the Cafe example or the VirtualServer basic configuration example

Things to know

  • It runs only inside Kubernetes clusters.
  • Some features require NGINX Plus, a commercial product covered by a support contract.
  • It is a different project from the NGINX Ingress Controller in kubernetes/ingress-nginx.

In collections

Topics

FAQ

What is kubernetes-ingress?
An Ingress Controller for Kubernetes that runs NGINX or NGINX Plus to route external HTTP, gRPC, TCP and UDP traffic to cluster services. NGINX Ingress Controller is a Kubernetes component that configures an NGINX or NGINX Plus load balancer according to Ingress resources in a cluster. It handles content-based routing by host and path, and TLS/SSL termination for each hostname, so applications inside the cluster can be reached from outside.
Is kubernetes-ingress free to use? What license does it have?
kubernetes-ingress is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is kubernetes-ingress still maintained?
Actively maintained. The last commit to kubernetes-ingress was on Nov 6, 2026.
What can I use kubernetes-ingress for?
Exposing web applications running in a Kubernetes cluster to external clients. Terminating TLS certificates for multiple services at a single entry point. Splitting traffic between application versions during a rollout. Load balancing gRPC or TCP services inside a Kubernetes environment.
How do I install kubernetes-ingress?
Install the controller with the Helm chart or Kubernetes manifests linked in the README Configure load balancing for a sample app using the Cafe example or the VirtualServer basic configuration example
Where can I get kubernetes-ingress?
The source code and installation instructions are on GitHub: https://github.com/nginx/kubernetes-ingress

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects