Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ checklist items _must_ be updated for the enhancement to be released.

Items marked with (R) are required *prior to targeting to a milestone / release*.

- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
- [ ] (R) Design details are appropriately documented
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
- [x] (R) KEP approvers have approved the KEP status as `implementable`
- [x] (R) Design details are appropriately documented
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
- [ ] e2e Tests for all Beta API Operations (endpoints)
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
Expand Down Expand Up @@ -246,12 +246,12 @@ to implement this enhancement.

##### Unit tests

- `k8s.io/kubernetes/pkg/scheduler/backend/queue`: `2025-02-06` - `91.4`
- `k8s.io/kubernetes/pkg/scheduler/backend/queue`: `2025-09-12` - `91.4`

##### Integration tests

- [`k8s.io/kubernetes/test/integration/scheduler/queueing`](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler/queueing) - add test cases covering the scenario.
- [scheduler_perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf) - add test cases measuring performance in this scenario.
- [`k8s.io/kubernetes/test/integration/scheduler/queueing`](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler/queueing) - added `TestPopFromBackoffQWhenActiveQEmpty` that covers the scenario.
- [scheduler_perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf) - no perf test has been added to measure this particular scenario, as it's very difficult to simulate the conditions (empty active queue, pods waiting in backoff). At the same in time the available metrics for existing perf tests show that scheduling throughput has not decreased since 1.33 (when this featured was switched on as Beta).

##### e2e tests

Expand All @@ -260,7 +260,7 @@ The whole feature should be already covered by integration tests.

### Graduation Criteria

The feature will start from beta and be enabled by default, because it is an internal kube-scheduler feature and guarded by a flag.
The feature started as beta in 1.33 and has been enabled by default, because it is an internal kube-scheduler feature and guarded by a flag.

#### Alpha

Expand All @@ -274,13 +274,13 @@ N/A

#### GA

- Gather feedback from users and fix reported bugs.
- No issues have been reported in relation to this feature.

### Upgrade / Downgrade Strategy

**Upgrade**

During the beta period, the feature gate `SchedulerPopFromBackoffQ` is enabled by default, so users don't need to opt in.
After promoting to GA the feature gate `SchedulerPopFromBackoffQ` is enabled by default, so users don't need to opt in.
This is a purely in-memory feature for the kube-scheduler, so no special actions are required outside the scheduler.

**Downgrade**
Expand Down Expand Up @@ -430,6 +430,16 @@ Unknown
## Implementation History

- 6th Feb 2025: The initial KEP is submitted.
- Feb-Mar 2025: Feature is implemented in the kubernetes codebase. PRs:

#130214 Split backoffQ into backoffQ and errorBackoffQ in scheduler kubernetes

#130492 Call PreEnqueue plugins before adding pod to backoffQ kubernetes

#130680 Update backoffQ's less function to order pods by priority in windows kubernetes

#130772 Pop from backoffQ when activeQ is empty kubernetes
- 15th Sep 2025: Feature gate updated in tests, KEP updated to upgrade to GA

## Drawbacks

Expand Down
16 changes: 11 additions & 5 deletions keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,24 @@ owning-sig: sig-scheduling
status: implementable
creation-date: 2025-02-06
reviewers:
- dom4ha
- sanposhiho
- "@dom4ha"
- "@sanposhiho"
approvers:
- alculquicondor
- "@dom4ha"
- "@sanposhiho"
prr-approval:
stable:
milestone: "v1.35"
reviewer: "@dom4ha"

stage: beta
stage: stable
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


latest-milestone: "v1.33"
latest-milestone: "v1.35"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
beta: "v1.33"
stable: "v1.35"

# The following PRR answers are required at alpha release
# List the feature gate name and the components for which it must be enabled
Expand Down