-
Notifications
You must be signed in to change notification settings - Fork 205
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
chore: stop adding spot requirement in consolidation #1649
chore: stop adding spot requirement in consolidation #1649
Conversation
The committers listed above are authorized under a signed CLA. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: leoryu The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Welcome @leoryu! |
Hi @leoryu. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Pull Request Test Coverage Report for Build 10789870773Details
💛 - Coveralls |
Why is this a chore to you rather than a feature request? This would be a very very large change to our scheduling algorithm, as it's an invariant that spot prices will always be cheaper than on-demand prices. Obviously this may change between cloud providers. How is it impacting you? |
@njtran If the nodeclaim is for 8C 16G {"level":"INFO","time":"2024-09-23T06:27:22.627Z","logger":"controller","message":"disrupting nodeclaim(s) via replace, terminating 1 nodes (1 pods) {node-name}/{instance-type}/on-demand and replacing with spot node from types {instance-type},{instance-type}, {instance-type}","controller":"disruption","namespace":"","name":"","reconcileID":"4de5441d-b9a7-4089-afe0-7762b5b640cc","command-id":"6f8ef575-d844-410a-a4e0-709af27d36d8","reason":"underutilized"} The controller will get an error: {"level":"ERROR","time":"2024-09-23T06:27:00.080Z","logger":"controller","message":"failed launching nodeclaim","controller":"nodeclaim.lifecycle","controllerGroup":"karpenter.sh","controllerKind":"NodeClaim","NodeClaim":{"name":"test-njk7n"},"namespace":"","name":"test-njk7n","reconcileID":"333a7dec-4354-4076-9015-6db7eb5f69bf","error":"insufficient capacity, all requested instance types were unavailable during launch"} Setting |
This PR has been inactive for 14 days. StaleBot will close this stale PR after 14 more days of inactivity. |
Hi, please check this comment at your convenience. @njtran |
This PR has been inactive for 14 days. StaleBot will close this stale PR after 14 more days of inactivity. |
Fixes #1605
Description
The karpenter core should not add
spot
tonodeclaim
in consolidation. Which capacity type replaced with should be controlled by provider.How was this change tested?
I hacked the provider code and maked all
spot
is not avaliable to simulate the allspot
machines sold out case, and triggered a consolidation by modifying the nodepool with smallercpu
requirment. The nodeclaim will replaced by smaller/cheaperon-demand
machine as expected.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.