Karpenter
Karpenter is an open-source node autoscaler for Kubernetes. It watches for pods that cannot be scheduled, then launches nodes whose size and instance type fit those pods. It also removes or replaces underused nodes. AWS created it for Amazon EKS (Elastic Kubernetes Service), and it now lives under the Kubernetes SIG Autoscaling project.
How it works
Cluster Autoscaler scales predefined node groups up and down. Karpenter skips node groups. You define a NodePool with constraints such as allowed instance families, capacity type (spot or on-demand) and CPU limits. When pods are pending, Karpenter adds up their resource requests and provisions a matching instance. For example, 10 pending pods that each request 1 vCPU and 2 GiB of memory might land on a single 16 vCPU node instead of five small ones. Consolidation later repacks pods onto fewer or cheaper nodes.
Why it matters in production
Node scaling speed and instance choice drive both latency during spikes and the cloud bill. Karpenter can mix spot and on-demand capacity, which saves money but needs disruption budgets and spread rules so a spot reclaim does not take out every replica.
See also
On the One2N blog
Karpenter vs Cluster Autoscaler: a comprehensive guide to Kubernetes node scaling
Gotchas to avoid when using AWS spot instances in production
References
