kubernetes: [Umbrella] Skip Filter plugins when coupled PreFilter plugin returns `Skip` status

What would you like to be added?

It’s spawned from https://github.com/kubernetes/kubernetes/issues/107556.

After https://github.com/kubernetes/kubernetes/pull/114125 gets merged, the scheduler skips the plugin in Filter, if that plugin return Skip in PreFilter. In other words, the plugin can return Skip when it doesn’t do anything on Pod’s scheduling.

For example, if the pod doesn’t have any inter-pod affinity, the inter-pod affinity plugin PreFilter can return Skip, and the scheduler won’t run the inter-pod affinity plugin Filter.

Here, I just listed all filter plugins, not all of them may not need to return Skip in PreFilter though. Assignee, please make sure your plugin really needs to return Skip or not. Please feel free to assign what you’d like to work on. And please comment in this issue before starting to work on so that we can avoid many people from working on the same thing!

Why is this needed?

The scheduler can know which plugins it really needs/doesn’t need to run to get the scheduling result. It’d contribute to the scheduling performance.

/sig scheduling /assign

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 2
  • Comments: 29 (25 by maintainers)

Commits related to this issue

Most upvoted comments

@utam0k Thanks, just assigned it to you!

@sanposhiho Can I take it?

@sanposhiho I think NodeResourceFit does not need to implement too.

@sivchari For NodeUnschedulable, agree. Marked it as done. But, for NodePorts, it can return Skip when no container has Ports.

ok we can get started on the work now then

@sanposhiho Sorry, but I can’t find the time to try this PR😭 Please allow me to unassign.

@sanposhiho Please assign me to NodePorts and NodeUnschedulable.

I’m working on NodeResourceFit now,I’m interested in it.

/assign

👍

/assign @utam0k

I’ll handle the TaintToleration plugin. /assign

VolumeZone can use skip when pod has no topology labels. VolumeRestriction can use skip when pod has no volumes? And also, since we’re optimizing volumebinding in #114098, I think I can do this for volumebinding in that pr.

I’ll handle these three plugins after #114125 being merged. /assign