Skip to content

Overprovisioned Kubernetes nodes and slow autoscaling

Kubernetes autoscaling and compute cost fix with Karpenter

Fix slow pod scheduling and idle nodes: set accurate resource requests, replace Cluster Autoscaler with Karpenter, and run interruptible workloads on spot.

Symptoms

Signs your platform has this problem

If several of these sound familiar, the plan below is where we would start.

01

Nodes taking minutes to arrive

Pending pods waiting while Auto Scaling groups slowly add nodes during a traffic surge.

02

Paying for idle nodes

Large on-demand instances running around the clock at low utilization.

03

OOM kills from untuned limits

Pods crashing because memory requests and limits are missing or wrong.

Remediation plan

How we fix it, step by step

Each phase ends with a measurement, so you can see what changed before the next one starts.

01

Pod resource profiling

Measuring historical CPU and memory use (for example with Goldilocks) to set accurate requests and limits.

02

Karpenter

Deploying Karpenter on Amazon EKS to launch right-sized nodes directly for pending pods.

03

Spot diversification

Using several instance families for spot capacity and handling the two-minute interruption notice gracefully.

04

Disruption budgets and topology spread

Spreading pods across Availability Zones and keeping enough of them available while nodes are replaced.

Technical checklist

Remediation checklist

What we check before a change goes to production:

  • Measure real pod memory use and set accurate resource requests
  • Deploy Karpenter with price-capacity-optimized spot allocation
  • Configure Pod Disruption Budgets to keep a minimum number of pods available
  • Handle spot interruptions with graceful drains

What we measure

We take a baseline first and report the same measurements after each change, from your own monitoring — evidence, not promised results.

Node cost
Monthly node spend for the same workloads
Pending time
Pod pending to running during scale-up
Request accuracy
Requested vs used CPU and memory per workload

Related service

Cloud & DevOps

Cloud cost optimization, Kubernetes platforms, and CI/CD that make deploys boring — savings and reliability measured in your dashboards, not our deck.

Explore Cloud & DevOps

Questions

Questions about this remediation

Cluster Autoscaler works through Auto Scaling groups. Karpenter bypasses them and launches right-sized EC2 instances directly through the EC2 Fleet API.

AWS sends a two-minute interruption notice; Karpenter cordons and drains the node and starts a replacement, while Pod Disruption Budgets keep enough replicas serving.

Want an engineer to look at this with you?

Send us the symptoms and any metrics you have. We'll reply within one business day, set up a call and agree what to measure before anything changes.