Skip to content

Abstract preemption algorithm to work on preemptor and domains#136577

Closed
vshkrabkov wants to merge 1 commit intokubernetes:masterfrom
vshkrabkov:feature/abstract-preemption-alg-preemptor-domains
Closed

Abstract preemption algorithm to work on preemptor and domains#136577
vshkrabkov wants to merge 1 commit intokubernetes:masterfrom
vshkrabkov:feature/abstract-preemption-alg-preemptor-domains

Conversation

@vshkrabkov
Copy link
Copy Markdown
Contributor

@vshkrabkov vshkrabkov commented Jan 27, 2026

What type of PR is this?

/kind feature

What this PR does / why we need it:

This PR represents the foundational step toward enabling Workload-Aware Preemption (e.g., PodGroups) in the Kubernetes Scheduler.

Based on review feedback and the complexities of decoupling the workload-aware preemption from the existing preemption.Interface, this PR focuses strictly on delivering the core abstractions needed for the future workload-aware algorithm, keeping it scoped to:

  1. Type Definitions: Introduces Preemptor, Domain, and Victim interfaces. This provides a unified set of abstractions, allowing the scheduler to evaluate preemption beyond just "Pod vs Node".
  2. Domain-Based Victim Selection: Modified SelectVictimsOnNode to operate on a Domain. Crucially, this updates the victim selection logic to support victims spanning multiple nodes, which is required for scaling Pod-by-Pod preemption against PodGroups. While the Preemptor abstraction is added, default_preemption currently continues to assume it operates solely on a single pod as the preemptor.

Building the full workload-aware algorithm and extending it to work with full PodGroup preemptors will follow in subsequent PRs.

Which issue(s) this PR is related to:

KEP: kubernetes/enhancements#5710

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/test area/workload-aware Categorizes an issue or PR as relevant to Workload-aware and Topology-aware scheduling subprojects. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. needs-kind Indicates a PR lacks a `kind/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note-none Denotes a PR that doesn't merit a release note. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

Archived in project
Status: Closed
Status: Closed / Done
Status: Closed
Status: Closed
Status: Closed

Development

Successfully merging this pull request may close these issues.