You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: There is a concern that the in-flight events cache may grow too large when waiting in PreBind.
445
-
To address the PreBind concern, the solution is to modify the scheduling framework to flush the in-flight events cache before PreBind.
444
+
To address this, the scheduling framework will be modified to flush the in-flight events cache before PreBind.
446
445
This prevents issues in the scheduling queue caused by keeping pods at PreBind for an extended period.
447
446
This issue will be addressed separately as outlined in kubernetes/kubernetes#129967.
448
447
@@ -451,7 +450,7 @@ This issue will be addressed separately as outlined in kubernetes/kubernetes#129
451
450
If the device attachment is successful, we expect it to take no longer than 5 minutes.
452
451
However, to account for potential update lags, we would like to set a fixed timeout for the scheduler to 10 minutes.
453
452
454
-
Even if the conditions `Type: kubernetes.io/is-attached` or `Type: kubernetes.io/attach-failed` are not updated, setting a timeout will prevent the scheduler from waiting indefinitely in the PreBind phase.
453
+
Even if the conditions indicating that the device is attached or that the attachment failed are not updated, setting a timeout will prevent the scheduler from waiting indefinitely in the PreBind phase.
455
454
456
455
#### Handling ResourceSlices Upon Failure of Attachment
457
456
@@ -486,15 +485,11 @@ driver: gpu.nvidia.com
486
485
nodeSelector: fabric1
487
486
devices:
488
487
- name: device1
489
-
attributes:
490
-
...
491
-
kubernetes.io/needs-attaching:
492
-
boolValue: "true"
488
+
UsageRestrictedToNode: true
489
+
...
493
490
- name: device2
494
-
attributes:
495
-
...
496
-
kubernetes.io/needs-attaching:
497
-
boolValue: "true"
491
+
UsageRestrictedToNode: true
492
+
...
498
493
```
499
494
500
495
The vendor's DRA kubelet plugin will also publish the devices managed by the vendor as `ResourceSlices`.
@@ -544,11 +539,12 @@ devices:
544
539
```
545
540
546
541
Composable DRA controller exposes free devices list on the fabric that is not yet connected to a node as a ResourceSlice.
547
-
Controller refreshes the ResourceSlice periodically (every 10 seconds).
542
+
Controller refreshes the ResourceSlice periodically (every 10 seconds).
548
543
This means that it reflects the latest list of devices on the fabric.
549
544
It does not "detect attach or detach to nodes and update them immediately in event handlers, etc."
550
545
This is because it is difficult for a Composable DRA running on K8s to cover all cases where a ResourceSlice needs to be updated, such as when a new device is physically added to the fabric.
551
-
We also expect vendor DRAs to periodically update the list of devices connected to the node as a ResourceSlice. This requires the rescan function to be run periodically.
546
+
We also expect vendor DRAs to periodically update the list of devices connected to the node as a ResourceSlice
547
+
This requires the rescan function to be run periodically.
552
548
553
549
Devices in composable ResourceSlice has a unique device name.
554
550
However, that the device name is not an identifying name (for example, UUID).
@@ -571,7 +567,7 @@ And then, device autoscaler tries to attach new devices.
571
567
And it also try to detach devices if they have not been used for a period of time.
572
568
This is similar to the concept of CA.
573
569
574
-
However, if CA and device autoscaler is running independently, CA may add a node with a device at the same time as the device autoscaler attaches the device.
570
+
However, if CA and device autoscaler is running independently, CA may add a node with a device at the same time as the device autoscaler attaches the device.
575
571
This is a wasted resource addition.
576
572
Therefore, there is the following idea that putting device-scale functionality in CA.
577
573
@@ -581,7 +577,7 @@ If so, the Processor instructs the attachment of the resource, using the composa
581
577
If attaching the fabric ResourceSlice does not make scheduling possible, the Processor determines whether to add a new node as usual.
582
578
583
579
After the device is attached, the vendor DRA updates the node-local ResourceSlices.
584
-
The vendor DRA needs a rescan function to update the Pool/ResourceSlice.
580
+
The vendor DRA needs a rescan function to update the Pool/ResourceSlice.
585
581
The scheduler can then assign the node-local ResourceSlice devices to the unschedulable Pod, operating the same as the usual DRA from this point.
0 commit comments