-
Notifications
You must be signed in to change notification settings - Fork 38.9k
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
Revert "Remove rescheduler and corresponding tests from master" #64592
Revert "Remove rescheduler and corresponding tests from master" #64592
Conversation
@@ -0,0 +1,133 @@ | |||
/* | |||
Copyright 2016 The Kubernetes Authors. |
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.
2018
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.
that's a revert PR, let keep it as is :)
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.
OK, make sense!
testutils "k8s.io/kubernetes/test/utils" | ||
imageutils "k8s.io/kubernetes/test/utils/image" | ||
|
||
. "github.com/onsi/ginkgo" |
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.
above k8s.io*
Bobby's concern is a good point :). Anyway , let me also check whether it is enabled specially in test-infra :). If not enabled, I think that's safe for us to remove it. BTW, did you grep yaml files to see whether we need replace critical pod with priority? |
That is correct.
I believe you are talking about critical pod annotation, as of now, by definition a critical pod is one which has either critical pod annotation or |
Yes, that's great if we already defined. |
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.
/lgtm
As Revi said, we have already changed our code to recognize system-node-critical and system-cluster-critical priorities as "critical". The annotation still works as well (the code is not removed). We have also changed critical pod manifests and have added appropriate priority class names in addition to the critical annotation. |
/retest |
@ravisantoshgudimetla Please add a release note (NONE?) |
Re-notes, prefer to "Revert #64364 to resurrect rescheduler." LGTM, thanks very much :) |
/retest |
ping @ixdy @eparis @Random-Liu for review/approval. |
ping |
/approve |
/assign @mikedanese @yujuhong |
/approve |
[MILESTONENOTIFIER] Milestone Pull Request: Up-to-date for process @bsalamat @mikedanese @ravisantoshgudimetla @yujuhong Pull Request Labels
|
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.
Why was the rescheduler deprecated/removed and what conditions changed such that the rescheduler is needed again?
@@ -141,7 +141,7 @@ func (sp SyncPodType) String() string { | |||
} | |||
|
|||
// IsCriticalPod returns true if the pod bears the critical pod annotation key or if pod's priority is greater than | |||
// or equal to SystemCriticalPriority. Both the default scheduler and the kubelet use this function | |||
// or equal to SystemCriticalPriority. Both the rescheduler(deprecated in 1.10) and the kubelet use this function |
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.
Comment should be fixed since rescheduler is no longer deprecated.
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.
So, I think the statement is still valid just that we will delete rescheduler in next release. This is a stop gap solution.
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.
What's the long term fix (and if we rely on a deprecated feature, is it really deprecated?)
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.
Please find my comments below(#64592 (comment)). While I am not familiar with deprecation policies and this may not sound like exact reason, last release had rescheduler deprecated too but we relied on it for DS pods.
var totalMillicores int | ||
|
||
BeforeEach(func() { | ||
framework.Skipf("Rescheduler is being deprecated soon in Kubernetes 1.10") |
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.
The test is always skipped?!
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.
I will add a correct test in another PR.
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.
Why adding the test back if we always skip it?
Thanks @yujuhong for review.
Default scheduler is supposed to do preemptions for all the pods there by eliminating need for rescheduler.
For pods generated by DS controller, the preemption is not happening as DS controller schedules its own pods, so we have a PR to change the behaviour of DS controller so that its pods are scheduled by default scheduler(#63223) but this feature is still in alpha making DS controller to schedule its own pods instead of default scheduler. We were initially hoping to make this beta but since the code-path was not sufficiently tested scheduling/apps sigs have decided to make it alpha. With this in picture, we had to bring back rescheduler. More explaination in here: (#63223 (comment)) |
@ravisantoshgudimetla thanks for the explanation! Could you create an issue with the explanation and plan to remove the rescheduler? Assuming the tests will be removed/updated, the PR lgtm. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bsalamat, eparis, ixdy, ravisantoshgudimetla, yujuhong 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 |
Forgot to mention, could you add a link to the issue in your release note? |
Automatic merge from submit-queue (batch tested with PRs 63453, 64592, 64482, 64618, 64661). If you want to cherry-pick this change to another branch, please follow the instructions here. |
@ravisantoshgudimetla: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. I understand the commands that are listed here. |
Hello there! @ravisantoshgudimetla I'm Zach Arnold working on Docs for the 1.11 release. This PR was identified as one needing some documentation in the https://github.com/kubernetes/website repo around your contributions (thanks by the way!) When you have some time, could you please modify/add/remove the relevant content that needs changing in our documentation repo? Thanks! Please let me or my colleague Misty know (@zparnold/@misty on K8s Slack) if you need any assistance with the documentation. |
@zparnold Apologies for not getting back earlier. I already have updated documents with these changes to rescheduler. |
Thanks!
…On Tue, Jun 26, 2018 at 7:21 AM RaviSantosh Gudimetla < ***@***.***> wrote:
@zparnold <https://github.com/zparnold> Apologies for not getting back
earlier. I already have updated documents with these changes to rescheduler.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#64592 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AE81SKuM1pHW8bznQ9YFMGBeiGUTO7tOks5uAkOBgaJpZM4UWAIk>
.
|
Reverts #64364
After discussing with @bsalamat on how DS controllers(ref: #63223 (comment)) cannot create pods if the cluster is at capacity and they have to rely on rescheduler for making some space, we thought it is better to
So, I am reverting this PR now. Step 2, 3 above are going to be in rescheduler.
/cc @bsalamat @aveshagarwal @k82cn
Please let me know your thoughts on this.