支持使用cgroupv2系统的内核最低版本为4.15,推荐使用的内核版本为5.2以上,
本文yum升级的内核为5.19。
推荐的 systemd 版本为 244 或更高版本。较旧的 systemd 不支持cpuset
控制器委派。
本文yum升级的systemd版本为234
背景:k8s cgroup v2
参考链接:
runc/cgroup-v2.md at main · opencontainers/runc · GitHub
升级systemd 234(yum升级)
Make sure to edit /etc/selinux/config and put SELinux to permissive before you update, otherwise your system will not boot anymore!
(实测关闭selinux也可以)
wget https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/repo/epel-7/jsynacek-systemd-backports-for-centos-7-epel-7.repo -O /etc/yum.repos.d/jsynacek-systemd-centos-7.repo --no-check-certificate
yum update systemd
此时因为内核没有重新编译,systemd版本不生效
升级/重新编译内核
升级/重新编译内核,systemd版本才会更新成功
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
grub2-set-default 0
重启主机
确认内核版本和systemd版本
确认内核
#uname -a
确认内核是否支持
#grep cgroup /proc/filesystems
确认systemd版本
#dmesg | grep systemd
准备工作完毕,开始切换cgroup版本
修改grub文件
#vim /etc/default/grub
GRUB_CMDLINE_LINUX="cgroup_no_v1=all systemd.unified_cgroup_hierarchy=1"
#grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
重启主机
确认是否在使用cgroup v2,有内容代表已经使用cgroup v2了
#cat /sys/fs/cgroup/cgroup.controllers
验证系统的cgroup版本:stat -fc %T /sys/fs/cgroup/
cgroup v2,输出为 cgroup2fs。【本文显示的不是这个,但是下面的docker已经自动切换为v2了】
安装docker,查看docker cgroup
#docker info | grep -i cgroup