Skip to main content

Command Palette

Search for a command to run...

Deploying a Three-tier Application on AWS EKS

Updated
โ€ข8 min read
P

๐Ÿ”น About Me I am an Engineer with 2+ years of experience in Software,python automation,linux server and Networking at Tata Communications. Currently, I am transitioning my career into DevOps and Site Reliability Engineering (SRE) with hands-on knowledge of Docker, Ansible, Jenkins, Git, CI/CD pipelines, and AWS Cloud. Key contributions include automating data gathering using Python (Selenium), developing and maintaining web portals with Django and PHP, and managing Linux server environments (Red Hat Enterprise Linux 8.7). My networking expertise spans complex troubleshooting and configuration of routers and switches (Juniper, Cisco, Huawei), with hands-on experience in routing protocols (OSPF, BGP), VLANs, MPLS, VPN, and SD-WAN technologies. I am passionate about automation, cloud infrastructure, and reliability engineering, and I am actively seeking DevOps / Site Reliability Engineer opportunities where I can contribute, learn, and grow. ๐Ÿ“Œ Skills: AWS | Docker | Ansible | Jenkins | Git | CI/CD | Linux | Python | Networking | Fortinet | ๐Ÿ“Œ Certifications: CCNA Cisco Fortinet Firewall NSE4 AWS Cloud Practitioner Certification Devops skillsup from GFG

sudo yum install git
sudo yum install docker.io
sudo yum install docker
docker ps
sudo docker login
sudo systemctl start docker
sudo systemctl enable docker

 git clone https://github.com/prernask/TWSThreeTierAppChallenge.git
  217  ls
  218  cd TWSThreeTierAppChallenge/
  219  ls
  220  cd Application-Code/
  221  ls
  222  cd frontend/
  223  ls
  224  sudo rm Dockerfile

AWS configure:

 232  cd TWSThreeTierAppChallenge/
  233  ls
  234  cd
  235  curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  236  sudo apt install unzip
  237  unzip awscliv2.zip
  238  sudo ./aws/install -i /usr/local/aws-cli -b /usr/local/bin --update
  239  aws configure
  240  ls

Create a new dockerfile for frontend:

241  cd TWSThreeTierAppChallenge/
  242  ls
  243  cd Application-Code/
  244  ls
  245  cd f
  246  cd frontend/
  247  ls
  248  sudo touch dockerfile
  249  sudo nano dockerfile
  250  ls

Build docker file: get copy commands from AWS ECR

262  docker tag myecr/3tier:latest 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/3tier:latest
  263  sudo docker tag myecr/3tier:latest 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/3tier:latest
  264  docker push 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/3tier:latest
  265  sudo docker push 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/3tier:latest
  266  aws ecr get-login-password --region us-east-1 |sudo docker login --username AWS --password-stdin 196061557748.dkr.ecr.us-east-1.amazonaws.com
  267  sudo docker push 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/3tier:latest
  268  cd

For backend

270  cd TWSThreeTierAppChallenge/
  271  ls
  272  cd Application-Code/
  273  ls
  274  cd backend/
  275  ls
  276  sudo rm Dockerfile
  277  ls
  278  sudo touch dockerfile
  279  sudo nao dockerfile
  280  sudo nano dockerfile
  281  sudo docker build -t preranakarande/backend:latest .
  282  docker ps
  283  sudo chown $USER /var/run/docker.sock

  292  aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 196061557748.dkr.ecr.us-east-1.amazonaws.com
  293  docker build -t myecr/three-tier-backend .
  294  docker tag myecr/three-tier-backend:latest 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend:latest
  295  docker push 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend:latest
  296  cd ..

Create cluster for that docwnload Eksctland kubectl

 296  cd ..
  297  curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
  298  sudo mv /tmp/eksctl /usr/local/bin
  299  eksctl version
  300  curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  301  chmod +x kubectl
  302  sudo mv kubectl /usr/local/bin/
  303  kubectl version --client
  304  aws --version
  305  kubectl get nodes
  306  eksctl create cluster   --name mycluster   --region us-east-1   --nodegroup-name node1   --node-type t3.small   --nodes-min 2   --nodes-max 2
  307  kubectl get nodes
  308  ls

Create a pods containers for fronend

