top of page

Karpenter in 2025: Smarter, Real-Time Autoscaling for the Modern Kubernetes Era

  • Sep 18
  • 4 min read

By Ananta Cloud Engineering Team | Kubernetes | September 18, 2025



Karpenter in 2025: Smarter, Real-Time Autoscaling for the Modern Kubernetes Era

At Ananta Cloud, we’re committed to staying ahead of the curve when it comes to Kubernetes innovation. As of 2025, Karpenter has matured into a production-grade, battle-tested, and cloud-native autoscaler that brings next-level flexibility, speed, and intelligence to Kubernetes workload provisioning.


Karpenter is no longer just “a better Cluster Autoscaler.” It is now a core component of dynamic infrastructure for companies running high-scale workloads on Amazon EKS, as well as hybrid and multi-cloud environments.


What Is Karpenter (in 2025)?

Karpenter is an open-source Kubernetes autoscaler built by AWS and the broader CNCF community. It is designed for today's needs — multi-architecture workloads, cost-aware provisioning, burst scaling, and zero-downtime operations.


In 2025, Karpenter supports:


  • Multi-zone, multi-architecture, multi-capacity-type scaling

  • Predictive workload analysis

  • Accelerated workload scheduling (e.g., GPU/TPU-based nodes)

  • Deep AWS service integrations (Graviton, Savings Plans, Spot Advisor)

  • Pluggable cloud providers (Azure, GCP, on-prem)

Think of Karpenter as an intelligent control plane that transforms unscheduled pods into real-time, optimized compute capacity — exactly when and where you need it.

The Problem Karpenter Solves

Before Karpenter, Kubernetes clusters were often overprovisioned “just in case” — or underprovisioned and constantly firefighting pod evictions. Even with Cluster Autoscaler and ASGs, users faced limitations:


  • Fixed instance types

  • Manual scaling boundaries

  • Delayed node provisioning

  • Inefficient use of Spot capacity

  • Difficulty scaling for mixed workloads (ML, batch, APIs)


In 2025, these challenges are unacceptable for companies striving for agility, efficiency, and cost optimization. That’s where Karpenter steps in.


How Karpenter Works Today

Karpenter continuously observes the aggregate resource requirements of your unschedulable pods and makes just-in-time decisions to:


  • Launch the most suitable EC2 instance across size, zone, architecture, and pricing

  • Schedule workloads with minimal latency

  • Scale down idle nodes based on configurable TTLs


Karpenter flow diagram

Notable Improvements in 2025:

Feature

What’s New

🧬 ARM64 + GPU support

Enhanced multi-arch scaling, including NVIDIA H100 & AWS Trainium

🌐 Cloud-agnostic capabilities

Early support for Azure, GCP, and on-prem (via kubevirt, OpenStack)

💰 Cost-aware provisioning

Integrates AWS Cost Explorer and Spot placement score APIs

🧠 Predictive scheduling (beta)

Uses patterns to pre-scale based on historical data

🛡️ Workload isolation policies

Fine-grained provisioning controls by workload class or priority

🚀 Faster node readiness

Optimized bootstrapping via EKS AMIs and Fargate + Karpenter hybrid models

Getting Started in 2025: Karpenter + Amazon EKS

Here’s a step-by-step modern guide to launching Karpenter in a 2025 Amazon EKS cluster.


Prerequisites

Ensure the latest versions of these tools are installed:

  • eksctl (v0.180+)

  • kubectl (v1.29+)

  • helm (v3.14+)

  • awscli (v2.16+)


Also confirm you’ve enabled EKS Pod Identity (replacement for IRSA) and Graviton-compatible AMIs if needed.


Step 1: Create Your EKS Cluster

cat <<EOF > cluster.yaml
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: eks-karpenter-2025
  region: us-east-1
  version: "1.29"
managedNodeGroups:
  - name: baseline-ng
    instanceType: t3.medium
    desiredCapacity: 1
    minSize: 1
    maxSize: 3
    iam:
      withAddonPolicies:
        imageBuilder: true
EOF

eksctl create cluster -f cluster.yaml

Step 2: Set Up IAM and Pod Identity

