
How We Used Karpenter to Slash Costs and Save Engineering Time
🚀 How We Used Karpenter to Slash Costs and Save Engineering Time
When I first heard about Karpenter, I was skeptical. We’d already invested time tuning the Cluster Autoscaler, we had spot instances in place, and swapping out a core part of our infrastructure felt risky.
But then the AWS bill landed.
And a few too many Slack messages like:
“Why are we still scaling to r5.4xlarge for background jobs?”
So, we decided to give Karpenter a shot — and the results were way better than we expected.
The Problem
We run a moderately sized EKS cluster that handles both long-running services and bursty background jobs. We had autoscaling enabled, but we kept running into familiar issues:
Inefficient instance types being selected
Slower pod scheduling during peak traffic
Over-provisioning due to rigid node group configurations
Spot instance churn causing unnecessary workload disruptions
The nodes weren’t matching the workload, and managing scaling logic was becoming a weekly chore.
Why Karpenter?
Karpenter is an open-source Kubernetes autoscaler built by AWS. It’s designed to simplify node provisioning by launching exactly the right instance types based on what your workloads actually need.
The benefits were immediately attractive:
It works directly with the Kubernetes scheduler
It doesn’t require predefined node groups
It supports dynamic provisioning with smart instance selection (including spot)
Installation was simple. We used Helm, added a Provisioner, and let Karpenter take over from Cluster Autoscaler for our background jobs.
What Changed
Within the first week of rollout, we saw some serious improvements:
~28% lower EC2 costs, mostly from better spot instance utilization
2x faster pod scheduling during bursts
Less ops overhead – no more tweaking node group configs
Fewer developer complaints about flaky jobs or “pods stuck in pending”
Karpenter dynamically launched the right instance sizes with just enough resources to get the job done. No overkill, no lag.
What We Learned
Karpenter skips node groups entirely — no more managing ASGs or launch templates
Instance selection is dynamic and optimized for the workload
It’s especially powerful with bursty jobs or unpredictable load
You do need to monitor eviction behavior and keep an eye on which spot types are available in your region
If your cluster runs both spot and on-demand workloads, you’ll probably want multiple provisioners to control isolation.
Would I Recommend It?
Yes — 100%.
If you’re using EKS and still on Cluster Autoscaler, it’s worth trying Karpenter. It’s not a magic bullet, but it made a meaningful dent in our AWS bill and took some pressure off our infra team.
The cost savings were nice, but the engineering time saved? That was the real win.