Bash Script : How to Create a k8s Cluster on AWS EKS using eksctl.
Israel .O. Ayanda
Posted on February 19, 2023
This article is a simple shell script tutorial about automating your kubernetes cluster setup on Amazon Elastic Kubernetes Service (EKS).
AWS EKS: Amazon Elastic Kubernetes Service (EKS) is a managed service and certified Kubernetes conformant to run Kubernetes on AWS and on-premises.
Eksctl: is a simple CLI tool for creating and managing clusters on EKS - Amazon's managed Kubernetes service for EC2.
Prerequisite
- Kubectl is installed
- eksctl is installed
- AWS CLI version 2 is installed
- AWS account
- IAM role with EKS permission.
- Have a Key Pair on AWS
Create an access key for your IAM user
- Login into your AWS account
- Go to IAM dashboard
- Select Users and click on your IAM user name
- Click on Security Credential Tab
- Scroll down to Access keys and Click on Create access key
- Select Command Line Interface (CLI), agree with recommendation click Next and follow the prompts.
Configure AWS CLI
# In your CLI, configure AWS cli with your access keys
aws configure
Create a file with permission
# Create file
vi scriptfile.sh
# Make execute permission
chmod +x scriptfile.sh
Copy and paste the code snippet below. Change the variables to your preferred names and values. Also change the values under the Creation of EKS cluster to preferred cluster requirements.
# Variables
CLUSTER_NAME=my-cluster
REGION=us-east-1
NODE_NAME=Linux-nodes
KEY_NAME=instance
# Set AWS credentials before script execution
aws sts get-caller-identity >> /dev/null
if [ $? -eq 0 ]
then
echo "Credentials tested, proceeding with the cluster creation."
# Creation of EKS cluster
eksctl create cluster \
--name $CLUSTER_NAME \
--version 1.22 \
--region $REGION \
--nodegroup-name $NODE_NAME \
--nodes 2 \
--nodes-min 1 \
--nodes-max 4 \
--node-type t3.micro \
--node-volume-size 8 \
--ssh-access \
--ssh-public-key $KEY_NAME \
--managed
if [ $? -eq 0 ]
then
echo "Cluster Setup Completed with eksctl command."
else
echo "Cluster Setup Failed while running eksctl command."
fi
else
echo "Please run aws configure & set right credentials."
echo "Cluster setup failed."
fi
Make sure the key pair is in the same directory with the script or you specify.
aws sts get-caller-identity
- checks if the AWS identity is created correctly. if [ $? -eq 0 ]
- check if the last command, in this case aws sts get-caller-identity
succeeded without no error. If it equals 0, it should go ahead and create the cluster. After the cluster is created, print a created message else inform us the AWS credential was not configured correctly.
Cluster Nodes on EC2 dashboard
Clean Up
# Delete EKS Cluster
eksctl delete cluster my-cluster
As always, I look forward to getting your thoughts on this article. Please feel free to leave a comment!
Posted on February 19, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.