320  cd Frontend/
  321  ls
  322  sudo nano deployment.yaml
  323  sudo nano service.yaml
  326  kubectl create namespace myecr
  329  kubectl get deployments -n myecr
 424  sudo nano service.yaml -n myecr
  330  kubectl get svc -n myecr
  331  kubectl get deployments -n myecr
  332  sudo nano deployment.yaml
  333  kubectl get pods
  334  kubectl get pods -n myecr

  335  kubectl decripbe pod frontend-b859b864-mt4gp -n myecr
[ec2-user@ip-172-31-64-194 Frontend]$ sudo cat service.yaml
apiVersion: v1
kind: Service
metadata:
  name: frontend
  namespace: myecr
spec:
  ports:
  - port: 3000
    protocol: TCP
  type: ClusterIP
  selector:


[ec2-user@ip-172-31-64-194 Frontend]$

Output for frontend

[ec2-user@ip-172-31-64-194 Frontend]$ kubectl get deployments -n myecr
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
frontend   1/1     1            1           80m
[ec2-user@ip-172-31-64-194 Frontend]$
[ec2-user@ip-172-31-64-194 Frontend]$ kubectl get pods -n myecr
NAME                       READY   STATUS    RESTARTS       AGE
frontend-dd985fb65-6cwc8   1/1     Running   12 (20m ago)   51m
[ec2-user@ip-172-31-64-194 Frontend]$ kubectl get svc -n myecr
NAME       TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)        AGE
frontend   LoadBalancer   10.100.194.239   af3aa4a1a5831459a946ccd6353eb766-1722602330.us-east-1.elb.amazonaws.com   80:31391/TCP   81m
[ec2-user@ip-172-31-64-194 Frontend]$
[ec2-user@ip-172-31-64-194 Application-Code]$ cd backend/
[ec2-user@ip-172-31-64-194 backend]$
[ec2-user@ip-172-31-64-194 backend]$ ls
db.js  dockerfile  index.js  models  package-lock.json  package.json  routes


[ec2-user@ip-172-31-64-194 backend]$
[ec2-user@ip-172-31-64-194 backend]$ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 196061557748.dkr.ecr.us-east-1.amazonaws.com
WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[ec2-user@ip-172-31-64-194 backend]$ docker build -t myecr/three-tier-backend .
[+] Building 0.3s (10/10) FINISHED                                                                       docker:default
 => [internal] load build definition from dockerfile                                                               0.0s
 => => transferring dockerfile: 207B                                                                               0.0s
 => [internal] load metadata for docker.io/library/node:14                                                         0.1s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 508B                                                                                  0.0s
 => [1/5] FROM docker.io/library/node:14@sha256:a158d3b9b4e3fa813fa6c8c590b8f0a860e015ad4e59bbce5744d2f6fd8461aa   0.0s
 => [internal] load build context                                                                                  0.0s
 => => transferring context: 1.02kB                                                                                0.0s
 => CACHED [2/5] WORKDIR /usr/src/app                                                                              0.0s
 => CACHED [3/5] COPY package*.json ./                                                                             0.0s
 => CACHED [4/5] RUN npm install                                                                                   0.0s
 => CACHED [5/5] COPY . .                                                                                          0.0s
 => exporting to image                                                                                             0.0s
 => => exporting layers                                                                                            0.0s
 => => writing image sha256:643751b845e06e2ad6a36242d6331f90e51f263d36af9dbb8e09071fa0117705                       0.0s
 => => naming to docker.io/myecr/three-tier-backend                                                                0.0s
