Create AWS EKS Cluster
Overview
This guide provides instructions for creating an AWS EKS (Elastic Kubernetes Service) cluster that will host your Observo Site deployment. The cluster is created using eksctl, a simple command-line utility for creating and managing EKS clusters.
Prerequisites
Software Requirements
AWS CLI installed and configured with appropriate credentials
eksctlinstalled on your local machineInstall eksctl:
# macOS brew tap weaveworks/tap brew install weaveworks/tap/eksctl # Linux 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/binkubectlinstalled (required for managing the cluster)AWS IAM permissions to create EKS clusters and related resources
AWS Permissions Required
Your AWS user/role needs permissions for:
Creating EKS clusters
Creating VPCs and networking components
Creating EC2 instances (for node groups)
Creating IAM roles and policies
CloudWatch logging permissions
Cluster Configuration
Note: Review infrastructure requirements and sizing before creating the cluster — see the Site Sizing Calculation for VM and node sizing: Sizing
Sample EKS Cluster Configuration
Save the following configuration as cluster-create.yaml:
Configuration Breakdown
Cluster Settings
name: Your cluster name (can be customized)region: AWS region where the cluster will be deployedversion: Kubernetes version (check EKS supported versions)
VPC Configuration
nat.gateway: Single: Creates a NAT gateway for outbound internet accessclusterEndpoints.publicAccess: true: Allows access from internetprivateAccess: false: Disables private-only endpoint
IAM Configuration
withOIDC: true: Enables OpenID Connect for service account integration
Addons
aws-ebs-csi-driver: Enables EBS volume support (required for storage)
Networking
serviceIPv4CIDR: IP range for Kubernetes servicesipFamily: ipv4: Use IPv4 addressing
Node Group Configuration
instanceType: EC2 instance type (t4g.xlarge uses ARM architecture)desiredCapacity: Target number of nodesminSize/maxSize: Autoscaling limitsvolumeSize: EBS volume size per nodevolumeType: EBS volume type (gp3 is recommended)
Availability Zones
Specify which AZs to use for multi-AZ deployment
Customization Options
You can modify the configuration based on your requirements:
Change Region:
Change Instance Type:
Adjust Cluster Sizing:
Use Specific Availability Zones:
Create the Cluster
1. Create the Cluster Configuration File
2. Check if Cluster Already Exists
Before creating the cluster, verify that a cluster with the same name doesn't already exist:
Or check for a specific cluster name:
If the cluster already exists, you will receive an error when trying to create it. You can either:
Choose a different cluster name in the YAML configuration
Delete the existing cluster first (see Cleanup section)
3. Validate Configuration
This will show what will be created without actually creating resources.
4. Create the Cluster
This command will:
Create the EKS cluster
Set up VPC, subnets, and NAT gateway
Configure node groups
Install addons (EBS CSI driver)
Set up kubectl credentials
Expected Output:
This process typically takes 15-20 minutes.
5. Verify Cluster Creation
6. Configure kubectl (if needed)
7. Ensure a Default StorageClass
Kubernetes should have a default StorageClass so PersistentVolumeClaims (PVCs) bind automatically.
Check existing storage classes and whether one is marked as default:
Example output when there is no default:
If no class is marked as default, set one (for example
gp2):
Verify it is now the default:
Ensure your cluster has a default StorageClass before proceeding with workloads that use PVCs.
Next Steps
Once your EKS cluster is created and verified:
Configure kubectl access
Review node capacity and adjust if needed
Continue with Helm-Based Deployment → to install Observo Site
Verify Load Balancer support for data pipeline requirements
Troubleshooting
Cluster Creation Fails
If cluster creation fails:
Cleanup
To delete the cluster (when no longer needed):
Or by name:
This will delete all associated resources including VPC, NAT gateway, and node groups.
Additional Resources
Last updated
Was this helpful?

