Description
Summary
Currently, the karmada-scheduler
operates based on a First-In-First-Out scheduling order. In some real-world scenarios, like AI training, some jobs are more critical than others and require preferential treatment in terms of scheduling and resource allocation.
We need the feature to enable users to specify the importance of an application. Applications with higher priority are scheduled ahead of other applications with lower priority. When member clusters do not have enough capacity for running a high priority application, the scheduler preempts and removes lower priority applications in order to make room for the high priority application.
Proposal:
Author:
- @LeonZh0u
- @seanlaii
- @wengyao04
- @whitewindmills
- @zclyne (Yifan Zhang)
References:
- [Scheduler] about priority scheduling #4938
- Proposal in Google Doc: https://docs.google.com/document/d/1MixmgLwnmiRrukyFP25JvE2hqiqB3f_JKT12tXiOsbc/edit#
Iteration Tasks -- Part-1: Scheduling based on application priority:
- API change: Introduce
priority class
toPropagationPolicy
(@seanlaii, Add priorityClassName in PropagationPolicy & ClusterPropagationPolicy #5962) - API change: Introduce
priority
toResourceBinding
(@seanlaii, Add Priority and PreemptionPolicy fields in ResourceBinding #5963) - Feature gate: Introduce a feature gate for this feature. (@LeonZh0u)
- Controller: Build application priority when creating
ResourceBinding
(@LeonZh0u ) - webhook: Introduce validation to restrict PriorityClass modification
- scheduler: Introduce PriorityQueue to replace the current RateLimitedQueue. (@whitewindmills)
- E2E tests
- Documentation
Iteration Tasks -- Part-2: Preemption in case of member clusters lack of capacity:
- API change: Introduce preemptionPolicy to
ResourceBinding
- TBD
Welcome Join us
If anyone is interested in this feature or would like to participate in its development, please leave a comment in this issue to claim the task you are interested in.
Note that this feature is still under discussion, and the listed iteration tasks might be subject to change.
Metadata
Assignees
Type
Projects
Status
Planned In Release 1.13