[ec2-user@ip-172-31-64-194 backend]$ docker tag myecr/three-tier-backend:latest 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend:latest
[ec2-user@ip-172-31-64-194 backend]$ docker push 196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend:latest
The push refers to repository [196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend]
69bdc0fbd5a0: Layer already exists
e99fe9a35ee3: Layer already exists
f9b76069cd8d: Layer already exists
708f3835185d: Layer already exists
0d5f5a015e5d: Layer already exists
3c777d951de2: Layer already exists
f8a91dd5fc84: Layer already exists
cb81227abde5: Layer already exists
e01a454893a9: Layer already exists
c45660adde37: Layer already exists
fe0fb3ab4a0f: Layer already exists
f1186e5061f2: Layer already exists
b2dba7477754: Layer already exists
latest: digest: sha256:1ab2a795d658264ca9d731c370ba04c0ebb8282f39849359006a7874a3c7aba3 size: 3049
[ec2-user@ip-172-31-64-194 backend]$
[ec2-user@ip-172-31-64-194 backend]$ sudo docker images
REPOSITORY                                                               TAG       IMAGE ID       CREATED          SIZE
196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-frontend   latest    7cdee69c1c10   20 minutes ago   1.12GB
myecr/three-tier-frontend                                                latest    7cdee69c1c10   20 minutes ago   1.12GB
196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend    latest    643751b845e0   2 hours ago      924MB
myecr/three-tier-backend                                                 latest    643751b845e0   2 hours ago      924MB
preranakarande/flaskapp                                                  latest    6dcc8ae81c75   16 hours ago     495MB
mysql                                                                    latest    f6b0ca07d79d   3 weeks ago      934MB
[ec2-user@ip-172-31-64-194 backend]$
]$ ls
Backend  Database  Frontend  ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ cd Backend/
[ec2-user@ip-172-31-64-194 Backend]$
[ec2-user@ip-172-31-64-194 Backend]$ ls
deployment.yaml  service.yaml
[ec2-user@ip-172-31-64-194 Backend]$ sudo nano deployment.yaml
[ec2-user@ip-172-31-64-194 Backend]$ cd ..
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ cd ..
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$
$ sudo docker images
REPOSITORY                                                               TAG       IMAGE ID       CREATED          SIZE
196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-frontend   latest    7cdee69c1c10   26 minutes ago   1.12GB
myecr/three-tier-frontend                                                latest    7cdee69c1c10   26 minutes ago   1.12GB
196061557748.dkr.ecr.us-east-1.amazonaws.com/myecr/three-tier-backend    latest    643751b845e0   2 hours ago      924MB
myecr/three-tier-backend                                                 latest    643751b845e0   2 hours ago      924MB
preranakarande/flaskapp                                                  latest    6dcc8ae81c75   16 hours ago     495MB
mysql                                                                    latest    f6b0ca07d79d   3 weeks ago      934MB
[ec2-user@ip-172-31-64-194 backend]$
$ kubectl get nodes
NAME                            STATUS   ROLES    AGE    VERSION
ip-192-168-14-88.ec2.internal   Ready    <none>   110m   v1.32.9-eks-c39b1d0
ip-192-168-50-37.ec2.internal   Ready    <none>   110m   v1.32.9-eks-c39b1d0
[ec2-user@ip-172-31-64-194 ~]$ kubectl get pods
No resources found in default namespace.
[ec2-user@ip-172-31-64-194 ~]$ kubectl get pods -n myecr
NAME                       READY   STATUS    RESTARTS       AGE
frontend-dd985fb65-6cwc8   1/1     Running   12 (35m ago)   67m
[ec2-user@ip-172-31-64-194 ~]$ ls
TWSThreeTierAppChallenge  aws  awscliv2.zip  two-tier-flask-app
[ec2-user@ip-172-31-64-194 ~]$ cd TWSThreeTierAppChallenge/
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$ ls
Application-Code  Jenkins-Pipeline-Code  Jenkins-Server-TF  Kubernetes-Manifests-file  README.md  assets
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$ cd Application-Code/
[ec2-user@ip-172-31-64-194 Application-Code]$ ls
backend  frontend
[ec2-user@ip-172-31-64-194 Application-Code]$ cd ..
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$ cd Kubernetes-Manifests-file/
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ ls
Backend  Database  Frontend  ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ cd Database/
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ ls
Backend  Database  Frontend  ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ cd Database/
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ ls
deployment.yaml  pv.yaml  pvc.yaml  secrets.yaml  service.yaml
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ sudo cat secrets.yaml
apiVersion: v1
kind: Secret
metadata:
  namespace: three-tier
  name: mongo-sec
type: Opaque
data:
  password: cGFzc3dvcmQxMjM=   #Three-Tier-Project
  username: YWRtaW4= #admin[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ echo 'prerana' | base64
cHJlcmFuYQo=
[ec2-user@ip-172-31-64-194 Database]$ echo 'password123' | base64
cGFzc3dvcmQxMjMK
[ec2-user@ip-172-31-64-194 Database]$ ls



