irasnyd / karpenter

Kubernetes Node Autoscaling: built for flexibility, performance, and simplicity. https://karpenter.sh

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status GitHub stars GitHub forks GitHub License 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 simplicity. https://karpenter.sh

License:Apache License 2.0


Languages

Language:Go 95.2%Language:HTML 1.9%Language:Shell 0.7%Language:Makefile 0.7%Language:Python 0.6%Language:Smarty 0.4%Language:JavaScript 0.2%Language:SCSS 0.2%Language:HCL 0.1%