Ingress
Ingress is a Kubernetes resource that routes external HTTP/HTTPS traffic to internal services using host and path rules via an ingress controller.
Ingress is a Kubernetes API resource that manages external access to services in a cluster, usually for HTTP and HTTPS traffic. It defines routing rules that map incoming requests to internal Services based on hostname and URL path.
How It Works
An Ingress object is only a set of rules; it does nothing without an ingress controller to implement it. The controller, such as NGINX Ingress, HAProxy, Traefik, or a cloud provider's controller, runs in the cluster, watches Ingress resources, and configures a load balancer or reverse proxy accordingly.
Ingress rules typically perform host-based routing (for example, api.example.com versus app.example.com) and path-based routing (for example, /users to one service and /orders to another). Ingress also commonly terminates TLS, presenting a certificate to clients and forwarding plaintext to backends. The newer Gateway API is increasingly used to address Ingress's limitations.
Why It Matters
Without Ingress, exposing many services externally would require a separate load balancer or node port per service, which is costly and hard to manage. Ingress consolidates routing behind a single entry point, providing a clean place to handle TLS, virtual hosts, and path routing.
Ingress is therefore central to how web applications and APIs running on Kubernetes are published to users, and it often overlaps in responsibility with an API gateway.
Related Terms
Ingress routes traffic to a Service that fronts pods, relies on a load balancer or reverse proxy, and overlaps with an API gateway for north-south traffic.