Pre-requisites:
- Ubuntu Server
- Free tier AWS account
Note: EKS service not come in the free tier service, so make sure the delete all the resources when your work is done
Step 1: Install Below Dependancies:
1. Install AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo apt install unzip
unzip awscliv2.zip
sudo ./aws/install
aws configure
2. Install kubectl:
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin
kubectl version --short --client
3. Install Eksctl:
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
eksctl version
Step 2: Create EKS Cluster:
eksctl create cluster --name=eks-cluster \
--region=ap-south-1 \
--zones=ap-south-1a,ap-south-1b \
--without-nodegroup
Step 3: Associate IAM OIDC Provider:
eksctl utils associate-iam-oidc-provider \
--region ap-south-1 \
--cluster eks-cluster \
--approve
Step 4: Create EC2 Key-pair
- Create the new ec2 key pair: eks-db-key
This keypair we will use it when creating the EKS NodeGroup. This key will help you to login the AWS EKS worker nodes
Step 5: Create EKS Worker Nodes:
Create EKS Worker Nodes in the public Group:
# Create Public Node Group
eksctl create nodegroup --cluster=eks-cluster \
--region=ap-south-1 \
--name=eks-cluster-ng-public1 \
--node-type=t3.medium \
--nodes=2 \
--nodes-min=2 \
--nodes-max=4 \
--node-volume-size=20 \
--ssh-access \
--ssh-public-key=eks-db-key \
--managed \
--asg-access \
--external-dns-access \
--full-ecr-access \
--appmesh-access \
--alb-ingress-access
Create EKS Cluster in Private NodeGroup:
# Create EKS NodeGroup in VPC Private Subnets (Section-07-01)
eksctl create nodegroup --cluster=eks-cluster \
--region=ap-south-1 \
--name=eks-cluster-ng-private1 \
--node-type=t3.medium \
--nodes-min=2 \
--nodes-max=4 \
--node-volume-size=20 \
--ssh-access \
--ssh-public-key=eks-db-key \
--managed \
--asg-access \
--external-dns-access \
--full-ecr-access \
--appmesh-access \
--alb-ingress-access \
--node-private-networking
Step 06: Delete AWS EKS Cluster:
- Delete the Nodegroup
eksctl get clusters
eksctl get nodegroup --cluster=eks-cluster
eksctl delete nodegroup --cluster=eks-cluster --name=eks-cluster-ng-public1
2. Delete Cluster:
eksctl delete cluster eks-cluster