Karpenter
An open-source Kubernetes node provisioner that launches the optimal nodes for pending Pods in seconds, without pre-configured node groups.
What is Karpenter?
Karpenter is an open-source, Kubernetes-native node provisioner originally developed by AWS and now a CNCF project with support for multiple cloud providers. Unlike Cluster Autoscaler, which scales pre-configured node groups with fixed instance types, Karpenter provisions individual nodes tailored to the exact requirements of pending Pods. When Pods are unschedulable, Karpenter evaluates their resource requests, instance type preferences, architecture requirements (amd64 vs arm64), and spot/on-demand preferences, then directly calls the cloud provider API to launch the best-fit instance in seconds.
Karpenter introduces two new custom resources: NodePool (formerly Provisioner) defines the constraints for nodes that Karpenter can provision — instance families, zones, capacity types (spot vs on-demand), taints, and labels. NodeClass (EC2NodeClass on AWS) defines provider-specific settings like AMI, subnet, and security groups. Karpenter can provision any instance type in a cloud provider's catalog, not just those pre-configured in a node group, enabling much finer-grained bin-packing.
Karpenter's consolidation feature actively re-packs running Pods onto fewer nodes during low-utilization periods, draining and terminating excess nodes without waiting for them to become naturally empty. This proactive consolidation can significantly reduce idle node count compared to Cluster Autoscaler's reactive approach.
Example
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
template:
spec:
requirements:
- key: karpenter.sh/capacity-type
operator: In
values: ["spot", "on-demand"]
- key: kubernetes.io/arch
operator: In
values: ["amd64", "arm64"]
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["c", "m", "r"]
limits:
cpu: 1000
disruption:
consolidationPolicy: WhenUnderutilized
consolidateAfter: 1mCost & Waste Implications
Karpenter's ability to select any instance type — including Graviton (ARM64) instances at 20% lower cost, and spot instances at 70–90% discount versus on-demand — combined with proactive consolidation routinely delivers 40–60% node cost reductions compared to static node groups or Cluster Autoscaler-managed clusters with fixed instance types.
How KorPro Helps
KorPro evaluates Karpenter NodePool configurations and identifies workloads that are currently on on-demand instances but are eligible for spot based on their disruption tolerance, estimating spot migration savings.
Scan Your Cluster FreeRelated Terms
Cluster Autoscaler
ScalingA component that automatically adds nodes when Pods are unschedulable and removes nodes when they are underutilized.
Read definitionNode
Core ConceptsA physical or virtual machine in a Kubernetes cluster that runs Pods under the direction of the control plane.
Read definitionTaints and Tolerations
OperationsNode taints repel Pods from scheduling on a node; tolerations in a Pod spec allow it to be scheduled on tainted nodes.
Read definitionKubernetes Cost Optimization
FinOpsThe practice of reducing Kubernetes infrastructure spend while maintaining performance and reliability.
Read definitionStop Wasting Money on Orphaned Kubernetes Resources
KorPro connects to your clusters across GCP, AWS, and Azure — no agents, no installation — and surfaces every orphaned resource with its monthly cost estimate.