Skip to main content
Karpenter watches for unschedulable pods and automatically provisions the right EC2 instances to run them — no node groups, no over-provisioning, no manual scaling rules. When nodes are no longer needed, Karpenter removes them.

Install Karpenter

Deploy Karpenter on your EKS cluster with Helm in minutes.

Core concepts

Understand NodePools, NodeClasses, scheduling, and disruption.

Migrate from Cluster Autoscaler

Step-by-step guide to replace Cluster Autoscaler with Karpenter.

Reference

Configuration settings, metrics, instance types, and more.

How Karpenter works

1

Karpenter watches for unschedulable pods

When the Kubernetes scheduler marks pods as unschedulable due to insufficient resources, Karpenter detects them immediately.
2

Karpenter evaluates scheduling constraints

Karpenter evaluates resource requests, node selectors, affinities, tolerations, and topology spread constraints to determine exactly what nodes are needed.
3

Karpenter provisions the right nodes

Using your NodePool and EC2NodeClass configuration, Karpenter selects the optimal EC2 instance types and launches them — including Spot instances for cost savings.
4

Karpenter consolidates and cleans up

As workloads change, Karpenter continuously consolidates underutilized nodes and removes nodes that are no longer needed, keeping your cluster efficient.

Key features

NodePools

Define constraints, limits, and disruption policies for groups of nodes.

EC2NodeClasses

Configure AWS-specific settings: AMIs, subnets, security groups, and more.

Intelligent scheduling

Leverage resource requests, affinities, topology spread, and well-known labels.

Disruption & consolidation

Automate node consolidation, drift detection, and graceful termination.

AMI management

Control AMI selection, pinning, and automated replacement strategies.

Capacity reservations

Use EC2 capacity reservations and On-Demand Capacity Reservations with Karpenter.
Karpenter v1 is the first stable API release. Any future incompatible API changes will require a v2 version. It is safe for production use.

Build docs developers (and LLMs) love