-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Karpenter support for cluster autoscaling #2712
Comments
Hi alexisbel1, AKS bot here 👋 I might be just a bot, but I'm told my suggestions are normally quite good, as such:
|
Triage required from @Azure/aks-pm |
Action required from @Azure/aks-pm |
+1 |
1 similar comment
+1 |
+1 would also love to see this. |
+1 |
2 similar comments
+1 |
+1 |
+1 ! |
Looking at the project, it doesn't seem generic enough to be used across all of kubernetes, seems to only work with AWS.
Unfortunately, VMSS today only supports one type, but there is work being done by the VMSS team to allow for this. All the bullet points you mentioned are in scope for cluster autoscaler, but you mentioned Karpenter has many advantages over CA. Could you be a bit more specific on those? What things would you like to accomplish on AKS |
The main advantage over CA is the ability to provision new VM types based on workload requirements (resources, taints...). CA will only up and down VM of the same type in a VMSS (that why it would require to allow multiple VM types in the same node group). In case, the VM type does not match workload requirements (e.g. GPU), the pod won't be able to start. |
Cluster API supports several providers: https://cluster-api.sigs.k8s.io/ |
For some context for others here: Karpenter is new. And it was written by Amazon. However it's intended that additional cloud providers be added to it, just like cluster auto scaler. The source is open, and it's waiting for engineers to contribute. It would ideally be the task of the Azure/AKS teams to provide the necessary resources to implement the Azure provider. What differentiates it from the cluster auto scaler is it has no concept of Node Groups. There is no need to allocate a classification of a Node Group up front. Instead, it examines the requirements, and expects the cloud provider to be able to allocate exactly what it needs, from the smorgasbord of offerings the cloud provider might have. That means if you need a machine with 32GB of ram, it'll go make one for you. If you need a spot instance it'll go make one for you. If it needs a node on AZ 2, it'll go make one for you. It doesn't require you to define all of the possible classes up front. Or it can consult the cloud provider for the most cost effective option that meets the requirements at the moment. This does present some architectural challenges as to how this would be surfaced in AKS. Would it just go and create VMs one by one? Would it still use a VMSS, but require arbitrary resource request support within a VMSS? How will network topology be defined in the former? Etc. But it is a much more extensible approach than the way CA is built. At least for cloud providers. Azure obviously has hundreds of VM family, series, size, and disk capabilities, operating systems, etc, and the cartesian product of them all is massive. |
👋 I lead the Karpenter project. We'd love to collaborate on additional cloud providers and have done our best to factor out a simple and extensible cloud provider API to minimize the effort for other providers to adopt. If you're interested in chatting about the project, feel free to join in at our working group. |
This would really be an interesting feature to support Azure/AKS |
interesting and following this for future. Cannot wait to test this in AKS, whenever this feature is supported. |
+1 |
+1 Really interesting feature👍 |
+1 |
1 similar comment
+1 |
Choosing between smaller and larger node types in Kubernetes depends on factors like workload needs, costs, and efficiency. Here are the pros and cons: Smaller Nodes: Pros:
Cons:
Bigger Nodes: Pros:
Cons:
A mix of small and large nodes could suit diverse workloads. Kubernetes features like resource management aid practical usage, regardless of node size. Base decisions on workload, performance, cost, and operations, with regular monitoring for optimization. |
+1 |
1 similar comment
+1 |
well, it is taking a bit longer.... Any news? |
Any update @palma21??? |
All updates for this are now on/depending of: kubernetes/org#4258 AKS does have an autoprovision item that will be in preview before the end of the year. |
+1 |
2 similar comments
+1 |
+1 |
@palma21 I don't see any docs for how to actually use Karpenter in AKS? 👀 |
Currently only the open source option that's linked above is available. Hopefully a built-in option such as an AKS add-on will be out soon. You can check out this blog post on how to use the open source method. |
Thanks for the link @PixelRobots. I'm all for deploying my own K8s components, but I don't think we're really at the stage for an announcement given that there isn't an official build of the image yet. Or any official docs as to how it works like there is for EKS. I'd also like to know how AKS plans to maintain their provisioner without keeping a fork of the whole code base? |
Not yet, we just announced the OSS provider. The add-on and respective docs will come soon. The provider code is cloud specific, core code is shared by all providers. We're not planning to make any forking of the core code (same as with all OSS projects we use). |
@palma21 I'm not looking for an add-on, but I'd like an OCI image and some docs explaining how the AKS implementation works to go with the announcement. Last time I checked the repo seems to contain the docs for the AWS version and point to that site. |
@stevehipwell The documentation for the AKS provider will be released with the add-on, and the Open Source repository will be updated with a link to that documentation for customers to reference, as well as updating the AKS specifics in the repo itself. As Jorge mentioned, the repository we announced contains the AKS Karpenter provider, and will be the home for any work we do that is provider specific |
@justindavies is there a roadmap we can all follow so we prevent questions like "what's the ETA" ? |
Good morning all, just to let everyone know we announced Node Autoprovision earlier today: https://learn.microsoft.com/en-gb/azure/aks/node-autoprovision?tabs=azure-cli |
@justindavies any update on windows containers? |
Hi All just want to know the update is that azure will support karpenter autoscaler or still it is in discussions state? |
This issue should probably be closed. Please check the following links: |
No windows support yet. Please keep it open.
…On Fri, 17 May 2024 at 08:38, Saverio Proto ***@***.***> wrote:
This issue should probably be closed. Please check the following links:
-
https://azure.microsoft.com/en-us/updates/provider-for-running-karpenter-on-azure-kubernetes-service-aks/
- https://github.com/Azure/karpenter-provider-azure
—
Reply to this email directly, view it on GitHub
<#2712 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAA4N4ZAIIIELMPTRWWHJD3ZCWQWTAVCNFSM5K27BV62U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJRGY4DKNRRGYYA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
This is a strong requirement too, I hope it will cover more possible AKS configurations before it reaches GA. |
When can we expect it to be GA? We are using linux nodes and would like to know if we can use it in production with MS support? |
Hello if you are asking about the GA of Node autoprovisioning the correct GitHub issue to follow is: I believe the intention of this issue was to track the possibility of using the open source Karpenter with AKS.
As I already commented, this issue should probably be closed ? |
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:
Karpenter has many advantages over cluster autoscaler. One prerequisite would be that AKS can manage multiple instance types without defining multiple node pools.
Currently the only cloud provider which support Karpenter is AWS.
It would be awesome to have AKS support it.
The text was updated successfully, but these errors were encountered: