前段时间在生产环境不同时间出现了两次集群内机器不可用的现象,提示信息为Kubelet has disk pressure,该机器上的所有容器全部挂掉,且当时无法登录该虚拟机。
我们联系了运维看看机器是不是有问题,但得到的反馈是该机器除了慢没有其他问题。为了恢复生产正常运行,我们随即联系运维重启了机器,然后登录该机器开始排查问题。
在排查该机器的过程中,发现该机器刚刚出现了监控告警,告警内容为:“该机器/var磁盘使用率90%,剩949M”,我们开始关注这个/var目录,经过上网了解,/var目录是Linux系统中一个重要的系统目录,用于存储各种变量数据,包括日志文件、缓存文件、邮件和数据库等。当/var目录的使用空间达到饱和时,可能会导致系统性能下降甚至出现故障。我们便怀疑/var目录磁盘使用率过高导致该问题的主要原因。
随即我们在测试环境找了一台机器,模拟生产的硬件条件来复现该现象。不断的往/var目录下丢日志文件,当/var目录磁盘使用率达到85%时,集群果然出现报错Kubelet has disk pressure,至此确认是由/var目录磁盘使用率过高导致的该问题。
最后我们制定的解决方案为:1.由于/var目录是持续增长的,所以将磁盘使用率的监控阈值调整为60%,当监控告警时便立马清理;2.减少不必要的使用/var目录的磁盘空间。