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)