RFC: integrate extender-managed resources#9786
Conversation
|
Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. DetailsInstructions 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. |
|
|
|
This issue is currently awaiting triage. If SIG Autoscaling contributors determines this is a relevant issue, they will accept it by applying the The DetailsInstructions 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. |
|
Hi @fishman. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: fishman The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
elmiko
left a comment
There was a problem hiding this comment.
i have a question about the makefile change.
/ok-to-test
| @@ -1,4 +1,4 @@ | |||
| ALL_ARCH = amd64 arm64 s390x | |||
| ALL_ARCH = amd64 # arm64 s390x | |||
There was a problem hiding this comment.
curious why we are disabling the other architectures?
There was a problem hiding this comment.
Slipped through, I was just testing, but I revised the commit locally, and I guess I forgot to push it.
- Register extender-managed resources as custom GPU vendor resource names at startup - Add `Extenders` field to `framework.Handle` and create HTTP extenders from scheduler config - Pass extenders to `SchedulerPluginRunner` and filter nodes via `runExtenderFilters` - Refactor `RunFiltersUntilPassingNode` to collect all passing nodes for extender post-filtering
|
@fishman: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions 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. I understand the commands that are listed here. |
Extendersfield toframework.Handleand create HTTP extenders from scheduler configSchedulerPluginRunnerand filter nodes viarunExtenderFiltersRunFiltersUntilPassingNodeto collect all passing nodes for extender post-filteringWhat type of PR is this?
/kind feature
What this PR does / why we need it:
Extenders (e.g., for vendor GPU resources) must be correctly wired into the scheduler to avoid scheduling pods onto nodes that cannot satisfy extender-managed resources. Fixes Azure/AKS#5301
Which issue(s) this PR fixes:
Addresses Azure/AKS#5301 but does not sufficiently fix it yet.
Special notes for your reviewer:
It's not properly tested yet, but in the HAMi scenario it wouldn't work correctly, because HAMi's virtualized resources may not map properly to the information cluster autoscaler uses. So either the extender needs an interface change, or the config format needs additional work. But since different accelerators may use different proportions i'm not sure if the standardization of those resource proportions should happen on the cluster autoscaler side.
Does this PR introduce a user-facing change?
NONE
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:
Not a KEP yet, just looking for feedback