Documentation

Karpenter is an open-source node provisioning project built for Kubernetes. Adding Karpenter to a Kubernetes cluster can dramatically improve the efficiency and cost of running workloads on that cluster. Karpenter is tightly integrated with Kubernetes features to make sure that the right types and amounts of compute resources are available to pods as they are needed. 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

As a cluster administrator, you can configure an unconstrained Karpenter provisioner when it is first installed and not change it again. Other times, you might continue to tweak the provisioner or create multiple provisioners for a cluster used by different teams. On-going cluster administrator tasks include upgrading and decommissioning nodes.

As an application developer, you can make specific requests for capacity and features you want from the nodes running your pods. Karpenter is designed to quickly create the best possible nodes to meet those needs and schedule the pods to run on them.

Learn more about Karpenter and how to get started below.


Getting Started

Choose from different methods to get started with Karpenter

Upgrade Guide

Learn about upgrading Karpenter

Concepts

Understand key concepts of Karpenter

Tasks

Perform tasks to create provisioners and schedule workloads

Provisioner API

Provisioner API reference page

AWS

Use AWS cloud provider features with Karpenter

Development Guide

Set up a Karpenter development environment

Testing Guide

Learn about Karpenter testing

FAQs

Review Karpenter Frequently Asked Questions

Troubleshooting

Troubleshoot Karpenter problems

Last modified May 9, 2022 : release v0.10.0 (ec2b5c0)