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

Example · bash
# 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 demo

When 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.

Example · bash
eksctl create nodegroup \
  --cluster prod \
  --name app-workers \
  --node-type m5.large \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 10 \
  --managed

Managed node group in ClusterConfig

Declarative managed node group definition in eksctl ClusterConfig, supporting labels and private subnet placement.

Example · yaml
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: true

Update 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.

Example · bash
eksctl upgrade nodegroup \
  --cluster prod \
  --name app-workers \
  --kubernetes-version 1.30

Discussion

  • Be the first to comment on this lesson.