事件现象

从elk中看到集群event事件中有很多Pod 处于Evicted状态,报错信息如ephemeral local storage usage exceeds the total limit of containers 100 Mi ,查看异常节点kubectl get pods -A|grep -v "Running"集群存在大量未回收的异常pod

问题排查

这里通过Prometheus 查询临时存储使用情况sum by(namespace, pod) (container_fs_usage_bytes{container="app"}) / sum by(namespace, pod) (kube_pod_container_resource_limits{container="app",resource="ephemeral_storage"}) 监控查看pod临时存储确实达到资源限制,这里资源限制为100 Mi,进入健康状态pod里面与新pod资源使用对比发现未排查出有明显异常的存储信息; 接下来进入pod节点所在宿主机,查看容器相关信息,docker inspect ID,查看到容器日志大小,这里发现容器日志大小为80 Mi,与监控上查到的存储占比一致,查看宿主机docker配置日志大小,发现其保存周期大于服务设置的限制存储大小;

问题修复

修改docker服务日志留存大小为10Mi,停止调度节点并驱逐,重启docker,查看监控没有异常事件,问题修复;