Overview
This guide walks you through creating an Amazon EKS cluster optimized for running Smallest Self-Host with GPU acceleration.Prerequisites
1
AWS CLI
Install and configure AWS CLI:
2
eksctl
Install eksctl (EKS cluster management tool):Verify:
3
kubectl
Install kubectl:
4
IAM Permissions
Ensure your AWS user/role has permissions to:
- Create EKS clusters
- Manage EC2 instances
- Create IAM roles
- Manage VPC resources
Cluster Configuration
Option 1: Quick Start with eksctl
Create a cluster with GPU nodes using a single command:This creates a cluster with separate CPU and GPU node groups, allowing for cost-effective scaling.
Option 2: Using Cluster Config File
Create a cluster configuration file for more control:cluster-config.yaml
GPU Instance Types
Choose the right GPU instance type for your workload:Recommendation: Start with
g5.xlarge for development and testing. Scale to g5.2xlarge or higher for production.Verify Cluster
Check Cluster Status
Verify Node Groups
Configure kubectl
Verify GPU Nodes
Check GPU availability:nvidia.com/gpu in the output:
Install NVIDIA Device Plugin
The NVIDIA device plugin enables GPU scheduling in Kubernetes.Using Helm (Recommended)
The Smallest Self-Host chart includes the NVIDIA GPU Operator. Enable it in your values:values.yaml
Manual Installation
If installing separately:Install EBS CSI Driver
Required for persistent volumes:Using eksctl
Using AWS Console
- Navigate to EKS → Clusters → smallest-cluster → Add-ons
- Click “Add new”
- Select “Amazon EBS CSI Driver”
- Click “Add”
Verify EBS CSI Driver
Install EFS CSI Driver (Optional)
Recommended for shared model storage across pods.Create IAM Policy
Create IAM Service Account
YOUR_ACCOUNT_ID with your AWS account ID.
Install EFS CSI Driver
Enable Cluster Autoscaler
See the Cluster Autoscaler guide for detailed setup. Quick setup:Cost Optimization
Use Spot Instances for GPU Nodes
Reduce costs by up to 70% with Spot instances:cluster-config.yaml
Right-Size Node Groups
Start small and scale based on metrics:minSize: 0 to scale down to zero during off-hours.
Enable Cluster Autoscaler
Automatically adjust node count based on demand:values.yaml
Security Best Practices
Enable Private Endpoint
Enable Logging
Update Security Groups
Restrict inbound access to API server:Troubleshooting
GPU Nodes Not Ready
Check NVIDIA device plugin:Pods Stuck in Pending
Check node capacity:EBS Volumes Not Mounting
Verify EBS CSI driver:What’s Next?
IAM & IRSA
Configure IAM roles for service accounts
GPU Nodes
Advanced GPU node configuration and optimization
EFS Configuration
Set up shared file storage for models
Cluster Autoscaler
Enable automatic node scaling

