systemd与cgroupfs都是CGroup管理器。systemd是大多数Linux发行版原生的。当选择systemd作为Linux发行版的init system时,init proccess生成并使用root控制组
(/sys/fs/cgroup),并充当CGroup管理器。systemd与CGroup紧密集成,并为每个system unit分配一个CGroup。
在部署kubernetes集群时候,如果将docker runtime与kubelet的CGroup驱动配置为cgroupfs,与systemd一起使用则意味着系统中存在两个CGroup管理器。单个
CGroup管理器简化了资源分配视图,并且默认情况下对可用和正在使用的资源有一致的视图。但当一个系统上有两个CGroup管理器时,将得到两个资源视图,这样在资源紧张时,系统将变得不稳定。
1,更改docker runtime的CGroup驱动
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
2,更改kubelet的CGroup驱动(配置文件位于/var/lib/kubelet/config.yaml)