Karpenter
originally by AWS
Karpenter is an open-source, Kubernetes-native node autoscaler that provisions and terminates compute nodes directly in response to unschedulable pod demand, choosing optimal instance types and sizes in real time rather than relying on…
Definition
Karpenter is an open-source, Kubernetes-native node autoscaler that provisions and terminates compute nodes directly in response to unschedulable pod demand, choosing optimal instance types and sizes in real time rather than relying on statically defined, pre-sized node groups.
Overview
Karpenter was created by AWS and open-sourced in 2021 to address limitations of the Kubernetes Cluster Autoscaler, which scales predefined, fixed-shape node groups (Auto Scaling Groups) up or down but cannot flexibly choose instance types or sizes to best match pending workloads. Karpenter instead watches the Kubernetes scheduler directly: when pods are unschedulable due to insufficient capacity, Karpenter evaluates the pending pods' actual resource requests, constraints, and affinity rules, then provisions right-sized nodes on demand — potentially mixing instance families, sizes, and purchase options (On-Demand vs. Spot) within a single 'NodePool' to optimize for cost and availability. Because Karpenter provisions nodes directly via cloud provider APIs rather than through fixed autoscaling groups, it can launch a new node in response to a pending pod within seconds, and just as importantly, it actively consolidates and terminates underutilized or expiring nodes, continuously repacking pods onto fewer, better-utilized nodes to reduce cost — something the Cluster Autoscaler handles less aggressively. Karpenter is configured via Kubernetes-native custom resources (NodePools and NodeClasses) rather than cloud-specific autoscaling group configuration, making capacity management feel like a first-class part of the Kubernetes API rather than an external cloud console concern. Karpenter was donated to the Cloud Native Computing Foundation (CNCF) and reached general availability with broadened multi-cloud ambitions, though its most mature and widely used implementation remains on AWS (EKS); community and vendor efforts have extended support toward Azure AKS and other providers. It's frequently paired with Spot Instance strategies to cut compute costs significantly for fault-tolerant or interruption-tolerant workloads, with Karpenter handling graceful node drain and pod rescheduling on Spot interruption notices.
Key Features
- Provisions right-sized nodes directly in response to unschedulable pod demand
- Bypasses fixed-shape Auto Scaling Groups used by the traditional Kubernetes Cluster Autoscaler
- Selects optimal instance type, size, and purchase option (On-Demand vs. Spot) per workload
- Actively consolidates and terminates underutilized nodes to reduce cost
- Configured via Kubernetes-native custom resources (NodePools, NodeClasses)
- Provisions new nodes within seconds by calling cloud provider APIs directly
- Donated to the CNCF, with primary maturity on AWS EKS and growing multi-cloud support
- Handles graceful pod rescheduling on Spot Instance interruption
Use Cases
Alternatives
History
Karpenter is an open-source, high-performance node autoscaler for Kubernetes. AWS created and open-sourced it in 2021 — announcing general availability at v0.5 in November 2021 — as a flexible, faster alternative to the traditional Cluster Autoscaler. Rather than scaling fixed node groups, Karpenter observes unschedulable pods and provisions right-sized compute directly, often bringing capacity online in under a minute, then consolidates and removes nodes as load drops. In 2023 AWS contributed the vendor-neutral core of the project to the Cloud Native Computing Foundation through the Kubernetes Autoscaling SIG, and Karpenter reached its 1.0 release in 2024. It is licensed under Apache 2.0.
Sources
- Karpenter — official website · as of 2026-07-17
- AWS — "Announcing Karpenter 1.0" · as of 2026-07-17