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

Downsides of Services

image.png

Ingress

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

image.png

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.

Exposing Full Stack App on internet via ingress

image.png

# 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

1. Starting a K8s Cluster

eksctl create cluster --name ingress-cluster --region ap-south-1 --nodes 3 --node-type t2.micro

2. Starting a Backend Deployment along with backend service