# kubernetes/ingress-nginx

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kubernetes-ingress-nginx).**

19,492 stars · 8,566 forks · Go · Apache-2.0 · archived

## Links

- GitHub: https://github.com/kubernetes/ingress-nginx
- Homepage: https://kubernetes.github.io/ingress-nginx/
- awesome-repositories: https://awesome-repositories.com/repository/kubernetes-ingress-nginx.md

## Topics

`ingress-controller` `kubernetes` `nginx`

## Description

This project is a Kubernetes Ingress Controller that functions as a layer 7 traffic router and NGINX reverse proxy. It serves as a secure network gateway, directing external HTTP and HTTPS traffic to backend services within a cluster based on declarative routing rules.

The controller acts as a TLS termination gateway to secure traffic and integrates with Prometheus to expose request metrics and latency data for cluster monitoring. It supports canary deployment workflows by implementing weight-based traffic splitting between different versions of a service.

The system manages external access and multi-service routing through hostname and path-based rules. It utilizes a template-driven configuration process that synchronizes with cluster resources, employing leader election for high availability and hot-reloading to apply updates without disrupting active connections.

## Tags

### DevOps & Infrastructure

- [Ingress Controllers](https://awesome-repositories.com/f/devops-infrastructure/ingress-controllers.md) — Manages external access to Kubernetes services through load balancing and name-based virtual hosting.
- [Ingress Gateways](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-traffic-controllers/ingress-gateways.md) — Provides a single entry point and secure network gateway for all external traffic entering the Kubernetes cluster.
- [Configuration-Driven Templating Engines](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/template-and-generation-engines/configuration-driven-templating-engines.md) — Generates Nginx configuration files by processing Go templates based on cluster resource data.
- [Dynamic Resource Watching](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/resource-controllers/dynamic-resource-watching.md) — Employs Kubernetes informers to watch for resource changes and trigger configuration updates.
- [Reverse Proxy Configurations](https://awesome-repositories.com/f/devops-infrastructure/reverse-proxy-configurations.md) — Configures NGINX as a reverse proxy to handle load balancing and routing for Kubernetes services.
- [Signal-Based Reloading](https://awesome-repositories.com/f/devops-infrastructure/application-server-configurations/dynamic-configuration-reloading/signal-based-reloading.md) — Applies configuration changes by sending a reload signal to Nginx to avoid dropping connections.
- [Canary Deployment Controllers](https://awesome-repositories.com/f/devops-infrastructure/deployment-updates/canary-deployment-controllers.md) — Manages incremental traffic shifts for API updates to safely perform canary deployments.
- [Leader Election](https://awesome-repositories.com/f/devops-infrastructure/high-availability-systems/leader-election.md) — Uses distributed locking to ensure only one controller instance manages the configuration state.
- [Annotation-Driven Configurations](https://awesome-repositories.com/f/devops-infrastructure/ingress-controllers/annotation-driven-configurations.md) — Parses Kubernetes Ingress annotations to inject specific Nginx directives for rate limiting and SSL.

### Development Tools & Productivity

- [Go Template Rendering](https://awesome-repositories.com/f/development-tools-productivity/data-transformation/template-helpers/go-template-rendering.md) — Uses Go's text/template engine to dynamically render Nginx routing configurations.
- [Hot Reloading](https://awesome-repositories.com/f/development-tools-productivity/configuration-updates/hot-reloading.md) — Provides the capability to apply configuration changes immediately without restarting the process.

### Networking & Communication

- [Layer 4 and Layer 7 Proxies](https://awesome-repositories.com/f/networking-communication/layer-4-and-layer-7-proxies.md) — Operates as an application-layer proxy to route requests based on hostnames and paths.
- [Layer 7 Traffic Routers](https://awesome-repositories.com/f/networking-communication/layer-7-traffic-routers.md) — Directs application-layer requests to backend services using hostname and path-based rules.
- [Request Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing.md) — Directs incoming web requests to internal services using predefined hostnames and path-based matching rules. ([source](https://kubernetes.github.io/ingress-nginx/))
- [Configuration Generators](https://awesome-repositories.com/f/networking-communication/proxy-configuration-tools/configuration-generators.md) — Compiles Kubernetes resource data into unified Nginx configuration files.
- [TLS Termination](https://awesome-repositories.com/f/networking-communication/service-meshes/tls-termination.md) — Terminates TLS connections at the ingress layer to secure traffic before it enters the cluster.
- [Proxy Traffic Management](https://awesome-repositories.com/f/networking-communication/traffic-proxying/proxy-traffic-management.md) — Directs external network traffic to internal services using a high-performance reverse proxy and load balancer. ([source](https://kubernetes.github.io/ingress-nginx/))
- [Traffic Routing](https://awesome-repositories.com/f/networking-communication/traffic-routing.md) — Routes HTTP and HTTPS traffic to multiple backend services based on hostnames and custom rules.
- [Weighted Traffic Splitting](https://awesome-repositories.com/f/networking-communication/traffic-shaping/scaling/traffic-distribution/weighted-traffic-splitting.md) — Implements canary rollouts by distributing traffic between service versions using weighted load balancing.

### Web Development

- [Reverse Proxies](https://awesome-repositories.com/f/web-development/reverse-proxies.md) — Implements a high-performance reverse proxy using Nginx to handle load balancing and request routing.
- [Lua Scripting Extensions](https://awesome-repositories.com/f/web-development/api-management-tools/api-development-management/api-client-implementations/grpc-service-implementations/request-modifiers/http-request-manipulations/lua-scripting-extensions.md) — Utilizes embedded Lua scripts for dynamic L7 request processing and routing logic.

### Software Engineering & Architecture

- [Ingress Annotation Injections](https://awesome-repositories.com/f/software-engineering-architecture/contextual-data-injection/contextual-metadata-injection/server-metadata-injections/directive-metadata-injections/ingress-annotation-injections.md) — Implements custom Nginx configuration injection via Kubernetes Ingress resource annotations.

### System Administration & Monitoring

- [Kubernetes Monitors](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/infrastructure-monitoring/kubernetes-monitors.md) — Exposes NGINX request counts and latency metrics for Kubernetes cluster performance monitoring via Prometheus.
