PLEG

不熟悉PLEG(Pod Lifecycle Event Generator)的同学,可以先看下这篇文章What is PLEG?

这篇文章对pleg是什么和常见的unhealthy问题有很详细的介绍。

cni

当k8s的 cni 插件性能较差,node上的pod 数量较多(大于 80)的时候,我们常常会遇到PLEG出错的问题:

PLEG is not healthy: pleg was last seen active 6m55.488150776s ago; threshold is 3m0s

调试kuryr cni的时候,发现当openstack neutron服务压力比较大的时候。

cni这边申请和释放 port的时延会相应的增加,导致虚拟机大量堆积无效的netns,

然后就会遇到由kueblet PLEG not healthy引起的docker hang 住问题。

docker

重启 docker 和 kueblet 可以暂时解决PLEG unhealthy。

1
2
3
4
5
systemctl restart docker
systemctl restart kubelet
# do NOT use `docker rm -vf`,
# which will kill running containers
docker rm -v `docker ps -qa`

建议同时修改 kubelet 启动参数 –housekeeping-interval=30s