今天人肉巡检了一下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启动参数的,具体可以参考:
- https://tonybai.com/2017/10/16/out-of-node-resource-handling-in-kubernetes-cluster/
- https://blog.csdn.net/ywq935/article/details/103124541
- https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#eviction-signals
了解到kubelet这个行为,警示我们应该对所有node的/分区进行容量监控,避免因为磁盘空间不足导致POD驱逐,一旦大规模出现这个问题,那么集群的风险就不可控了。
如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~

1
1