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

cluster: use systemd cgroup driver for cgroupv2 #111231

Merged
merged 1 commit into from
Jul 21, 2022

Conversation

bobbypage
Copy link
Member

What type of PR is this?

/kind feature

What this PR does / why we need it:

  • Detect if image is using cgroupv2
  • Configure both kubelet and containerd to use systemd cgroup driver
    when running under cgroupv2

Systemd cgroup driver is recommended to be used when running on
cgroupv2. It is also the default in moby
moby/moby#40846

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


* Detect if image is using cgroupv2
* Configure both kubelet and containerd to use systemd cgroup driver
  when running under cgroupv2

Systemd cgroup driver is recommended to be used when running on
cgroupv2. It is also the default in moby
moby/moby#40846

Signed-off-by: David Porter <david@porter.me>
@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. kind/feature Categorizes issue or PR as related to a new feature. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 18, 2022
@k8s-ci-robot
Copy link
Contributor

@bobbypage: This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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.

@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 18, 2022
@bobbypage
Copy link
Member Author

/sig node

@k8s-ci-robot k8s-ci-robot added sig/node Categorizes an issue or PR as relevant to SIG Node. area/provider/gcp Issues or PRs related to gcp provider sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 18, 2022
@bobbypage
Copy link
Member Author

/assign @cheftako

@bobbypage bobbypage marked this pull request as draft July 19, 2022 00:15
@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 19, 2022
@bobbypage
Copy link
Member Author

/test pull-kubernetes-e2e-gce-ubuntu-containerd

@bobbypage
Copy link
Member Author

/retest


# Use systemd cgroup driver when running on cgroupv2
local systemdCgroup="false"
if [[ "${CGROUP_CONFIG-}" == "cgroup2fs" ]]; then
Copy link
Member

Choose a reason for hiding this comment

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

Might be good to add a default value in config-default.sh

Copy link
Member Author

Choose a reason for hiding this comment

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

I thought about it, but I don't think it makes sense in this context.

The issue is that we want to default to the systemd cgroup driver when running on cgroupv2 OS image. config-default.sh sets defaults ahead of time for deployment. At that time, we don't know ahead if the OS image will be cgroupv2 enabled or not.

As a result, this check is done when the VM actually boots which is when we can detect the cgroup configuration. Let me know what you think and if that makes sense.

@bobbypage
Copy link
Member Author

/test pull-kubernetes-e2e-gce-ubuntu-containerd

@bobbypage bobbypage marked this pull request as ready for review July 19, 2022 06:08
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 19, 2022
@bobbypage
Copy link
Member Author

/retest

@pacoxu pacoxu added this to Triage in SIG Node PR Triage Jul 20, 2022
@cheftako
Copy link
Member

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 21, 2022
@cheftako
Copy link
Member

/priority important-soon

@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 21, 2022
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bobbypage, cheftako

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 21, 2022
@bobbypage
Copy link
Member Author

/retest

1 similar comment
@bobbypage
Copy link
Member Author

/retest

@k8s-triage-robot
Copy link

The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass.

This bot retests PRs for certain kubernetes repos according to the following rules:

  • The PR does have any do-not-merge/* labels
  • The PR does not have the needs-ok-to-test label
  • The PR is mergeable (does not have a needs-rebase label)
  • The PR is approved (has cncf-cla: yes, lgtm, approved labels)
  • The PR is failing tests required for merge

You can:

/retest

@k8s-ci-robot k8s-ci-robot merged commit a8da99c into kubernetes:master Jul 21, 2022
SIG Node PR Triage automation moved this from Triage to Done Jul 21, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.25 milestone Jul 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/provider/gcp Issues or PRs related to gcp provider cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note-none Denotes a PR that doesn't merit a release note. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. sig/node Categorizes an issue or PR as relevant to SIG Node. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

4 participants