AWS EKS PROJECT1
SETUP CLOUD
NOTE – COST WILL BE INCURRED FOR AWS
EKS SETUP SO MAKE SURE YOU ARE DOING
THE PROJECT ON YOUR ON INTEREST AND
IF YOU ARE NOT OK THEN PROJECT2 IS IN
THE SAME DOCUMENT WITH LOCAL SETUP
Step 1 – LOGIN to the AWS Console
https://aws.amazon.com/console/
Step 2 – Select EC2 and create T2.MEDIUM INSTANCE
STEP3 – Select AMAZON LINUX 2 AMI 30 GB
Step 4 – Install all tools Pre-requisites
- Install Git
yum install git -y
- Install Java
yum install java -y
- Install Maven
cd /opt/
wget http://mirrors.estointernet.in/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xvzf apache-maven-3.6.3-bin.tar.gz
vi /etc/profile.d/maven.sh
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
- Install Jenkins
cd /opt/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum install jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins
- Install Docker
yum install docker -y
usermod -aG docker jenkins
systemctl start docker
systemctl enable docker
- Install Python
yum install python3 -y
- Install Ansible
amazon-linux-extras install ansible2 -y
Step 5 – INSTALL SETUP FOR EKS
- Install kubectl
curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.14.6/2019-08-22/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin
cp ./kubectl $HOME/bin/kubectl
export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
source $HOME/.bashrc
kubectl version --short –client
OR
curl -O
https://s3.us-west-2.amazonaws.com/amazon-eks/1.24.11/2023-03-17/bin/linux/amd64/kubec
tl.sha256
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
kubectl version --short –client
- 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/bin
eksctl version
Step6 - ATTACH THE IAM ROLE
Go to IAM -> CLICK CREATE NEW IAM ROLE -> SELECT EC2
-> CLICK ON ADMINISTRATOR ACCESS -> CREATE ROLE
STEP 7 –
Go toEC2 instance you have created -> Click on ACTIONS
-> SECURITY -> MODIFY IAM ROLE -> ATTACH YOUR
NEW ROLE
Step 8 -
- MASTER Cluster creation [ Change the master cluster name eksdemo as per your wish and select
region as us-west-1]
eksctl create cluster --name=eksdemo \
--region=us-west-1 \
--zones=us-west-1b,us-west-1c \
--without-nodegroup
- Add Iam-Oidc-Providers
eksctl utils associate-iam-oidc-provider \
--region us-west-1 \
--cluster eksdemo \
--approve
- WORKER NODE Create node-group [ Change the PEM key ssh-public-key to your key]
eksctl create nodegroup --cluster=eksdemo \
--region=us-west-1 \
--name=eksdemo-ng-public \
--node-type=t2.micro \
--nodes=2 \
--nodes-min=1 \
--nodes-max=2 \
--ssh-access \
--ssh-public-key=key-test \
--node-volume-size=10 \
--managed \
--asg-access \
--external-dns-access \
--full-ecr-access \
--appmesh-access \
--alb-ingress-access
STEP 9 –
Docker login – Hit the command
docker login
git clone https://github.com/praveen1994dec/spring-cloud-kubernetes.git
INSTALL ALL PREREQUISITE TOOLS -> CREATE EKS SETUP IN AWS -> 1 MASTER
AND 2 WORKER NODES -> CLONE THE ABOVE REPO IN MASTER SERVER ->
RUN THE BELOW COMMANDS
- cd spring-cloud-kubernetes/kubernetes-configmap-reload
- mvn clean install -DskipTests
- docker build -t praveensingam1994/kubernetes-configmap-reload .
- docker push praveensingam1994/kubernetes-configmap-reload:latest [ Push to your docker hub ]
- kubectl create -f kubernetes-configmap.yml
-
- kubectl get pods [ To get the pods ]
-
- kubectl get svc [ To get the service ]
STEP 10 – DELETE NODE AND THEN THE CLUSTER
eksctl delete nodegroup --cluster=eksdemo --region=us-west-1
--name=eksdemo-ng-public
eksctl delete cluster --name=eksdemo --region=us-west-1