kubernetes – 磁盘空间不足导致POD驱逐(eviction)

今天人肉巡检了一下kubernetes集群,发现grafana大盘上有一些failed的POD,之前没有见到过。

于是在k8s集群执行如下命令,看一下具体情况:

kubectl get pods –all-namespaces -o wide | grep -v -i running

eviction就是指POD因为资源不足被驱逐了,具体describe某个POD得知驱逐原因:

是因为ephemeral-storage不足导致的,这是因为kubelet会对node的/分区进行容量检测,默认如果使用率超过90%就会开始驱逐这个node上的POD。

实际上我们已经将docker的存储目录转移到了/data,并且挂载了一块比较大的磁盘。

然而/挂载点仅仅给了40G的空间,主要用来存系统日志等,占用率应该在10%+才对。

那么这台105的机器为啥高达76%了呢?想必是我们最近排查网络问题在这个机器上安装了不少工具,留下了不少文件导致的,所以清理一下就完事了。

磁盘空间的驱逐阈值是可以配置到kubelet启动参数的,具体可以参考:

了解到kubelet这个行为,警示我们应该对所有node的/分区进行容量监控,避免因为磁盘空间不足导致POD驱逐,一旦大规模出现这个问题,那么集群的风险就不可控了。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~