What Is a Kubernetes Ingress Controller
A Kubernetes Ingress Controller is a specialized component within a Kubernetes cluster that manages the routing of external HTTP and HTTPS traffic—and, in the case of some implementations with custom extensions, TCP and UDP packets—to services running inside the cluster. It interprets and implements Ingress resources, which are Kubernetes API objects that define rules for routing traffic to different services based on URL paths, hostnames, and other criteria.
Tetrate offers an enterprise-ready, 100% upstream distribution of Envoy Gateway, Tetrate Enterprise Gateway for Envoy (TEG). TEG is the easiest way to get started with Envoy, the de facto standard cloud-native data plane, for Kubernetes ingress. Get access now ›
Key Concepts
Ingress Resource: This is a configuration that defines how to route traffic from the outside world to internal services based on rules such as hostnames and paths.
Ingress Controller: This is a controller that watches the Kubernetes API server for changes to Ingress resources and updates the routing rules accordingly. It is responsible for managing and configuring the underlying load balancer or proxy (like NGINX, HAProxy, or Traefik) to handle traffic routing as specified in the Ingress resources.
Load Balancing: The Ingress Controller typically provides load balancing for HTTP and HTTPS traffic, distributing requests among the appropriate backend services.
TLS Termination: Ingress Controllers can also handle TLS termination, decrypting HTTPS traffic before passing it to the backend services.
Path-Based Routing: Ingress resources can specify different backend services for different URL paths, allowing fine-grained control over traffic routing.
Hostname-Based Routing: Ingress resources can route traffic to different services based on the requested hostname, enabling multi-tenancy and subdomain management.
External Access: The Ingress Controller enables services within a Kubernetes cluster to be accessible from outside the cluster without needing to expose each service individually.
Common Kubernetes Ingress Controllers
NGINX Ingress Controller: One of the most widely-used Ingress controllers, leveraging the NGINX web server.
Traefik Ingress Controller: A dynamic and cloud-native edge router designed for handling ingress traffic in Kubernetes.
HAProxy Ingress Controller: Utilizes HAProxy for high-performance load balancing.
Istio Ingress Gateway: Part of the Istio service mesh, providing advanced traffic management capabilities.
Gateway API Alternative to Kubernetes Ingress
Conceived as a successor to the earlier Ingress API, Gateway API aims to enhance the configuration and management of Kubernetes ingress, service discovery, load balancing, and traffic routing by providing a unified and extensible API that integrates with Kubernetes’ native resources such as Services, Endpoints, and Ingresses.
Envoy Gateway is now the standard Ingress choice for Kubernetes deployments. Built on the open-source Envoy proxy, it offers a wide range of third-party integrations and extensive capabilities that work in compatible ways across suppliers without the risk of vendor lock-in.