An ingress controller is the Kubernetes component that turns Ingress objects into working external HTTP or HTTPS routing. It watches the Kubernetes API for Ingress, Service, and EndpointSlice objects, then configures an L7 load balancer or reverse proxy from their desired state. section 12.1 section 12.1.2
An ingress controller connects several layers of external application access:
- The Ingress object defines host- and path-based rules that select backend Services. section 12.7
- The controller combines those rules with Service and EndpointSlice data, generates reverse-proxy configuration, and helps make the proxy reachable externally. section 12.1.2
- The proxy handles Layer 7 traffic and can provide TLS termination; the controller and proxy may run separately or together. section 12.1 section 12.7
- Multiple implementations can coexist, with each Ingress selecting its controller through an IngressClass. section 12.5
Installing a controller for a kind cluster
A kind cluster needs host ports 80 and 443 mapped and an ingress-ready control-plane node before applying the NGINX controller manifest: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml. Minikube provides the alternative command minikube addons enable ingress. section 12.1.3
Figure 12.2 The role of an ingress controller
Use the architecture figure to trace how the controller connects Ingress resources, the Kubernetes API, the proxy, and backend pods. section 12.1.2



