- Managed Node Groups
- Fargate Profiles
- Karpenter Provisioner
1. Cluster Setup: Managed Node Group & Fargate Profiles
We’ve created:- A managed Node Group named main (desired capacity: 2)
- Two Fargate profiles: default and fargate (selects
namespace: fargate)


2. Verifying Webhooks & Node Status
First, confirm the Fargate mutation webhook is installed:eksdemo or your preferred CLI:
We currently have no Cluster Autoscaler installed, so we’ll adjust the Node Group sizes manually below.
3. Manual Scaling of the Managed Node Group
To force-scale the main Node Group down to 1 node:4. Deploying Workloads to Fargate
Let’s create a namespace and a Deployment that matches the fargate profile:Fargate creates one node per Pod, which can add provisioning latency for rapid scaling.
5. Standard Nginx Deployment on Managed Nodes
Deploy a typical Nginx workload in the default namespace:6. Dynamic Scaling with Karpenter
Karpenter automatically provisions compute when Pods remain unscheduled due to resource constraints.Make sure you’ve installed Karpenter and configured the required IAM roles. See the Karpenter documentation for setup instructions.
-
Verify Karpenter pods:
-
Scale the Nginx deployment to 25 replicas:
-
Add CPU requests to force new node provisioning:
-
Watch Pods and Nodes:
Example of new C5 nodes:
-
Inspect a Karpenter-provisioned node: