Skip to content
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

kubelet: send all recevied pods in one update #23141

Merged
merged 1 commit into from
Mar 18, 2016

Conversation

yujuhong
Copy link
Contributor

The kubelet sync loop relies on getting one update as the signal that the
specific source is ready. This change ensures that we don't send multiple
updates (ADD, UPDATE) for the first batch of pods. This is required to prevent
the cleanup routine from killing pods prematurely.

This fixes one issue seen in #23104

@k8s-github-robot
Copy link

Labelling this PR as size/S

@k8s-github-robot k8s-github-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Mar 17, 2016
@k8s-bot
Copy link

k8s-bot commented Mar 17, 2016

GCE e2e build/test passed for commit 75dfc2249859d51e8eaaaec176538adbfc7f53ba.

// this is an add
addPods = append(addPods, ref)
}
addPods = append(addPods, ref)
Copy link
Member

Choose a reason for hiding this comment

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

@yujuhong nit: maybe add a TODO or file an issue about the original issue of pod rejection?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done.

Copy link
Member

Choose a reason for hiding this comment

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

Based on your old comment, with this change, some existing pods might be rejected by admission process if there is over-commitment?

Copy link
Member

Choose a reason for hiding this comment

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

Ahh, I saw your comment below. But I am not 100% convinced the change is safe here.

Copy link
Member

Choose a reason for hiding this comment

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

@dchen1107 FYI, This part of code is introduced in #18546

Copy link
Member

Choose a reason for hiding this comment

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

@dchen1107 In fact, the original pod rejection bug was there for a while. Yuju tried to fix it with #18546, but introduced one of the issues in #23104. This PR just recover the old behavior.

If you think we should still fix the old bug, maybe we could try some other ways like: #18546 (comment)

@Random-Liu
Copy link
Member

LGTM with a nit.

The kubelet sync loop relies on getting one update as the signal that the
specific source is ready. This change ensures that we don't send multiple
updates (ADD, UPDATE) for the first batch of pods. This is required to prevent
the cleanup routine from killing pods prematurely.
@yujuhong
Copy link
Contributor Author

/cc @dchen1107, we should get this in v1.2.

@Random-Liu Random-Liu added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 17, 2016
@k8s-bot
Copy link

k8s-bot commented Mar 17, 2016

GCE e2e build/test passed for commit deafa44.

@k8s-cherrypick-bot
Copy link

Removing label cherrypick-candidate because no release milestone was set. This is an invalid state and thus this PR is not being considered for cherry-pick to any release branch. Please add an appropriate release milestone and then re-add the label.

@yujuhong yujuhong added this to the v1.2 milestone Mar 17, 2016
@Random-Liu Random-Liu removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 18, 2016
@Random-Liu
Copy link
Member

Offline discussed with @dchen1107 , removed LGTM for a little more discussion.

@dchen1107
Copy link
Member

Discussed with @yujuhong offline. This change reset kubelet's behavior to the old behavior so that kubelet won't prematurely kill existing pods. But this introduces back the issue which might be caused by a very small race windows: several pods are running and apiserver sends Kubelet a new request, and Kubelet is restart. In this case, running pods might be killed due to fail the feasibility check.

But I think the above issue should be very rare and eventually the problem should be properly addressed once we introduced eviction cost #22212

@dchen1107 dchen1107 added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 18, 2016
@k8s-github-robot
Copy link

@k8s-bot test this [submit-queue is verifying that this PR is safe to merge]

@k8s-bot
Copy link

k8s-bot commented Mar 18, 2016

GCE e2e build/test passed for commit deafa44.

@k8s-github-robot
Copy link

@k8s-bot test this [submit-queue is verifying that this PR is safe to merge]

@k8s-bot
Copy link

k8s-bot commented Mar 18, 2016

GCE e2e build/test passed for commit deafa44.

@k8s-github-robot
Copy link

Automatic merge from submit-queue

k8s-github-robot pushed a commit that referenced this pull request Mar 18, 2016
Auto commit by PR queue bot
@k8s-github-robot k8s-github-robot merged commit 61b9a21 into kubernetes:master Mar 18, 2016
@bgrant0607 bgrant0607 added the cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. label Mar 23, 2016
eparis pushed a commit to eparis/kubernetes that referenced this pull request Mar 24, 2016
Auto commit by PR queue bot
(cherry picked from commit 61b9a21)
@bgrant0607 bgrant0607 added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed release-note Denotes a PR that will be considered when it comes time to generate release notes. labels Mar 24, 2016
@k8s-cherrypick-bot
Copy link

Commit e2ad6d7 found in the "release-1.2" branch appears to be this PR. Removing the "cherrypick-candidate" label. If this s an error find help to get your PR picked.

AlainRoy pushed a commit to vmware-archive/kubernetes-archived that referenced this pull request Mar 29, 2016
Auto commit by PR queue bot
(cherry picked from commit 61b9a21)
@yujuhong yujuhong deleted the fix_race branch April 22, 2016 17:35
alena1108 pushed a commit to rancher/kubernetes that referenced this pull request May 20, 2016
Auto commit by PR queue bot
(cherry picked from commit 61b9a21)
shyamjvs pushed a commit to shyamjvs/kubernetes that referenced this pull request Dec 1, 2016
Auto commit by PR queue bot
(cherry picked from commit 61b9a21)
shouhong pushed a commit to shouhong/kubernetes that referenced this pull request Feb 14, 2017
Auto commit by PR queue bot
(cherry picked from commit 61b9a21)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants