← back

📷 "Docker HQ, San Francisco, California" by willbuckner is licensed under CC BY 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/2.0/.

Kubernetes Autoscaling 2026: Why Karpenter Is Replacing the Cluster Autoscaler

06 August 2026 · 5 min · Martin Jochum #Kubernetes#Karpenter#Autoscaling#DevOps#Cluster Autoscaler#Cloud Native

Kubernetes autoscaling was long the domain of the Cluster Autoscaler, which has reliably scaled node groups up and down since 2016. But in 2026, the tide has turned: Karpenter, the project originally developed by AWS and now part of the CNCF, is increasingly becoming the new standard for intelligent node provisioning. With EKS Auto Mode, AWS has even made Karpenter the managed default. What is behind this shift, and what advantages does Karpenter offer over the established Cluster Autoscaler?

What is Karpenter?

Karpenter is an open-source node provisioner for Kubernetes that communicates directly with the cloud API – without the detour via Auto Scaling Groups or comparable abstraction layers. While the Cluster Autoscaler scales predefined node groups, Karpenter analyzes the actual requirements of pending pods (CPU, memory, GPU, architecture, zone constraints) and provisions exactly matching instances in real time.

The architecture is as simple as possible: Karpenter watches the scheduler for unschedulable pods, determines the allowed instance types and capacity options via a NodePool, and directly calls the compute API of the cloud provider. As soon as the new node joins the cluster, the scheduler places the waiting pods. The entire process typically takes 30 to 60 seconds – the Cluster Autoscaler usually needs 2 to 5 minutes for this.

Karpenter vs. Cluster Autoscaler: The Key Differences

The fundamental architectural difference shapes all other characteristics:

Provisioning speed: Karpenter provisions nodes directly via the EC2 Fleet API (or the corresponding APIs on Azure). The Cluster Autoscaler, on the other hand, polls every 10 seconds, simulates scheduling, and then scales an Auto Scaling Group – a process that takes several minutes. For bursty workloads (flash sales, batch jobs starting from zero), the difference can mean the line between an unnoticed delay and a pager alert.

Bin-packing and consolidation: Karpenter continuously evaluates the cluster state and replaces multiple underutilized nodes with fewer, better-filled instances – without being tied to fixed instance types. The Cluster Autoscaler can also remove underutilized nodes, but only within the limits of its predefined node groups. In production deployments, teams typically see a 20–35% lower node count with the same workload after migrating to Karpenter, solely due to denser bin-packing.

Spot instances: Karpenter treats spot instances as first-class citizens. A single NodePool can mix spot and on-demand, and Karpenter automatically handles interruption-aware consolidation and fallback to on-demand. With the Cluster Autoscaler, spot workloads must be managed via separate node groups, and interruption handling requires additional tools like the AWS Node Termination Handler.

Cloud support: While the Cluster Autoscaler, as a CNCF project, is equally mature on all major clouds (AWS, GCP, Azure), Karpenter’s focus was long on AWS. That has changed: Azure AKS now offers an official, production-ready Karpenter provider (also known as Node Autoprovisioning). GCP integration lags behind, but the community is working on it.

What’s New in 2026

The year 2026 has brought several important milestones for Karpenter:

CNCF membership: Karpenter is now officially a CNCF project, underscoring long-term vendor neutrality. The current version v1.14.0 brings stable APIs and extended configuration options.

EKS Auto Mode: AWS has integrated Karpenter as the default node provisioner in EKS Auto Mode. Teams on EKS thus get Karpenter-like provisioning without having to manage the controller themselves – a clear signal that AWS sees Karpenter as the strategic direction.

Extended disruption budgets: Karpenter now allows time-based disruption budgets that restrict consolidation during business hours and release it at night or on weekends. This prevents surprising pod restarts during peak load.

Practical Example: Configuring a NodePool

A typical Karpenter NodePool for a production environment could look like this:

apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: production
spec:
  template:
    spec:
      requirements:
        - key: kubernetes.io/arch
          operator: In
          values: ["amd64", "arm64"]
        - key: karpenter.sh/capacity-type
          operator: In
          values: ["spot", "on-demand"]
        - key: karpenter.k8s.aws/instance-category
          operator: In
          values: ["c", "m", "r"]
        - key: karpenter.k8s.aws/instance-generation
          operator: Gt
          values: ["5"]
      nodeClassRef:
        group: karpenter.k8s.aws
        kind: EC2NodeClass
        name: default
      limits:
        cpu: 1000
        memory: 1000Gi
  disruption:
    consolidationPolicy: WhenUnderutilized
    consolidateAfter: 1m
    budgets:
      - nodes: "10%"

The associated EC2NodeClass defines AWS-specific settings such as subnets, security groups, and the AMI family. Karpenter then selects the most cost-effective combination from the entire catalog of EC2 instance types that meets the pod requirements.

Who Should Switch?

The decision for or against Karpenter depends heavily on the specific environment:

Karpenter is the first choice if you are on AWS (EKS), have bursty or highly variable workloads, use significant spot proportions, or want to reduce your cloud costs through better bin-packing.

The Cluster Autoscaler remains the right choice if you are on GCP or a multi-cloud setup without an Azure Karpenter provider, your workloads fit into a few well-planned instance types, or your existing Cluster Autoscaler setup runs stably and there is no acute cost pressure.

A well-maintained Cluster Autoscaler does not have to be replaced at all costs. The switch has real costs: testing scaling behavior, updating runbooks, and training the on-call team. However, anyone setting up a new cluster or struggling with the limitations of the Cluster Autoscaler should seriously consider Karpenter.

Conclusion

In 2026, Karpenter has evolved from an AWS experiment to a serious candidate for node provisioning in Kubernetes. The direct cloud API integration, intelligent bin-packing, and native spot support address exactly the pain points that teams have been criticizing about the Cluster Autoscaler for years. With its inclusion in the CNCF, growing Azure support, and integration into EKS Auto Mode, Karpenter is ready for broad production use.

The message for 2026, however, is not “Karpenter everywhere,” but “the right tool for the job.” Those on AWS or planning a fresh start get a more powerful, cost-efficient tool with Karpenter – those with a stable running Cluster Autoscaler can safely wait until concrete pain justifies a switch.

Sources

🌐 Machine-translated from the German original, editorially reviewed. 🤖 Written with AI assistance.