[ec2-user@ip-172-31-64-194 Database]$ sudo nano deployment.yaml
[ec2-user@ip-172-31-64-194 Database]$ sudo nano secrets.yaml
]$ cd Database/
[ec2-user@ip-172-31-64-194 Database]$ ls
deployment.yaml  pv.yaml  pvc.yaml  secrets.yaml  service.yaml
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ kubectl apply -f deployment.yaml -n myecr
deployment.apps/mongodb created
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ kubectl apply -f service.yaml -n myecr
service/mongodb-svc created
[ec2-user@ip-172-31-64-194 Database]$ kubectl get deployment -n myecr
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
frontend   1/1     1            1           118m
mongodb    0/1     1            0           64s
[ec2-user@ip-172-31-64-194 Database]$

[ec2-user@ip-172-31-64-194 Database]$ kubectl apply -f deployment.yaml -n myecr
deployment.apps/mongodb created
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ kubectl apply -f service.yaml -n myecr
service/mongodb-svc created
[ec2-user@ip-172-31-64-194 Database]$ kubectl get deployment -n myecr
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
frontend   1/1     1            1           118m
mongodb    0/1     1            0           64s
$ kubectl apply -f pv.yaml -n myecr
persistentvolume/mongo-pv created
[ec2-user@ip-172-31-64-194 Database]$ kubectl apply -f pvc.yaml -n myecr
persistentvolumeclaim/mongo-volume-claim created
[ec2-user@ip-172-31-64-194 Database]$ kubectl get deployment -n myecr
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
frontend   1/1     1            1           133m
mongodb    1/1     1            1           16m
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Database]$ kubectl get svc -n myecr
NAME          TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)        AGE
frontend      LoadBalancer   10.100.194.239   af3aa4a1a5831459a946ccd6353eb766-1722602330.us-east-1.elb.amazonaws.com   80:31391/TCP   133m
mongodb-svc   ClusterIP      10.100.134.16    <none>                                                                    27017/TCP      16m
[ec2-user@ip-172-31-64-194 Database]$
[ec2-user@ip-172-31-64-194 Backend]$ sudo nano service.yaml
[ec2-user@ip-172-31-64-194 Backend]$ kubectl apply -f deployment.yaml -n myecr
deployment.apps/api created
[ec2-user@ip-172-31-64-194 Backend]$ kubectl apply -f service.yaml -n myecr
service/api created
[ec2-user@ip-172-31-64-194 Backend]$ kubectl apply -f deployment -n myecr
error: the path "deployment" does not exist
[ec2-user@ip-172-31-64-194 Backend]$ kubectl get deployment -n myecr
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
api        2/2     2            2           46s
frontend   1/1     1            1           140m
mongodb    1/1     1            1           23m
[ec2-user@ip-172-31-64-194 Backend]$

install helm for creating ALB

[ec2-user@ip-172-31-64-194 ~]$ sudo yum install Helm
Last metadata expiration check: 18:27:47 ago on Sat Nov 15 16:35:02 2025.

No match for argument: Helm
Error: Unable to find a match: Helm
[ec2-user@ip-172-31-64-194 ~]$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11929  100 11929    0     0   375k      0 --:--:-- --:--:-- --:--:--  388k
Downloading https://get.helm.sh/helm-v3.19.2-linux-amd64.tar.gz
Verifying checksum... Done.
Preparing to install helm into /usr/local/bin
helm installed into /usr/local/bin/helm
[ec2-user@ip-172-31-64-194 ~]$
[ec2-user@ip-172-31-64-194 ~]$ helm version
version.BuildInfo{Version:"v3.19.2", GitCommit:"8766e718a0119851f10ddbe4577593a45fadf544", GitTreeState:"clean", GoVersion:"go1.24.9"}
[ec2-user@ip-172-31-64-194 ~]$$ curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/install/iam_policy.json
aws iam create-policy --policy-name AWSLoadBalancerControllerIAMPolicy --policy-document file://iam_policy.json
eksctl utils associate-iam-oidc-provider --region=us-east-1 --cluster=mycluster --approve
eksctl create iamserviceaccount --cluster=mycluster --namespace=kube-system --name=aws-load-balancer-controller --role-name AmazonEKSLoadBalancerControllerRole --attach-policy-arn=arn:aws:iam::196061557748:policy/AWSLoadBalancerControllerIAMPolicy --approve --region=us-east-1
$ helm repo add eks https://aws.github.io/eks-charts
"eks" has been added to your repositories
[ec2-user@ip-172-31-64-194 ~]$ helm repo update
[ec2-user@ip-172-31-64-194 ~]$ helm repo list

$ helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=mycluster --set s
erviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller

[ec2-user@ip-172-31-64-194 ~]$ kubectl get deployment -n kube-system aws-load-balancer-controller
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
aws-load-balancer-controller   2/2     2            2           16s
]$ ls
TWSThreeTierAppChallenge  aws  awscliv2.zip  iam_policy.json  two-tier-flask-app
[ec2-user@ip-172-31-64-194 ~]$ cd TW
-bash: cd: TW: No such file or directory
[ec2-user@ip-172-31-64-194 ~]$ cd TWSThreeTierAppChallenge/
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$ ls
Application-Code  Jenkins-Pipeline-Code  Jenkins-Server-TF  Kubernetes-Manifests-file  README.md  assets
[ec2-user@ip-172-31-64-194 TWSThreeTierAppChallenge]$ cd Kubernetes-Manifests-file/
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ ls
Backend  Database  Frontend  ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ sudo nano ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ kubectl apply -f ingress.yaml -n myecr
ingress.networking.k8s.io/mainlb created
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$
[ec2-user@ip-172-31-64-194 backend]$ kubectl get svc -n myecr
NAME          TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)        AGE
api           ClusterIP      10.100.167.202   <none>                                                                    8080/TCP       36m
frontend      LoadBalancer   10.100.194.239   af3aa4a1a5831459a946ccd6353eb766-1722602330.us-east-1.elb.amazonaws.com   80:31391/TCP   177m
mongodb-svc   ClusterIP      10.100.134.16    <none>                                                                    27017/TCP      60m
[ec2-user@ip-172-31-64-194 backend]$
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ kubectl apply -f ingress.yaml -n myecr
ingress.networking.k8s.io/mainlb configured
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ kubectl get pods -n myecr
NAME                       READY   STATUS    RESTARTS        AGE
api-6fbf679f4d-86q55       1/1     Running   0               40m
api-6fbf679f4d-ccsr2       1/1     Running   0               40m
frontend-dd985fb65-6cwc8   1/1     Running   12 (119m ago)   151m
mongodb-799f9bc559-bpqxc   1/1     Running   0               63m
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$  kubectl get ing -n myecr
NAME     CLASS   HOSTS                         ADDRESS   PORTS   AGE
mainlb   alb     backend.myapplication.study             80      14m
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ sudo nano AWSLoadBalancerControllerIAMPolicy.json
]$ aws iam create-policy-version \
  --policy-arn arn:aws:iam::196061557748:policy/AWSLoadBalancerControllerIAMPolicy \
  --policy-document file://AWSLoadBalancerControllerIAMPolicy.json \
  --set-as-default
{
    "PolicyVersion": {
        "VersionId": "v2",
        "IsDefaultVersion": true,
        "CreateDate": "2025-11-17T07:21:52+00:00"
    }
}

$ kubectl delete pod -n kube-system -l app.kubernetes.io/name=aws-load-balancer-controller
pod "aws-load-balancer-controller-7f44cbfb8-kcs7c" deleted from kube-system namespace
pod "aws-load-balancer-controller-7f44cbfb8-w49vz" deleted from kube-system namespace
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ kubectl get ingress mainlb -n myecr --watch
NAME     CLASS   HOSTS                         ADDRESS   PORTS   AGE
mainlb   alb     backend.myapplication.study             80      17h
mainlb   alb     backend.myapplication.study   k8s-myecr-mainlb-e3049081a3-240948518.us-east-1.elb.amazonaws.com   80      17h
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$ ls
AWSLoadBalancerControllerIAMPolicy.json  Backend  Database  Frontend  ingress.yaml
[ec2-user@ip-172-31-64-194 Kubernetes-Manifests-file]$
[ec2-user@ip-172-31-64-194 ~]$ eksctl delete cluster --name mycluster --region us-east-1