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
Priority expander in cluster-autoscaler does not seem to pick the highest priority node #2359
Comments
Hi OvervCW, AKS bot here 👋 I might be just a bot, but I'm told my suggestions are normally quite good, as such:
|
@OvervCW what happens if you remove the first priority?
I suspect because you're using a wildcard matcher, you're being hit by an upstream bug which we haven't back-ported to older releases yet (will do this week). |
I removed it and it started out promising with it immediately choosing the Is there any way to manually update the cluster-autoscaler? Or would that require upgrading to a new minor Kubernetes version? |
We will prepare a back-port for supported K8s versions and it should roll-out with next week's release. No action needed on your end. I'll keep you posted on this thread. |
Hi @OvervCW, This fix should be rolled out on Monday. Thanks! |
Thanks for reaching out. I'm closing this issue as it was marked with "Answer Provided" and it hasn't had activity for 2 days. |
The release has not been rolled out to all zones yet, so I think it should stay open a little while longer. |
@lindhe Is it possible to see the rollout status somewhere? |
No, unfortunately not. I spoke to Microsoft support regarding this (I had run into the same issue) and we identified that the patch had not been rolled out to all zones yet. I asked them if it was possible to see, but they told me the current rollout information was only available via an internal system on their end. |
@qpetraroia Can we reopen the issue since it's not fully rolled out yet? |
I just confirmed with support that this release is still not fully rolled out. |
@OvervCW which region and which k8s version are you using? This should have completed today. |
Until very recently, it didn't work in West Europe. I have not checked today. EDIT: Checked just now, it's still broken. I've got a reasonable workflow setup for debugging it. I'm attaching instructions in case someone want to try it. |
@lindhe thanks for the detailed report. I'll give it a shot and report back here. This could be a different issue than the upstream bug fix linked above. |
Thanks for reaching out. I'm closing this issue as it was marked with "Answer Provided" and it hasn't had activity for 2 days. |
@OvervCW @lindhe I just tested with your setup and it's always scaling up the correct pool for me. Can you test again? That was on 1.19 fwiw. You should also see a log line from the priority package but that seems missing in your report. Are you creating the configmap properly in the kube-system namespace?
Using 1.19 in southcentralus fwiw. We can connect over email to get to the bottom of this. |
@marwanad Is it possible that it's still broken with 1.18 but fixed with 1.19? Because that's the cluster version I'm currently running. I'm about to upgrade to 1.19 and then 1.20 this week, so I'll check if the problem is fixed then. |
@OvervCW I just verified with 1.18 as well. You can send me your cluster FQDN on the email listed on my GitHub or {myGitHubAlias}@microsoft.com and I can take a closer look. edit: I was able to repro after a few tries. I think I have a clue on what's happening. I'll update later. |
I'm on summer leave right now, so cannot test again until I'm back at work. Think I'll have to take another live session with our Microsoft support rep. to verify that I'm not doing something wrong. |
Hi, I'm back again now! Thank you for your patience. I tried it again now, and now it seems to work properly! I tried both with We can close this issue as far as I'm concerned. Well done. |
Can confirm that it works for us as well, on our existing |
What happened: I initially created a cluster with the
random
expander and then changed it topriority
with the following command:The cluster-autoscaler logs seem to indicate that it has processed this change:
I have 4 node pools (CPU spot/non-spot and GPU spot/non-spot) and I set up the priority configmap to prefer scaling the (cheap) CPU spot node pool first:
This should match the VMSS associated with the node pools, which are named:
However, when I create a pod that can run on any of these 4 pools (with a toleration for spot nodes), the cluster autoscaler always chooses to scale the GPU node pool:
If I force the pod to schedule on the CPU spot pool by using a
nodeSelector
then the cluster-autoscaler will choose to scale thecpuspot
node pool, so clearly it's not about that particular node pool being unavailable.What you expected to happen: I expect the cluster-autoscaler to (always) choose the
cpuspot
pool.How to reproduce it (as minimally and precisely as possible): See above, simply create the 4 node pools and create a pod that can run on any of them.
Anything else we need to know?: -
Environment: N/A
kubectl version
):The text was updated successfully, but these errors were encountered: