-
Notifications
You must be signed in to change notification settings - Fork 38.7k
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
nodeports: scheduler queueing hints #119176
Conversation
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. |
/assign @sanposhiho |
@sanposhiho It's ready for review. |
623e7cf
to
276e642
Compare
276e642
to
328d603
Compare
/test pull-kubernetes-e2e-gce |
328d603
to
f5fbaba
Compare
Can you take a look at it? /cc @sanposhiho |
f4d60aa
to
7f1f07e
Compare
/retest |
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
LGTM label has been added. Git tree hash: d5b987cf6c70d0e1d763130060171d279b87524b
|
@kubernetes/sig-scheduling-approvers I |
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.
/approve
/hold
to update comment
// TODO: Ideally, it's supposed to register only NodeCreated, because NodeUpdated event never means to have any free ports for the Pod. | ||
// But, we may miss NodeCreated event due to preCheck. | ||
// See: https://github.com/kubernetes/kubernetes/issues/109437 | ||
// And, we can remove NodeUpdated event once https://github.com/kubernetes/kubernetes/issues/110175 is solved. |
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.
Is there already an ongoing PR for scheduling hints for node affinity?
With that implementation, maybe we can skip nodeaffinity precheck if the SchedulingHint feature gate is enabled. And we can remove Update
here.
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.
Is there already an ongoing PR for scheduling hints for node affinity?
@alculquicondor Yes, please review #119155
With that implementation, maybe we can skip nodeaffinity precheck if the SchedulingHint feature gate is enabled. And we can remove Update here.
@sanposhiho what do you think ?
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.
maybe we can skip nodeaffinity precheck if the SchedulingHint feature gate is enabled. And we can remove Update here.
The existing preCheck
checks more than just NodeAffinity.
kubernetes/pkg/scheduler/eventhandlers.go
Line 572 in 10827a1
func preCheckForNode(nodeInfo *framework.NodeInfo) queue.PreEnqueueCheck { |
For example, unready Node is created → the Pod was failed by nodeport
, but nodeport
plugin doesn't get informed of this NodeCreated
event because preCheck filters out such events for Node which is tainted. → Node is now ready and untainted and this event should be delivered to plugins (unless other things in preCheck still reject it), but as NodeUpdate
.
This kind of scenarios could still happen. So, I'd suggest we keep it until we completely eliminate a whole preCheck.
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.
Right, so once we have the implementation for every plugin that is related to the existing prechecks, we can disable them based on the feature gate.
WDYT?
Regardless, we can proceed with this PR
/approve
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.
/hold cancel
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.
Right, so once we have the implementation for every plugin that is related to the existing prechecks, we can disable them based on the feature gate.
Yes.
Co-authored-by: Kensei Nakada <handbomusic@gmail.com> Co-authored-by: Aldo Culquicondor <1299064+alculquicondor@users.noreply.github.com>
/test pull-kubernetes-e2e-kind |
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
LGTM label has been added. Git tree hash: 872b2e065b0b7b407c100b46312d13a2013e4e6b
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: alculquicondor, carlory 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 |
What type of PR is this?
/kind feature
What this PR does / why we need it:
Which issue(s) this PR fixes:
Part of #118893
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: