Managed Node Groups
Managed node groups let AWS provision, label, and gracefully update the EC2 worker nodes for you.
A managed node group is a set of EC2 instances that EKS provisions and lifecycle-manages as a unit. AWS creates the underlying Auto Scaling group, keeps nodes healthy, and drains them safely during updates.
What managed gives you
- One command to create, scale, or delete a group of nodes.
- Automatic, graceful rolling updates when you change the AMI or Kubernetes version.
- Node health monitoring and automatic replacement.
Managed node groups are the recommended default for running EC2-based workloads on EKS.
Example
# Create a managed node group in an existing cluster
eksctl create nodegroup \
--cluster demo \
--name ng-app \
--node-type t3.large \
--nodes 3 --nodes-min 2 --nodes-max 6 \
--managed
# List node groups
eksctl get nodegroup --cluster demoWhen to use it
- A platform team uses managed node groups to roll out a Kubernetes patch with zero manual drain commands, relying on AWS's safe update orchestration.
- An SRE team configures managed node group health checks so unhealthy nodes are automatically replaced without PagerDuty alerts.
- A DevOps engineer adds labels and taints to a managed node group to dedicate it to memory-intensive ML inference workloads.
More examples
Create a managed node group
Creates an AWS-managed node group where EKS handles node provisioning, labeling, and graceful updates.
eksctl create nodegroup \
--cluster prod \
--name app-workers \
--node-type m5.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 10 \
--managedManaged node group in ClusterConfig
Declarative managed node group definition in eksctl ClusterConfig, supporting labels and private subnet placement.
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: prod
region: us-east-1
managedNodeGroups:
- name: app-workers
instanceType: m5.large
minSize: 2
maxSize: 10
labels: {role: app}
tags: {Environment: prod}
privateNetworking: trueUpdate node group to new AMI
Triggers AWS to roll the node group to the latest EKS-optimized AMI for the target Kubernetes version, replacing nodes with zero downtime.
eksctl upgrade nodegroup \
--cluster prod \
--name app-workers \
--kubernetes-version 1.30
Discussion