节点 nodefs 使用率到 91%,kubelet 开始驱逐 Pod,事件里写 The node had condition: DiskPressure,业务只提前了 5 分钟收到告警。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,kubelet 默认在 nodefs.available 低于 15% 时打 DiskPressure 并驱逐,镜像层和容器日志都算在 nodefs 里。旧镜像没清理,日志又没限大小,占用会一直往上走。
「节点磁盘压力驱逐」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。改完顺手把文档补一句,省得下次自己重新推一遍。
df -h /var/lib/kubelet /var/lib/containerd crictl rmi --prune kubectl describe node node-3 | grep -A5 Conditions
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
具体做法是,先看 df -h 和 du 找出是镜像目录还是日志目录;用 crictl rmi --prune 清掉没被引用的镜像;给容器日志配 max-size 和 max-file 别用默认无限写;给 Pod 加 ephemeral-storage 的 requests 和 limits 避免单个 Pod 吃满。
最后用这个标准收尾,nodefs 使用率降到 70% 以下 DiskPressure 变成 False 驱逐事件停止。
