Custom AMI Support in Cluster and Node Group Creation
The Custom AMI Support feature enables users to create Kubernetes clusters and node groups using custom Amazon Machine Images (AMIs). This functionality provides the flexibility to deploy clusters with pre-configured environments, software, and security settings tailored to specific organizational requirements.

Feature Overview
With Custom AMI Support, you can:
- Use custom AMIs during EKS cluster and node group creation.
- Pre-configure nodes with software, configurations, or patches before deployment.
- Simplify deployments using images that meet security and compliance standards.
- Choose from any AMIs you have created and own within your AWS account.
Important: Karpenter V1 does not support Ubuntu systems for automatic node scaling. When using Karpenter, select other supported operating systems for optimal functionality.
Data Flow and Process
1️⃣ Custom AMI Creation
- Create an EC2 Instance
- Configure your instance with the desired software, security patches, and configurations.
- Install Kubernetes Components
- Ensure the
kubelet
and AWS EKS agent are installed and configured.
- Ensure the
- Create the AMI
- Create an AMI snapshot of the configured EC2 instance.
- Store the AMI
- The custom AMI is stored in your AWS region and is available for EKS deployments.
2️⃣ Node Group Creation with Custom AMI
- When creating a new EKS Node Group, specify the Custom AMI ID.
- The AMI will provision all worker nodes in the node group.
- Compatibility Check: The AMI must match the Kubernetes version of your EKS cluster and include all necessary components.
3️⃣ Cluster Creation with Custom AMI
- During cluster setup, select your custom AMI from the dropdown list.
- All nodes launched in the cluster will use the specified AMI, ensuring consistent configuration and environment setup.
4️⃣ Compatibility Check
The system automatically verifies:
- AMI compatibility with the selected Kubernetes version.
- Presence of the required
kubelet
and AWS EKS agent components.
If the AMI is incompatible, creation will fail, prompting you to update your image.
5️⃣ Configuration Management
- You can include additional components (e.g., monitoring agents, security scripts) in the AMI.
- After nodes launch, tools like Ansible, Chef, or Puppet can further customize configurations.
Customization Details
Creating a Custom AMI
- Create an EC2 Instance with all desired configurations.
- Install Kubernetes Components:
kubelet
- AWS EKS agent
- Create the AMI snapshot.
- Store the AMI for later use during cluster or node group creation.
Using Custom AMI in EKS
- During Node Group Creation, specify the AMI ID in the configuration.
- The system validates compatibility.
- Use regularly updated AMIs to maintain security and stability.
Instance Types
Custom AMIs can be paired with any supported EC2 instance type:
- Compute-optimized
- Memory-optimized
- General-purpose
Note: You can choose between on-demand or spot instances for cost optimization.
API Integration Example
You can also create node groups with a custom AMI via AWS CLI:
aws eks create-nodegroup \
--cluster-name my-cluster \
--nodegroup-name my-nodegroup \
--ami-type CUSTOM \
--ami-id <ami-id> \
--subnets subnet-12345 subnet-67890 \
--instance-types t3.medium \
--scaling-config minSize=2,maxSize=5,desiredSize=3