Skip to content

Kubernetes Node Autoscaling: built for flexibility, performance, and scalability.

License

Notifications You must be signed in to change notification settings

JacobGabrielson/karpenter

 
 

Repository files navigation

Build Status GitHub stars GitHub forks GitHub License Go Report Card Coverage Status contributions welcome

Karpenter is an open-source node provisioning project built for Kubernetes. Its goal is to improve the efficiency and cost of running workloads on Kubernetes clusters. Karpenter works by:

  • Watching for pods that the Kubernetes scheduler has marked as unschedulable
  • Evaluating scheduling constraints (resource requests, nodeselectors, affinities, tolerations, and topology spread constraints) requested by the pods
  • Provisioning nodes that meet the requirements of the pods
  • Scheduling the pods to run on the new nodes
  • Removing the nodes when the nodes are no longer needed

For most use cases, a cluster’s capacity can be managed by a single Karpenter Provisioner. However, you can define multiple Provisioners, enabling use cases like isolation, entitlements, and sharding. Provisioner requirements are layered with pod requirements to launch a node with the right properties, including taints, labels, availability zone, instance type, operating system, and more.

Come discuss Karpenter in the #karpenter channel in the Kubernetes slack!

Check out the Docs to learn more.

Installation

Follow the setup recommendations of your cloud provider.

References

Talks

License

This project is licensed under the Apache-2.0 License.

About

Kubernetes Node Autoscaling: built for flexibility, performance, and scalability.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 79.1%
  • Shell 18.7%
  • HTML 0.8%
  • JavaScript 0.5%
  • Makefile 0.4%
  • Python 0.2%
  • Other 0.3%