Karpenter is a Kubernetes autoscaler that provisions right-sized compute directly via cloud provider APIs, replacing the traditional Cluster Autoscaler (CAS). Its configuration model separates provider-agnostic NodePools (defining constraints like instance families, capacity types, and consolidation policies) from provider-specific NodeClasses (defining AMIs, subnets, security groups). Karpenter batches unschedulable pods to provision fewer, better-utilized nodes just-in-time, tracks in-flight NodeClaims to avoid duplicate provisioning, and continuously consolidates workloads through emptiness, underutilization, and drift detection. Compared to CAS, Karpenter offers faster provisioning via direct API calls, flexible instance selection beyond static node groups, and proactive cost optimization through workload consolidation rather than just deleting empty nodes.
Table of contents
Karpenter’s configuration modelHow Karpenter optimizes performance and costComparing Karpenter to Cluster AutoscalerBuilding a foundation for Karpenter observabilitySort: