dtzar / karpenter-azure

AKS Karpenter Provider

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitHub License CI GitHub stars GitHub forks Go Report Card contributions welcome


AKS Karpenter Provider

The AKS Karpenter Provider enables node autoprovisioning using Karpenter on your AKS cluster.

The API for AKS Karpenter Provider is currently alpha (v1alpha2).

See the local development guide website or local repo link.

Karpenter is an open-source node provisioning project built for Kubernetes. Karpenter improves the efficiency and cost of running workloads on Kubernetes clusters 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
  • Removing the nodes when the nodes are no longer needed

To learn more about karpenter generally, visit the website.

Community

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

FAQs

Q: I was able to trigger Karpenter to execute scaling up nodes as expected, using my own customized deployment of pods. However, scaling down was not handled automatically when I removed the deployment. The two new nodes created by Karpenter were left around. What is going on?

A: Additional system workloads (such as metrics server) can get scheduled on the new nodes, preventing Karpenter from removing them. Note that you can always use kubectl delete node <node>, which will have Karpenter drain the node and terminate the instance from cloud provider.

Q: When running some of the tests locally, the environment failed to start. How can I resolve this?

A: Oftentimes, especially for pre-existing tests, running make toolchain will fix this. This target will ensure that you have the correct versions of binaries installed.


Source Attribution

Notice: Files in this source code originated from a fork of https://github.com/aws/karpenter which is under an Apache 2.0 license. Those files have been modified to reflect environmental requirements in AKS and Azure.

Many thanks to @ellistarn, @jonathan-innis, @tzneal, @bwagner5, @njtran, and many other developers active in the Karpenter community for laying the foundations of a Karpenter provider ecosystem!

Many thanks to @Bryce-Soghigian, @rakechill, @charliedmcb, @jackfrancis, @comtalyst, @aagusuab, @matthchr, @gandhipr, @dtzar for contributing to AKS Karpenter Provider!


This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

AKS Karpenter Provider

License:Apache License 2.0


Languages

Language:Go 96.8%Language:Makefile 1.1%Language:Shell 0.7%Language:Smarty 0.4%Language:HTML 0.3%Language:SCSS 0.2%Language:Dockerfile 0.1%Language:Groovy 0.1%Language:Bicep 0.1%Language:JavaScript 0.1%