docker主机CPU使用爆高的问题
docker主机经常的失去管理控制
发现CPU使用暴涨,而且管理端提示PLEG错误:Container runtime is down,PLEG is not healthy.
pleg是pod生命周期事件生成器”pod lifecycle event generator”, 的缩写。pleg会记录Pod生命周期中的各种事件,如容器的启动、终止等,这些事件会写入缓存中,同时他检测到container异常退出时,他会通知kubelet,然后重启创建该container。(https://github.com/kubernetes/kubernetes/issues/45419#issuecomment-304413713)
pleg在每次迭代检查中会 调用docker ps来检测容器状态的变化,并调用docker Inspect来获取这些容器的详细信息。
在完成每次迭代之后,它更新一个时间戳。如果时间戳有一段时间没有更新(即3分钟),则运行状况检查失败。
搜索后,很多文章提及到是由于CentOS7中的systemd版本的问题。经过检查当前的systemctl –version显示为219.
着手将一台节点进行升级。
网络上已经有高人制作了对应的升级repo,参看这里:https://copr.fedorainfracloud.org/coprs/jsynacek/systemd-backports-for-centos-7/
nstallation Instructions Make sure to edit /etc/selinux/config and put SELinux to permissive before you update, otherwise your system will not boot anymore!
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
yum update systemd
Reboot.
但是在update的时候提示这个:Protected multilib versions: systemd-libs-234-0.1.el7.centos.x86_64 != systemd-libs-219-62.el7_6.6.i686
安装了i686的这个lib,着手删除这个。
rpm -e systemd-libs-219-62.el7_6.6.i686
提示有对应的依赖。 删除依赖
[root@node1 ~]# rpm -e systemd-libs-219-62.el7_6.6.i686
error: Failed dependencies:
libsystemd.so.0 is needed by (installed) rdma-core-17.2-3.el7.i686
libsystemd.so.0(LIBSYSTEMD_209) is needed by (installed) rdma-core-17.2-3.el7.i686
libudev.so.1 is needed by (installed) rdma-core-17.2-3.el7.i686
libudev.so.1(LIBUDEV_183) is needed by (installed) rdma-core-17.2-3.el7.i686
[root@node1 ~]# rpm -e rdma-core-17.2-3.el7.i686
[root@node1 ~]# rpm -e systemd-libs-219-62.el7_6.6.i686
继续执行yum update systemd -y,成功,然后重启。
检查systemctl –version版本变为234. 观察docker运行状态一天看看是否还会存在同样的状态。