-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
DRA: Device Binding Conditions #5007
Comments
/assign @KobayashiD27 As discussed in kubernetes/kubernetes#124042 (comment). /sig scheduling |
@pohly: GitHub didn't allow me to assign the following users: KobayashiD27. Note that only kubernetes members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. In response to this:
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. |
Thank you for creating the issue. I will post a draft KEP as soon as possible. |
To facilitate the discussion on the KEP, we would like to share the design of the composable controller we are considering as a component utilizing the fabric-oriented scheduler function. By sharing this, we believe we can deepen the discussion on the optimal implementation of the scheduler function. Additionally, we would like to verify whether the controller design matches the DRA design. BackgroundOur controller's philosophy is to efficiently utilize fabric devices. Therefore, we prefer to allocate devices directly connected to the node over attached fabric devices. (e.g., Node-local devices > Attached fabric devices > Pre-attached fabric devices) Design OverviewThis design aims to efficiently utilize fabric devices, prioritizing node-local devices to improve performance. The composable controller manages fabric devices that can be attached and detached. Therefore, it publishes a list of fabric devices as ResourceSlices. The structure we are considering is as follows: # composable controller publish this pool
kind: ResourceSlice
pool: composable-device
driver: gpu.nvidia.com
nodeSelector: fabric1
devices:
- name: device1
...
- name: device2
... The vendor's DRA kubelet plugin will also publish the devices managed by the vendor as ResourceSlices. # vendor DRA kubelet plugin publish this pool
kind: ResourceSlice
pool: Node1
driver: gpu.nvidia.com
nodeName: Node1
devices:
- name: device3
... Here, when the scheduler selects the fabric device We are considering the following two methods for handling ResourceSlices upon completion of the attachment. We would like to hear your opinions and feasibility on these two composable controller proposals. Proposal 1: The composable controller publishes ResourceSlices with NodeName set within the poolMultiple ResourceSlices are published with the same pool name. One indicates the devices included in the fabric, and the other indicates the devices attached to the node. # composable controller publish this pool
kind: ResourceSlice
pool: composable-device
driver: gpu.nvidia.com
nodeSelector: fabric1
devices:
- name: device2
...
---
kind: ResourceSlice
pool: composable-device
driver: gpu.nvidia.com
nodeName: Node1
devices:
- name: device1
... If the vendor's plugin responds to hotplug, # vendor DRA kubelet plugin publish this pool
kind: ResourceSlice
pool: Node1
driver: gpu.nvidia.com
nodeName: Node1
devices:
- name: device3
...
- name: device1
... This may cause device duplication issues between ResourceSlices. To prevent multiple ResourceSlices from publishing duplicate devices, we plan to define a deny list and standardize it with DRA. Advantages
Disadvantages
Proposal 2: Attached devices are published by the vendor's pluginIn this case, devices are removed from the composable-device pool. # composable controller publish this pool
kind: ResourceSlice
pool: composable-device
driver: gpu.nvidia.com
nodeSelector: fabric1
devices:
- name: device2
... If the vendor's plugin responds to hotplug, # vendor DRA kubelet plugin publish this pool
kind: ResourceSlice
pool: Node1
driver: gpu.nvidia.com
nodeName: Node1
devices:
- name: device3
...
- name: device1
... This breaks the linkage between ResourceClaim and ResourceSlice. Therefore, it is necessary to modify the AllocationResult of the ResourceClaim. Advantages
Disadvantages
We would appreciate your feedback and insights on these proposals to ensure the optimal implementation of the scheduler function and alignment with the DRA design. |
Let's keep the discussion in this issue shorter. You now can put all of this, including the alternatives, into the KEP document. |
/retitle DRA: Device Binding Conditions |
Looks like this was never opted into the release. Given Aldo's approval, I am assuming it's OK to do so. Please correct me if not... /label lead-opted-in |
Hello @pohly, @KobayashiD27 👋, 1.33 Enhancements team here, With PR #5012 has been merged, all the KEP requirements are in place and merged into k/enhancements. Before the enhancement freeze, it would be appreciated if following nits could be addressed:
Aside from the minor nits mentioned above, this enhancement is all good for the upcoming enhancements freeze. 🚀 The status of this enhancement is now marked as /stage alpha |
done! thank you |
Hello @pohly @KobayashiD27 👋, v1.33 Docs Shadow here. Does this enhancement work planned for v1.33 require any new docs or modification to existing docs? If so, please follow the steps here to open a PR against dev-1.33 branch in the k/website repo. This PR can be just a placeholder at this time and must be created before Thursday 27th February 2025 18:00 PDT. Also, take a look at Documenting for a release to get yourself familiarize with the docs requirement for the release. Thank you! |
@Urvashi0109 There's nothing in it yet, but let me know if there are any corrections that need to be made. |
Hey again @KobayashiD27 👋, v1.33 Enhancements team here, Just checking in as we approach Code Freeze at 02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025. Here's where this enhancement currently stands:
For this enhancement, it looks like the following PRs need to be merged before code freeze (and we need to update the Issue description to include all the related PRs of this KEP): If you anticipate missing code freeze, you can file an exception request in advance. Also, please let me know if there are other PRs in k/k we should be tracking for this KEP. The status of this enhancement is marked as As always, we are here to help if any questions come up. Thanks! |
Hey @pohly & @KobayashiD27 👋 -- this is Udi (@Udi-Hofesh) from the 1.33 Communications Team! For the 1.33 release, we are currently in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! As you may be aware, feature blogs are a great way to communicate to users about features that fall into (but are not limited to) the following categories:
To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the website repository by Wednesday, 5th March, 2025? For more information about writing a blog, please find the blog contribution guidelines 📚 Tip Some timelines to keep in mind:
Note In your placeholder PR, use |
Hi @pohly & @KobayashiD27 👋, It's @Udi-Hofesh from 1.33 Comms Team here again! This is a gentle reminder for the feature blog deadline mentioned above, which is 02:00 UTC Wednesday, 5th March, 2025. This is in just several hours! To opt in, please let us know and open a Feature Blog placeholder PR against Tip Some timeline to keep in mind:
Note In your placeholder PR, use |
Enhancement Description
/sig scheduling
/wg device-management
k/enhancements
) update PR(s): KEP-5007: DRA Device Binding Conditions #5012k/k
) update PR(s): Implement DRA Device Binding Conditions (KEP-5007) kubernetes#130160k/website
) update PR(s): DRA Device Binding Conditions #5007 : placeholder PR website#49814Please keep this description up to date. This will help the Enhancement Team to track the evolution of the enhancement efficiently.
The text was updated successfully, but these errors were encountered: