-
Notifications
You must be signed in to change notification settings - Fork 40.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
Store a cluster event to plugin map in SchedulerQueue #98241
Conversation
@Huang-Wei: This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/hold |
3b5ab16
to
f29bac0
Compare
f29bac0
to
610deac
Compare
The integration test seems related. I will take a look. |
Oops, forgot to add StorageClass into the defaultClusterEvent list. diff --git a/pkg/scheduler/framework/runtime/framework.go b/pkg/scheduler/framework/runtime/framework.go
index 74e97f33e56..d0500d77f9b 100644
--- a/pkg/scheduler/framework/runtime/framework.go
+++ b/pkg/scheduler/framework/runtime/framework.go
@@ -67,6 +67,7 @@ var defaultClusterEvents = []framework.ClusterEvent{
{Resource: framework.PersistentVolume, ActionType: framework.All},
{Resource: framework.PersistentVolumeClaim, ActionType: framework.All},
{Resource: framework.Service, ActionType: framework.All},
+ {Resource: framework.StorageClass, ActionType: framework.All},
}
var configDecoder = scheme.Codecs.UniversalDecoder() Should be good now. |
dea9959
to
31ecbb2
Compare
/retest |
31ecbb2
to
d4ce973
Compare
/retest |
the condition being checked is |
@alculquicondor I ran a test to compare with the previous version. Which doesn't diff a lot.
@ahg-g Code updated, and here is the latest testing result:
|
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.
It looks like, in the random case, skipping pod moves between queues heavily outweighs the event matching. LGTM
t.Run(tt.name, func(t *testing.T) { | ||
got := make(map[framework.ClusterEvent]sets.String) | ||
for _, p := range tt.plugins { | ||
fillEventToPluginMap(p, got) |
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.
Test above looks good, we can remove this one.
7a79a7b
to
6fdb1a8
Compare
Yes, and once the churn operator PR and the other 2 bug fixes get merged into integration perf test, I will build some integration benchmark tests, so that to get more practical performance results.
Done. Commits squashed. |
LGTM, but leaving official one to @ahg-g And it looks like you have to deal with the upgrade to golang 1.16 :( |
looks good, but there are still two commits in this PR. |
Yes, it's intentional to leave the benchmark test as a separate commit.
Hmm... Let me figure out the CI failure. |
It's a known failure https://kubernetes.slack.com/archives/C2C40FMNF/p1614780753136400 |
/retest |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ahg-g, Huang-Wei The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/hold cancel |
/hold |
/hold cancel |
/retest |
/retest Review the full test history for this PR. Silence the bot with an |
What type of PR is this?
/kind feature
/sig scheduling
What this PR does / why we need it:
Part of #94009.
To determine whether a system event can move particular Pods from unschedulableQ/backOff to backoffQ/activeQ, this PR stores a cluster event -> unschedulable plugins in the scheduling queue. On the other hand, if a Pod failed the scheduling with a fitError (in PreFilter, Filter or Permit), we inject the failed plugins to
PodInfo
. With these 2 info combined together, we're able to move Pods in a fine-grained manner - which I will showcase in the next PR.Which issue(s) this PR fixes:
The 2nd PR to #94009.
Special notes for your reviewer:
Does this PR introduce a user-facing change?: