When you deploy multiple applications, exposing them to the internet in a cost-efficient as well as in secure way becomes tricky. Without Ingress, you either have to:
Use multiple LoadBalancer services which will increase costs.
Use NodePort services + external proxy which leads to a complex configuration.
Deal with DNS, SSL, routing logic separately which is harder to manage.
Ingress to Rescue
Its API object that manages external access to services within a cluster.
It allows you to define rules for routing traffic based on hostnames or URL paths.
Core Components of Ingress
Ingress Resource : These are rules that specify how to route external traffic to internal services.
Ingress Controller: A component that implements the Ingress rules. Kubernetes as a project supports and maintains AWS, GCE and nginx ingress controllers.