Karpenter uses EKS Pod Identity (recommended in 2025) to interact with EC2:

eksctl create iam identity-mapping \
  --cluster eks-karpenter-2025 \
  --region us-east-1 \
  --service-name karpenter.sh \
  --namespace karpenter

Create the Karpenter instance profile (use updated Karpenter CloudFormation templates from karpenter.sh).


Step 3: Install Karpenter via Helm

helm repo add karpenter https://charts.karpenter.sh
helm repo update

helm upgrade --install karpenter karpenter/karpenter \
  --namespace karpenter --create-namespace \
  --set controller.clusterName=eks-karpenter-2025 \
  --set controller.clusterEndpoint=$(aws eks describe-cluster --name eks-karpenter-2025 --query "cluster.endpoint" --output text) \
  --set serviceAccount.annotations."eks\.amazonaws\.com/role-arn"="arn:aws:iam::<account-id>:role/KarpenterControllerRole-eks-karpenter-2025" \
  --wait

Step 4: Define a Provisioner (Updated 2025 Format)

cat <<EOF | kubectl apply -f -
apiVersion: karpenter.sh/v1beta1
kind: Provisioner
metadata:
  name: default
spec:
  requirements:
    - key: "karpenter.sh/capacity-type"
      operator: In
      values: ["spot", "on-demand"]
    - key: "kubernetes.io/arch"
      operator: In
      values: ["arm64", "amd64"]
    - key: "node.kubernetes.io/instance-type"
      operator: In
      values: ["c7g.large", "m7a.large", "inf2.xlarge"]
  limits:
    resources:
      cpu: 1000
  provider:
    instanceProfile: KarpenterNodeInstanceProfile-eks-karpenter-2025
  ttlSecondsAfterEmpty: 60
  ttlSecondsUntilExpired: 86400
EOF

This new schema includes limits, expiration TTLs, and modern instance types like Graviton3 (c7g) and Inferentia2 (inf2).


Step 5: Trigger a Deployment

kubectl create deployment bursty-app \
  --image=public.ecr.aws/eks-distro/kubernetes/pause:3.2 \
  --requests='cpu=2'

Scale up:

kubectl scale deployment bursty-app --replicas=20

Watch Karpenter in action:

kubectl logs -f -n karpenter \
  -l app.kubernetes.io/name=karpenter

Step 6: Auto-Cleanup

Karpenter will terminate idle nodes after 60 seconds. No manual cleanup required — it's fully event-driven.


Key Considerations for 2025

  • Fargate + Karpenter Hybrid: Use Fargate for small, short-lived workloads and Karpenter for larger, dynamic workloads.

  • Cost Optimization with Spot + Savings Plans: Karpenter now factors in real-time Spot placement scores and instance lifecycle costs.

  • Don’t use Cluster Autoscaler with Karpenter: Both solve the same problem and will conflict.

  • Observability Tools: Integrate Karpenter with Prometheus, AWS CloudWatch, and OpenTelemetry for better visibility.

Final Thoughts

Absolutely. Karpenter has come a long way from its early days and is now considered a must-have component for modern Kubernetes operations, especially on EKS.


At Ananta Cloud, we recommend Karpenter to customers who:


✅ Need rapid, intelligent autoscaling

✅ Run batch, ML, or bursty workloads

✅ Want to reduce compute costs

✅ Prefer event-driven infrastructure

✅ Are moving toward cloud-native platforms



Modernize Your Kubernetes Autoscaling Strategy with Ananta Cloud

Karpenter is redefining autoscaling in 2025 — but are you leveraging it to its full potential? At Ananta Cloud, we help platform teams implement smarter, real-time autoscaling strategies tailored to your workloads, cost goals, and infrastructure.


💡 Partner with Ananta Cloud to unlock the power of Karpenter and scale your Kubernetes clusters the right way.


👉 Schedule a free consultation today here



Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
average rating is 4 out of 5, based on 150 votes, Recommend it

Stay ahead with the latest insights delivered right to you.

  • Straightforward DevOps insights

  • Professional advice you can trust

  • Cutting-edge trends in IaC, automation, and DevOps

  • Proven best practices from the field

bottom of page