现象
kubernetes版本是1.19.1, 某个节点上的pod被驱逐, 查看原因后发现是磁盘压力导致, 但是系统磁盘一直很充足. 继续查看/var/log/messages
日志后发现 一直报错
kubelet: E0501 03:43:10.707753 22817 summary_sys_containers.go:47] Failed to get system container stats for "/system.slice/docker.service": failed to get cgroup stats for "/system.slice/docker.service": failed to get container info for "/system.slice/docker.service": unknown container "/system.slice/docker.service"
原因
kubernetes和docker版本兼容性问题
解决办法
kubelet配置文件在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
或者 /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
注意:本文以centos7操作系统为例,不同操作系统kubelet配置文件路径可能不一致。可以用
find / -name 10-kubeadm.conf
命令查找配置文件路径
在10-kubeadm.conf
配置文件中增加一行环境配置
Environment="KUBELET_CGROUP_ARGS=--runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice"
并在启动命令尾部添加变量 $KUBELET_CGROUP_ARGS
如下:
ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_CGROUP_ARGS $KUBELET_EXTRA_ARGS
保存之后,执行 systemctl daemon-reload && systemctl restart kubelet
重启kubelet服务即可