Fedora 31发布于2019年10月29日,它是第一个默认使用了Cgroup v2的主流发行版。尽管cgroup v2已经有5年的发展历史,然而包括containerd/docker/runc/kubernetes等一系列的容器相关设施的最新release版本(目前最新的kubernetes版本为1.17.0)都还不支持cgroup v2。
比如,如果尝试在Fedora 31上运行docker,它将无法正常工作:
$ docker run hello-world
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:297: applying cgroup configuration for process caused \"open /sys/fs/cgroup/docker/cpuset.cpus.effective: no such file or directory\"": unknown.
ERRO[0001] error waiting for container: context canceled
运行下面的命令,然后重启机器,这将修改内核启动参数使得Fedora 31默认使用cgroup v1
$ sudo dnf install -y grubby && \
sudo grubby \
--update-kernel=ALL \
--args=”systemd.unified_cgroup_hierarchy=0"