-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Proposal: Preempt action support topology #3995
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Box Zhang <[email protected]>
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 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 |
|
||
When topology-sensitive resources like GPUs exist, the preemption process needs to consider resource topology relationships to ensure resource allocation after preemption still satisfies original topology constraints. | ||
|
||
For example, if a node has 2 GPUs (8GB each), Pod A and Pod B each use 4GB, and Pod C needs 8GB. Direct scheduling of Pod C will fail, triggering preemption. After removing Pod A, Pod C can be scheduled, but when re-adding Pod A, topology changes might occur due to binpack strategy. At this point, Pod C can still be scheduled, ultimately leading to preemption failure due to no pods being evicted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the example here about the current situation of volcano preemption or the challenges of the current optimization solution?
type SimulateAddPodFn func(pod *api.TaskInfo, node *api.NodeInfo) error | ||
``` | ||
|
||
### Limitations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The native Kubernetes scheduler has some capability constraints in terms of preemption, and has made certain trade-offs in terms of functionality and performance. See: # limitations-of-preemption
Compared with kube-scheduler, are the functional manifestations of Volcano's affinity preemption consistent or different? If so, what are the detailed differences?
There is chinese character in the img, and the subject of each process needs to be clearly identified. |
The process is hard to understand for common users, we'd better make it more clearer, maybe we can add both desgin process and an example. |
The three Key Functions are not presented in the above process design, we can give a more detailed description. |
What's the standard of PreemptCostNodeOrder, least evicted pod mums? We should give one. |
In what case a plugin should register removal and addition func, we should give a guide. |
What type of PR is this?
/kind documentation