Karpenter cost is the cost of the nodes Karpenter launches and the saving from the nodes it removes again; the same holds for the Cluster Autoscaler and for the providers' managed variants. A node autoscaler has no price of its own, except where the provider sells it as a service, but each of its settings is an amount on the bill: the minimum number of nodes, the waiting time before scale-down, the utilisation threshold, the consolidation rule. This page describes those settings as cost, what Karpenter's NodePools, consolidation and disruption budgets change, what EKS Auto Mode, AKS node auto-provisioning and GKE's automatic node pool creation cost, and what to watch in the bill afterwards. How the autoscalers decide is Kubernetes efficiency; this page is about the price of the decision.
How it works
Both node autoscalers react to requests, not usage: they add nodes when pods cannot be scheduled for lack of capacity, and remove nodes whose pods fit elsewhere. The delays between the two directions cost money.
The Cluster Autoscaler considers a node unneeded when the sum of CPU requests and the sum of memory requests are below 50 percent of its allocatable capacity (the threshold is configurable), and removes it after it has been in that state for ten minutes; after a scale-up it waits another ten minutes before it evaluates scale-down at all. Each period is paid node time without work. On top come the node group's minimum size, a floor under the bill however empty the cluster gets, and the list of pods that block removal: pods without a controller, pods with local storage, kube-system pods without a PodDisruptionBudget, pods with a too restrictive budget, and pods annotated safe-to-evict: "false".
Karpenter replaces the static node group with a NodePool of requirements: permitted families, sizes, architectures and capacity types, limits on the total resources, and a disruption configuration. For each pending pod it picks the cheapest fitting instance; consolidation removes a node whose pods fit elsewhere, or replaces it with a cheaper one. consolidationPolicy sets which nodes qualify: only empty ones (WhenEmpty), any that can be removed or replaced more cheaply (WhenEmptyOrUnderutilized, the default), or, as Balanced, only those where the saving outweighs the disruption of running pods. consolidateAfter (default 0s) is the wait before a node is evaluated after a pod change; Never disables consolidation. Disruption budgets limit how many nodes are disrupted at once, 10 percent by default, optionally by reason (Underutilized, Empty, Drifted) and time window; a tight budget slows the saving. The pod annotation karpenter.sh/do-not-disrupt and a blocking PodDisruptionBudget take a node out of voluntary disruption. Spot nodes are by default only deleted, not replaced by cheaper spot nodes; replacement needs the SpotToSpotConsolidation feature flag and at least 15 permitted instance types.
AWS
EKS Auto Mode runs Karpenter as part of the service: nodes are launched for unschedulable pods, consolidated away, replaced after at most 21 days, and spot interruptions are handled by the service. For that AWS charges a management fee per launched instance and hour, by instance type, on top of the EC2 price; the lines sit under Amazon EKS with usage types such as EKS-Auto:m6i.large-management-hours (EKS, ECS and Fargate). Without Auto Mode, Karpenter is open-source software the customer installs and runs; the operation is the cost.
Azure
Node auto-provisioning (NAP) runs Karpenter for AKS and picks VM sizes from the requests of pending pods; it is preconfigured in AKS Automatic and switched on in AKS Standard. NAP itself has no price; AKS Automatic charges the hosted control plane per cluster and hour and a fee per vCPU and hour by VM category. The AKS Cluster Autoscaler works with the defaults 0.5 and ten minutes.
Google Cloud
In GKE Standard, automatic node pool creation adds and removes node pools for pending pods without a fee; the Cluster Autoscaler offers the profiles balanced (reserves for fast starts) and optimize-utilization (earlier, stronger scale-down). Autopilot has no nodes to scale; the price is that of the requests.
What it means for your cost
The bill of a cluster with nodes has three parts the node autoscaler determines: a floor from minimum sizes and system pools (node pools and instance selection), a tail from waiting periods and blocked nodes, and waste from nodes whose pods could be packed together. Karpenter lowers mainly the waste, because it picks nodes individually to fit and consolidates them away; the Cluster Autoscaler lowers it only within the groups that exist. Both leave the floor the minimum sizes set. The managed variants trade the operation for a fee: Karpenter upgrades, node images and interruption handling become a charge per instance.
After switching a node autoscaler on or moving to Karpenter, three things are checked in the bill: the nodes' instance hours must fall, otherwise nothing consolidates; the mix of instance types changes, because Karpenter picks from every permitted type, and a commitment bought for one family can go underused; and new lines appear, the management fee per instance under Auto Mode and the AKS Automatic fees. Which nodes it keeps and why, Karpenter reports as an event on the node.
Where it goes wrong
- Floor instead of saving. Symptom: at night exactly as many nodes run as the minimum size allows, although hardly any pods do. Cause: the pool's or node group's minimum size is the floor of the bill; the autoscaler cannot go below it.
- Node stays because of one pod. Symptom: an almost empty node runs for days. Cause: a pod without a controller, with local storage, with a restrictive PodDisruptionBudget or with
do-not-disruptblocks the removal. - Consolidation throttled. Symptom: Karpenter reports consolidation candidates but removes them slowly. Cause: the disruption budget allows few nodes at once, or
consolidateAfteris set long. - Commitment underused after Karpenter. Symptom: the coverage of a Savings Plan or reservation drops after the switch. Cause: Karpenter picks families and sizes other than those the commitment was bought for.
- Fee not planned for. Symptom: new lines per instance appear under Amazon EKS. Cause: the EKS Auto Mode management fee runs per launched instance and hour, on top of EC2.
- Spot nodes not replaced. Symptom: expensive spot nodes stay although cheaper ones are available. Cause:
SpotToSpotConsolidationis off, or the NodePool permits fewer than 15 instance types.
Example
List prices read on 2026-10-21 from the AWS price lists for Frankfurt (eu-central-1): m6i.large on demand under Linux USD 0.115 per hour; EKS Auto Mode management fee for m6i.large USD 0.0138, for c6a.2xlarge (EC2 USD 0.3492) USD 0.0419 per hour.
A pool of ten m6i.large costs 10 × 0.115 × 730 = USD 839.50 a month. If the pods of three nodes fit into the free capacity of the other seven, consolidation saves 3 × 0.115 × 730 = USD 251.85 a month; a minimum size of three nodes leaves nothing of that when the cluster is empty at night, because 3 × 83.95 = USD 251.85 remains as the floor. Every scale-down with a ten-minute wait costs 10/60 × 0.115 = USD 0.0192 per node; for 30 scale-downs a month on three nodes, USD 1.73. With EKS Auto Mode the ten nodes would add 10 × 0.0138 × 730 = USD 100.74 of management fee a month, twelve percent of the EC2 amount; for c6a.2xlarge likewise 0.0419/0.3492 = twelve percent.
Sources
Read on 2026-10-21. Cluster Autoscaler FAQ, Karpenter disruption and NodePools, AWS EKS Auto Mode and Amazon EKS pricing, AWS Price List bulk API, offers AmazonEC2 and AmazonEKS, eu-central-1, Microsoft node auto-provisioning and Cluster Autoscaler in AKS, Google Cloud GKE Cluster Autoscaler and automatic node pool creation.