AWS EKS Node Groups
Learn how EKS managed node groups, self-managed nodes, and Fargate profiles handle pod capacity and cluster upgrades.
AWS EKS Node Groups define how compute capacity joins an EKS cluster and determine how much platform responsibility stays with your team. For DevOps teams, it matters because they help operators choose between convenience, deep customisation, and serverless pod execution. Instead of relying on one fragile manual configuration, you can design a repeatable service boundary that stays stable while the workload behind it changes.
Core ideas
The main ideas to understand are managed node groups reduce operational burden because AWS handles much of the lifecycle around EC2 worker nodes; self-managed nodes allow more customisation but also require more care around updates, AMIs, and autoscaling integration; Fargate profiles let some pods run without node management at all, which is useful for selected workloads or reduced ops overhead; and node groups still need clear settings for instance type, scaling boundaries, and upgrade sequencing. These details shape architecture decisions, but they also shape day-to-day operations. When a team chooses defaults without understanding how the service behaves under failure, scale, or security review, the platform often becomes harder to debug than the application itself.
| Capacity option | Strength | Trade-off |
|---|---|---|
| Managed node group | Simpler operations | Less low-level customisation |
| Self-managed nodes | Maximum control | More patching and upgrade work |
| Fargate profile | No node management | Not ideal for every workload pattern |
From an operations perspective, the goal is to pick the least operationally heavy capacity model that still supports the networking, storage, and daemon requirements of your workloads. The comparison below highlights the choices that usually matter first. It is often better to start with a simpler design and add sophistication only after metrics, incidents, or delivery requirements prove the change is necessary.
Practical commands
eksctl create nodegroup --cluster platform --name app-ng --node-type t3.large --nodes 2
aws eks describe-nodegroup --cluster-name platform --nodegroup-name app-ng
kubectl get nodes -L eks.amazonaws.com/capacityType
Practical CLI checks make the service easier to support in real environments. Use the commands below to inspect the current state and confirm that automation matches intent. Before you promote a change, verify daemonset requirements, storage needs, and upgrade order before moving a workload to a new node group model. A safe default is separate node groups by workload class so system components and application pods do not compete unpredictably. That discipline makes later troubleshooting, scaling, and security reviews far less painful.
Managed versus self-managed
What is a main advantage of EKS managed node groups?
Fargate profiles
What do Fargate profiles provide in EKS?