imagefs和rootfs 5

资源/指标实际对应对象统计内容典型路径是否参与 EvictionKubernetes 层级
nodefs.available 节点文件系统(Node Filesystem) 整个节点磁盘剩余空间 //var/lib/kubelet、系统日志目录等 Node
imagefs.available 镜像文件系统(Image Filesystem) 容器镜像层(只读 Layer)占用和剩余空间 /var/lib/containerd/var/lib/docker 中的镜像层 Node
containerfs 容器可写层(Writable Layer) 容器运行期间新增或修改的数据 OverlayFS upperdir 间接(通过 Ephemeral Storage) Container
ephemeral-storage Pod 临时存储资源 containerfs + logs + emptyDir Pod RootFS、日志目录、emptyDir Pod

包含关系

项目nodefsimagefscontainerfsephemeral-storage
OS 文件
/var/lib/kubelet 部分(emptyDir)
Pod 日志
emptyDir
镜像 Layer 可能包含(未拆盘时)
容器 Writable Layer 可能包含(未拆盘时)
PVC/PV 数据

Eviction 触发关系

Eviction Signal触发条件示例含义
nodefs.available < 10% 节点根盘空间不足
imagefs.available < 15% 镜像存储空间不足
containerfs.available(新版本支持) < 阈值 容器可写层所在文件系统空间不足
memory.available < 阈值 节点内存不足
pid.available < 阈值 节点 PID 不足
ephemeral-storage limit Pod 使用量 > limit Pod 临时存储超限,驱逐该 Pod

不同场景下的归属

操作nodefs 增加imagefs 增加containerfs 增加ephemeral-storage 增加
ctr image pull nginx
Pod 写 /tmp/test.log
Pod stdout 打日志
emptyDir 写入 10Gi
安装系统软件
PVC 写入数据

Kubelet 数据来源

指标数据来源主要接口主要源码位置
nodefs cAdvisor RootFsInfo() pkg/kubelet/stats/cadvisor_stats_provider.go
imagefs CRI Runtime ImageFsStats() pkg/kubelet/stats/cri_stats_provider.go
containerfs CRI Runtime ContainerStats()WritableLayer pkg/kubelet/stats/cri_stats_provider.go
ephemeral-storage Kubelet 聚合计算 PodStats 汇总 pkg/kubelet/eviction/eviction_manager.go

最终关系图

Node
├── nodefs
│   ├── OS Files
│   ├── /var/lib/kubelet
│   ├── Pod Logs
│   └── emptyDir
│
├── imagefs
│   └── Image Layers
│
└── containerfs
    └── Writable Layers

Pod Ephemeral Storage
    = containerfs
    + logs
    + emptyDir

一句话概括:

名称核心含义
nodefs 节点磁盘剩余空间
imagefs 镜像层占用空间
containerfs 容器可写层占用空间
ephemeral-storage Pod 临时存储总量(可写层+日志+emptyDir)

posted on 2026-07-14 10:09  小镇-做题家  阅读(2)  评论(0)    收藏  举报

导航