Get the deploy.yaml file to bring ingress-nginx-controller from here
https://github.com/kubernetes/ingress-nginx/blob/main/deploy/static/provider/cloud/deploy.yaml

It makes sure there is single entry point to your K8s Cluster. It provides load balancing, SSL termination and virtual hosting.

Every reverse proxy software ( nginx, haproxy, traefic , caddy ) has separate reverse proxy file and ingress controller.
Any incoming request will 1st hit ingress pod. Just creating ingress file ( ingress.yaml where we specify which url will be redirected to which service ) is not enough we also need to bring ingress controller to K8s Cluster.
Master Node in K8s Cluster has controller-manager which manages ingress controller. It makes sure ingress pod is running and all request are 1st hitting ingress pod.

# 1. Start a K8s Cluster
# 2. Start a Backend Deployment
# 3. Create an internal ( ClusterIP ) service to expose backend deployment pods
# 4. Start a Frontend Deplyment
# 5. Create an internal ( ClusterIP ) service to expose frontend deployment pods
# 6. Install nginx-ingress-controller
# 7. Create an ingress.yml file
eksctl create cluster --name ingress-cluster --region ap-south-1 --nodes 3 --node-type t2.micro