Back to Glossary
Scaling

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: 1m

Cost & 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.

KorPro— Kubernetes Cost Optimization

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 Free

Stop 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.