Mixing cgroupfs v1 and cgroupfs v2: finding solutions for container runtimes

Christian Brauner - Canonical

brau_ner

Note

All of this talk went over my head. The notes I've taken are probably inaccurate, wrong or at least severely lacking detail.

But I loved that we had a presentation from someone with such deep knowledge of the Linux kernel present.

Cgroups

  • Pseudo kernal filesystem following the vfs
  • colllection of processes
  • resource management and tracking (e.g. CPU, memory, disk I/O, network, etc).

croups can also do things like only allow this process to use processes 1-2.

cgroup v1

ls -al /sys/fs/cgroup.

All current container runtimes use cgroup v1.

cgroup v2

There can only be one heirarchy, distributed top down.

Did not really understand anything else beyond this point...

What does this mean for runc

Everything is fine for now, as long as your not using a vgroup v2 hiearachy or a hybrid hierarchy.

To make sure runc is not broken for you in the future

Warning: This has not been tested and verified by me yet.

Change GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub so that it looks like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.legacy_systemd_cgroup_controller=yes"

Credit: https://github.com/moby/moby/issues/28109#issuecomment-259122113