01
Nodes taking minutes to arrive
Pending pods waiting while Auto Scaling groups slowly add nodes during a traffic surge.
Overprovisioned Kubernetes nodes and slow autoscaling
Fix slow pod scheduling and idle nodes: set accurate resource requests, replace Cluster Autoscaler with Karpenter, and run interruptible workloads on spot.
Symptoms
If several of these sound familiar, the plan below is where we would start.
01
Pending pods waiting while Auto Scaling groups slowly add nodes during a traffic surge.
02
Large on-demand instances running around the clock at low utilization.
03
Pods crashing because memory requests and limits are missing or wrong.
Remediation plan
Each phase ends with a measurement, so you can see what changed before the next one starts.
01
Measuring historical CPU and memory use (for example with Goldilocks) to set accurate requests and limits.
02
Deploying Karpenter on Amazon EKS to launch right-sized nodes directly for pending pods.
03
Using several instance families for spot capacity and handling the two-minute interruption notice gracefully.
04
Spreading pods across Availability Zones and keeping enough of them available while nodes are replaced.
Technical checklist
What we check before a change goes to production:
We take a baseline first and report the same measurements after each change, from your own monitoring — evidence, not promised results.
Related service
Cloud cost optimization, Kubernetes platforms, and CI/CD that make deploys boring — savings and reliability measured in your dashboards, not our deck.
Explore Cloud & DevOpsQuestions
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.
Related playbooks
Move a production database without a long maintenance window: stream changes with CDC, verify parity with shadow reads, and cut over in a short, rehearsed window with reverse replication ready for rollback.
Ship the smallest product that proves your core workflow: scoped with you up front, built on a boring, scalable stack, and handed over with documentation and tests.
Move to a pooled PostgreSQL design where Row Level Security enforces tenant isolation in the database, cutting per-tenant overhead and the risk of a missed WHERE clause.
Build an append-only, double-entry ledger with idempotent writes and ordered events, so every balance can be explained and rebuilt from its history.
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.