EKS Cluster Creation Lab Guide
Difficulty: Intermediate Estimated Time: 60 minutes Last Updated: February 11, 2026
Learning Objectives
- Create an EKS cluster using eksctl
- Access the cluster with kubectl and check its status
- Deploy a sample application
- Safely delete the cluster
Prerequisites
- [ ] AWS account and AWS CLI configured (verify with
aws sts get-caller-identity) - [ ] eksctl installed (verify with
eksctl version) - [ ] kubectl installed
- [ ] Completed EKS Cluster Creation learning
Cost Warning: Operating an EKS cluster incurs AWS costs. Be sure to delete the cluster after completing the lab.
Exercise 1: eksctl Configuration Verification
Steps
Step 1.1: Check tool versions
bash
aws --version
eksctl version
kubectl version --clientStep 1.2: Verify AWS credentials
bash
aws sts get-caller-identityExpected output:
json
{
"UserId": "AIDACKCEVSQ6C2EXAMPLE",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/your-user"
}Step 1.3: Set default region
bash
export AWS_DEFAULT_REGION=ap-northeast-2
echo "Region: $AWS_DEFAULT_REGION"Need a hint?
- Use
aws configure listto check current configuration - eksctl uses CloudFormation internally
- The IAM user needs EKS, EC2, CloudFormation, and IAM permissions
Exercise 2: EKS Cluster Creation
Steps
Step 2.1: Write cluster configuration file
bash
cat > /tmp/eks-cluster.yaml << 'EOF'
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: lab-cluster
region: ap-northeast-2
version: "1.31"
managedNodeGroups:
- name: workers
instanceType: t3.medium
desiredCapacity: 2
minSize: 1
maxSize: 3
volumeSize: 20
EOFStep 2.2: Create cluster
bash
eksctl create cluster -f /tmp/eks-cluster.yamlCluster creation takes 15-20 minutes.
Step 2.3: Verify kubeconfig
bash
kubectl config current-context
kubectl cluster-infoVerification
bash
kubectl get nodes
# Should display 2 Ready nodesExercise 3: Cluster Exploration
Steps
Step 3.1: Check node information
bash
kubectl get nodes -o wide
kubectl describe node $(kubectl get nodes -o jsonpath='{.items[0].metadata.name}')Step 3.2: Check system components
bash
kubectl get pods -n kube-system
kubectl get svc -n kube-systemStep 3.3: Check resource usage
bash
kubectl top nodes 2>/dev/null || echo "Metrics Server is not installed"Exercise 4: Sample App Deployment
Steps
Step 4.1: Deploy Nginx
bash
kubectl create deployment nginx --image=nginx:1.25 --replicas=2
kubectl expose deployment nginx --port=80 --type=LoadBalancer
kubectl wait --for=condition=available deployment/nginx --timeout=120sStep 4.2: Verify access
bash
# Check LoadBalancer External IP (ELB creation takes a few minutes)
kubectl get svc nginx -w
# Press Ctrl+C once EXTERNAL-IP is assigned
# Test access
ELB_URL=$(kubectl get svc nginx -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
echo "ELB URL: $ELB_URL"
curl -s "$ELB_URL" | head -5Step 4.3: Scaling test
bash
kubectl scale deployment nginx --replicas=4
kubectl get pods -l app=nginx -o wideNeed a hint?
- It may take a few minutes for the ELB URL to propagate through DNS
- Use
kubectl get svc -wto monitor EXTERNAL-IP assignment in real-time - You can also verify in AWS Console under EC2 > Load Balancers
Verification
bash
kubectl get deployment nginx -o jsonpath='{.status.readyReplicas}'
# Output: 4Cleanup
Important: Be sure to delete the cluster to prevent ongoing costs.
bash
# 1. Clean up application (so LoadBalancer deletes the ELB)
kubectl delete svc nginx
kubectl delete deployment nginx
# 2. Wait for ELB deletion (about 1 minute)
sleep 60
# 3. Delete cluster
eksctl delete cluster -f /tmp/eks-cluster.yaml --wait
# 4. Clean up configuration file
rm -f /tmp/eks-cluster.yamlTroubleshooting
Cluster creation fails
- Check IAM permissions (AdministratorAccess or EKS-related policies required)
- Check VPC/subnet limits (per-region default VPC count limits)
- Get details with
eksctl utils describe-stacks --region=ap-northeast-2 --cluster=lab-cluster
kubectl cannot connect to the cluster
Manually update kubeconfig:
bash
aws eks update-kubeconfig --name lab-cluster --region ap-northeast-2Next Steps
- EKS Cluster Creation Quiz
- Advanced topics: EKS Networking