Article

Mar 11, 2025

How to Set Up an Amazon EKS Cluster on AWS

Amazon Elastic Kubernetes Service (EKS) makes it easier to run Kubernetes on AWS without having to manage your own control plane. With EKS, you get a secure, scalable, and highly available Kubernetes environment, all integrated with AWS services. In this guide, we’ll walk through the essential steps for setting up your first EKS cluster.

orb
orb
orb

Why Use Amazon EKS?

  • Managed Control Plane – AWS runs and scales the Kubernetes control plane for you.

  • High Availability – Built-in fault tolerance across multiple Availability Zones.

  • Security & Compliance – Integrates with IAM, VPC, and security groups.

  • Ecosystem Integration – Works with EC2, Fargate, CloudWatch, and many AWS services.

🔹 Prerequisites

Before you start, make sure you have:

  • An AWS account with appropriate IAM permissions.

  • The AWS CLI installed and configured.

  • kubectl installed (for managing Kubernetes).

  • eksctl (the recommended CLI for creating EKS clusters).

🔹 Step 1 – Install eksctl

eksctl is a simple CLI tool to create and manage EKS clusters.

# On macOS
brew tap weaveworks/tap
brew install weaveworks/tap/eksctl

# On Linux
curl --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

🔹 Step 2 – Create an EKS Cluster

Run the following command to spin up a new cluster:

eksctl create cluster \
  --name demo-cluster \
  --region us-east-1 \
  --nodegroup-name standard-workers \
  --node-type t3.medium \
  --nodes 3 \
  --nodes-min 2 \
  --nodes-max 4 \
  --managed

This command will:

  • Create a control plane (managed by AWS).

  • Provision worker nodes in an Auto Scaling Group.

  • Configure networking (VPC, subnets, security groups).

🔹 Step 3 – Verify the Cluster

Once the cluster is up, confirm it’s working:

kubectl get nodes

You should see your worker nodes listed as Ready.

🔹 Step 4 – Deploy a Test Application

To make sure everything works, deploy a sample app:

kubectl create deployment hello-world \
  --image=nginx \
  --replicas=2

kubectl expose deployment hello-world \
  --type=LoadBalancer \
  --port=80

Then run:

kubectl get svc

Copy the EXTERNAL-IP and open it in your browser — you should see the Nginx welcome page.

🔹 Step 5 – Clean Up (Optional)

When you’re done testing, delete the cluster to avoid charges:

eksctl delete cluster --name demo-cluster --region us-east-1

🚀 Final Thoughts

Amazon EKS simplifies Kubernetes on AWS by taking away the heavy lifting of managing control planes, upgrades, and scaling. With just a few commands using eksctl, you can spin up a production-ready cluster, integrate with AWS services, and run workloads securely.

Whether you’re deploying microservices, managing hybrid workloads, or building mission-critical apps, EKS gives you the power of Kubernetes with AWS reliability.