The Ingress is a Kubernetes resource that lets you configure an HTTP load balancer for applications running on Kubernetes, represented by one or more Services. Such a load balancer is necessary to deliver those applications to clients outside of the Kubernetes cluster.
The Ingress resource supports the following features:
- Content-based routing:
- Host-based routing. For example, routing requests with the host header
foo.example.comto one group of services and the host header
bar.example.comto another group.
- Path-based routing. For example, routing requests with the URI that starts with
/serviceAto service A and requests with the URI that starts with
/serviceBto service B.
- TLS/SSL termination for each hostname, such as
What is the Ingress Controller?
The Ingress controller is an application that runs in a cluster and configures an HTTP load balancer according to Ingress resources. The load balancer can be a software load balancer running in the cluster or a hardware or cloud load balancer running externally. Different load balancers require different Ingress controller implementations.