finds.dev← search

// the find

kubernetes-sigs/karpenter

★ 2,205 · Go · Apache-2.0 · updated Sep 2026

Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.

Karpenter is a Kubernetes node autoscaler that replaces the traditional cluster autoscaler by watching for unschedulable pods and provisioning nodes directly against cloud provider APIs instead of through pre-sized node groups or ASGs. It's for platform and infra teams running Kubernetes at real scale who want faster, more precisely-sized scale-up and automatic bin-packing of underused nodes.

Provisions nodes directly through cloud APIs rather than autoscaling groups, which cuts scale-up latency and lets it pick instance types per pod's actual requirements instead of per fixed group. The NodePool/NodeClaim CRD model is a clean declarative way to express instance type, zone, and capacity-type (spot/on-demand) constraints, and the disruption controller actively repacks and removes underused nodes rather than just scaling up. Test coverage is unusually deep for a project this size — near every controller package has a suite_test.go, and there's a dedicated kwok-based fake provider so the full scheduling and disruption logic can be exercised without real cloud nodes.

This repo is scheduling and disruption logic only — it can't run standalone. You need a separate cloud-specific provider repo, and maturity varies wildly: AWS's is production-grade, several community ones (Proxmox, UpCloud, Alibaba) are alpha or beta. Consolidation and drift have a lot of interacting knobs (disruption budgets, per-reason controls, do-not-disrupt grace periods), and figuring out from logs alone why a specific node was or wasn't consolidated in production is genuinely hard. The designs/ folder has more open RFCs (DRA scheduling, node overlays, in-place vertical scaling) than the README suggests, so some capabilities that sound shipped are still mid-flight proposals. There's also no guidance in-repo for migrating an existing cluster-autoscaler setup over — that operational transition is left to blog posts and Slack, not docs.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →