Managed Node Groups Basics

Create Node Group

eksctl create nodegroup \
  --cluster my-cluster \
  --name standard-workers \
  --node-type t3.medium \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 4 \
  --managed

Node Group with Custom Settings

eksctl create nodegroup \
  --cluster my-cluster \
  --name custom-workers \
  --node-type t3.medium \
  --nodes 3 \
  --node-ami-family AmazonLinux2 \
  --override-instance-destroy-behavior terminate \
  --ebs-volume-size 50 \
  --ebs-volume-type gp3 \
  --asg-access \
  --external-dns-access \
  --full-ecr-access

Update Node Group

# Scale node group
eksctl scale nodegroup \
  --cluster my-cluster \
  --name standard-workers \
  --nodes 5
 
# Update node group
eksctl update nodegroup \
  --cluster my-cluster \
  --name standard-workers \
  --kubernetes-version 1.30
 
# Rotate node group (drains and replaces nodes)
eksctl rotate nodegroup \
  --cluster my-cluster \
  --name standard-workers

Delete Node Group

eksctl delete nodegroup \
  --cluster my-cluster \
  --name standard-workers

Node Group Configuration Options

Instance Types

FamilyUse Case
t3, m5, c5General purpose
m5n, c5nHigh network bandwidth
r5, r5nMemory optimized
p3, p4, g4GPU workloads
a1, m6g, c6g, r6gARM/Graviton

Launch Template Customization

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: my-cluster
  region: us-west-2
managedNodeGroups:
  - name: custom-ng
    launchTemplate:
      id: lt-1234567890abcdef0
      version: "3"

References