Kubelet inode 耗尽才告警的坑
推荐指数 62.0 NO. 021 · 2026.10.06
发布2026/10/05
为什么值得看
Kubernetes Kubelet 默认仅在 inode 紧急耗尽时才触发 NodeFilesystemFilesFillingUp 告警,但此时磁盘空间可能仍充裕,导致运维人员误判为磁盘问题而忽略真正元凶。生产环境需提前配置 inode 监控阈值,避免节点因无法创建新文件而陷入雪崩。
编辑判断
这个坑在容器密度高的节点上特别常见,比如跑 CI/CD 或大量小镜像的微服务场景,每个容器层都会消耗 inode,但 df -h 看起来完全健康。很多团队用 node-exporter 的 node_filesystem_files_free 做监控,但告警阈值设得和磁盘一样宽松,等触发时已经来不及优雅驱逐了。
更稳妥的做法是把 inode 和 block 的告警拆开,inode 阈值设到 85% 甚至 80%,同时给 Kubelet 配 evictionHard 里的 imagefs.inodesFree 或 nodefs.inodesFree。如果你用 containerd,还要注意它的 snapshotter 类型——overlayfs 比 native 更省 inode,但迁移成本不低。
短期可以立刻检查现有集群的 inode 使用率分布,长期建议把 inode 纳入容量规划,和 CPU/内存一样做预留。