Skip to content

kernel memcg notification enabled via experimental flag#38258

Merged
k8s-github-robot merged 2 commits intokubernetes:masterfrom
derekwaynecarr:kernel-memcg-flag
Dec 7, 2016
Merged

kernel memcg notification enabled via experimental flag#38258
k8s-github-robot merged 2 commits intokubernetes:masterfrom
derekwaynecarr:kernel-memcg-flag

Conversation

@derekwaynecarr
Copy link
Copy Markdown
Member

Kubelet integrates with kernel memcg notification API if and only if enabled via experimental flag.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Dec 7, 2016
@k8s-reviewable
Copy link
Copy Markdown

This change is Reviewable

@derekwaynecarr
Copy link
Copy Markdown
Member Author

/cc @saad-ali @thockin @vishh @dchen1107 @mtaufen @eparis -- this is WIP while i generate a bunch of files, but this would be the PR that would gate integration with this kernel feature. hope to finish this up this evening.

@derekwaynecarr derekwaynecarr force-pushed the kernel-memcg-flag branch 2 times, most recently from efea36c to 451fe67 Compare December 7, 2016 03:37
@derekwaynecarr derekwaynecarr added cherrypick-candidate release-note Denotes a PR that will be considered when it comes time to generate release notes. labels Dec 7, 2016
@derekwaynecarr derekwaynecarr added this to the v1.5 milestone Dec 7, 2016
@k8s-github-robot k8s-github-robot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Dec 7, 2016
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GCI GKE smoke e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot gci gke e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GKE smoke e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot cvm gke e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins Kubemark GCE e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot kubemark e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GCI GCE e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot gci gce e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GCE e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot cvm gce e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GCE etcd3 e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot gce etcd3 e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins unit/integration failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot unit test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins GCE Node e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot node e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins CRI GCE Node e2e failed for commit 451fe67. Full PR test history.

The magic incantation to run this job again is @k8s-bot cri node e2e test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

@vishh vishh self-assigned this Dec 7, 2016
@vishh
Copy link
Copy Markdown
Contributor

vishh commented Dec 7, 2016

lgtm

if obj.EvictionPressureTransitionPeriod == zeroDuration {
obj.EvictionPressureTransitionPeriod = metav1.Duration{Duration: 5 * time.Minute}
}
if obj.ExperimentalKernelMemcgNotification == nil {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ExperimentalKernelMemcgNotification is a bool, not a *bool.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

yeah, i just fixed a push with that. i was still messing w/ generators and just threw this up to make people aware i was working on it.

fs.DurationVar(&s.EvictionPressureTransitionPeriod.Duration, "eviction-pressure-transition-period", s.EvictionPressureTransitionPeriod.Duration, "Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.")
fs.Int32Var(&s.EvictionMaxPodGracePeriod, "eviction-max-pod-grace-period", s.EvictionMaxPodGracePeriod, "Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. If negative, defer to pod specified value.")
fs.StringVar(&s.EvictionMinimumReclaim, "eviction-minimum-reclaim", s.EvictionMinimumReclaim, "A set of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure.")
fs.BoolVar(&s.ExperimentalKernelMemcgNotification, "experimental-kernel-memcg-notification", s.ExperimentalKernelMemcgNotification, "If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling.")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I wonder if this would be better guarded by a feature gate than a flag; with a feature gate we don't have a new flag that needs to be removed later. Just a thought.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

i think its fair to assume that not all kernels are equal and there could be some distros that require it to be off so a flag not tied to feature gate seems right in the long run?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah true. This is the kind of switch that might need to be in for the long haul, due to the kernel issue. A flag is probably the appropriate solution.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we put a note in this flag that it may cause soft lockups due to an unidentified kernel issue? I've heard some worries that we don't want people trying to "make Kubernetes faster" by turning this on without realizing it could cause other problems.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

we haven't proven that it causes soft lockups have we?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We did, in some sense. Soft lockups are kernel problem, so proper fix is beyond our reach, but we did prove that this triggers soft lockup on debian in CVM. @dchen1107

@derekwaynecarr
Copy link
Copy Markdown
Member Author

i am having some trouble updating generated-protobuf and will finish this up in the morning.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Jenkins verification failed for commit cd099531c7dd8ca0d3ca6da1747b2ad161f2385b. Full PR test history.

The magic incantation to run this job again is @k8s-bot verify test this. Please help us cut down flakes by linking to an open flake issue when you hit one in your PR.

This was referenced Dec 7, 2016
@dims
Copy link
Copy Markdown
Member

dims commented Dec 7, 2016

@derekwaynecarr looks like running hack/update-openapi-spec.sh updates a few more files.

@derekwaynecarr
Copy link
Copy Markdown
Member Author

@dims -- yeah, i had docker issues last night that prevented me from running the full hack/update suite. i just fixed that up locally, and the generation stuff is all running now, should have a second commit for this pr soon with generated stuff.

@derekwaynecarr derekwaynecarr added the priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. label Dec 7, 2016
@k8s-github-robot k8s-github-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Dec 7, 2016
@derekwaynecarr derekwaynecarr changed the title WIP: kernel memcg notification enabled via experimental flag kernel memcg notification enabled via experimental flag Dec 7, 2016
@derekwaynecarr
Copy link
Copy Markdown
Member Author

All things green.

@eparis eparis added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Dec 7, 2016
@mtaufen mtaufen added the do-not-merge DEPRECATED. Indicates that a PR should not merge. Label can only be manually applied/removed. label Dec 7, 2016
@mtaufen
Copy link
Copy Markdown
Contributor

mtaufen commented Dec 7, 2016

There is still some question as to whether this is in fact the root cause. See #37853 for more details; @thockin was able to reproduce the issue by thrashing a service and pods even after reverting 1ec69f6 and 2583116.

@mtaufen
Copy link
Copy Markdown
Contributor

mtaufen commented Dec 7, 2016

We don't want to start merging things until we are more confident in the root cause.

@derekwaynecarr
Copy link
Copy Markdown
Member Author

@mtaufen - i am still biased to take the gate since we know it caused problems with older ubuntu trusty images.

@dchen1107
Copy link
Copy Markdown
Member

LGTM

cc/ @fabioy we should make sure --experimental-kernel-memcg-notification is false in GKE production.

@dchen1107 dchen1107 removed the do-not-merge DEPRECATED. Indicates that a PR should not merge. Label can only be manually applied/removed. label Dec 7, 2016
@k8s-github-robot
Copy link
Copy Markdown

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

@k8s-github-robot
Copy link
Copy Markdown

Automatic merge from submit-queue (batch tested with PRs 38318, 38258)

@k8s-github-robot k8s-github-robot merged commit ca04936 into kubernetes:master Dec 7, 2016
@saad-ali
Copy link
Copy Markdown
Member

saad-ali commented Dec 7, 2016

@derekwaynecarr This merged, can you please prepare a cherry pick to the 1.5 branch.

@derekwaynecarr
Copy link
Copy Markdown
Member Author

@saad-ali see #38296

@saad-ali
Copy link
Copy Markdown
Member

saad-ali commented Dec 8, 2016

Ah perfect, will get that merged.

@saad-ali saad-ali added the cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. label Dec 8, 2016
@k8s-cherrypick-bot
Copy link
Copy Markdown

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

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. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.