kubernetes-sigs/karpenter

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

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 42 minutes ago
Added to GitGenius on August 15th, 2024
Created on October 11th, 2022
Open Issues & Pull Requests: 291 (+0)
Number of forks: 553
Total Stargazers: 2,124 (+0)
Total Subscribers: 29 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.3 days
Mean response time: 52.5 days
90th percentile: 138.4 days
Tracked items: 692

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 80% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 18% of tracked open issues have had no activity in three months. Only 2% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 202
New in 7 days: 6
Closed in 7 days: 1
Avg open age: 349 days
Stale 30+ days: 139
Stale 90+ days: 73

Recent activity

Opened in 7 days: 4
Closed in 7 days: 1
Comments in 7 days: 3
Events in 7 days: 11

Top labels

  • kind/feature (412)
  • kind/bug (318)
  • needs-priority (303)
  • needs-triage (246)
  • lifecycle/rotten (214)
  • triage/accepted (199)
  • triage/needs-information (117)
  • lifecycle/stale (69)

Detailed Description

Karpenter is a Kubernetes Node Autoscaler written in Go that manages cluster capacity by automatically provisioning and removing nodes based on workload demands. The project operates as a multi-cloud initiative under the kubernetes-sigs organization, with provider implementations maintained by AWS, Azure, AlibabaCloud, Bizfly Cloud, Clever Cloud, Cluster API, Exoscale, GCP, Hetzner, Huawei Cloud, IBM Cloud, Proxmox, Oracle Cloud Infrastructure, and Akamai/Linode. This broad ecosystem reflects Karpenter's design as a cloud-agnostic solution that abstracts away provider-specific infrastructure details.

The core functionality centers on four key operations: watching for pods marked as unschedulable by the Kubernetes scheduler, evaluating scheduling constraints including resource requests, node selectors, affinities, tolerations, and topology spread constraints, provisioning nodes that satisfy those requirements, and removing nodes when they are no longer needed. This approach enables efficient resource utilization and cost optimization by right-sizing cluster capacity to actual workload needs rather than maintaining static node pools.

The repository maintains active community engagement through multiple channels including dedicated Kubernetes Slack channels for both users and developers, bi-weekly working group meetings held at alternating times to accommodate global participation, and weekly issue triage meetings. The project has generated significant visibility through conference talks spanning from KubeCon presentations to Container Day appearances, with recent content addressing cluster update automation and workload consolidation strategies.

Karpenter's classification within the infrastructure-as-code and dynamic provisioning domains reflects its role in automating infrastructure decisions. The project addresses fundamental challenges in Kubernetes operations including capacity planning, cost optimization, and efficient computing by eliminating the need for manual node management or static cluster sizing. Its integration with spot instances and support for dynamic scaling enable organizations to reduce infrastructure costs while maintaining application availability.

The project maintains clear contribution pathways through its contributor guide and actively encourages participation via good-first-issue and help-wanted labels, making it accessible to developers seeking to contribute to cloud-native infrastructure tooling.