Ingress resources enable the following functionality:
- Load balancing, extended through the use of Services
- Content-based routing, using hosts and paths
- TLS/SSL termination, based on hostnames
For additional information, please read the official Kubernetes Ingress Documentation.
Ingress Controllers are applications within a Kubernetes cluster that enable Ingress resources to function. They are not automatically deployed with a Kubernetes cluster, and can vary in implementation based on intended use, such as load balancing algorithms for Ingress resources.
How NGINX Ingress Controller is Designed explains the technical details of the F5 NGINX Ingress Controller.