Understanding Ingress Controllers
An Ingress Controller is a piece of software that provides load balancing, SSL termination, and host-based virtual routing. It is a reverse proxy that runs in the Kubernetes cluster, which manages a reverse proxy network component that can run inside the Kubernetes cluster or externally, just like any other network infrastructure device. An Ingress Controller acts just like any other controller deployed in a Kubernetes cluster, although it is not managed by the cluster itself. We must deploy this controller manually as it is not part of the Kubernetes core. If required, we can deploy multiple Ingress Controllers in a cluster and define which one is to be used by default if none is specified.
Ingress Controllers work very well with HTTP/HTTPS applications (OSI Layer 7, the application layer), but we can publish TCP and UDP applications too (OSI Layer 4, the transport layer), although this does require more configuration and may not be the best option...