You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测量K8s集群中每个容器的临时存储空间使用情况?

测量K8s容器磁盘空间的方法

下面是几个实用的方法,帮你获取每个容器的磁盘使用情况,方便设置合理的resources参数:

1. 直接用kubectl命令查询

这是最直接的方式,不需要额外工具:

  • 查看容器内指定路径的磁盘使用:
    kubectl exec <pod名称> -c <容器名称> -- df -h /
    
    替换<pod名称>和<容器名称>,就能看到容器根目录的磁盘占用、可用空间等信息。
  • 统计容器内某目录的实际文件大小:
    kubectl exec <pod名称> -c <容器名称> -- du -sh /app
    
    适合确认特定业务目录的存储空间消耗。

2. 利用Prometheus + cAdvisor获取容器级磁盘指标

你之前用cAdvisor没找到容器级数据,其实它本身就暴露了容器维度的磁盘指标,比如container_fs_usage_bytes(容器文件系统已用字节数)、container_fs_limit_bytes(容器文件系统总容量)。
用PromQL可以轻松聚合查询:

sum(container_fs_usage_bytes{container!="", pod!=""}) by (pod, container)

通过这个指标,你可以长期监控容器的磁盘使用趋势,为设置ephemeral-storage的requests和limits提供数据支撑。

3. 用可视化工具快速查看

  • Lens:作为K8s的桌面IDE,它在Pod详情页会直接展示每个容器的磁盘使用量,不用敲命令就能直观看到数据。
  • Prometheus Grafana面板:导入现成的K8s容器监控面板,就能在图表里看到每个容器的磁盘占用变化,方便做趋势分析。

4. 通过容器运行时查询

如果能访问集群节点,也可以直接通过容器运行时查看:

  • 先获取容器ID:
    kubectl get pod <pod名称> -o jsonpath='{.status.containerStatuses[*].containerID}'
    
  • 用docker(或containerd)查询容器磁盘占用:
    docker inspect <容器ID> --format '{{.GraphDriver.Data.Size}}'
    
    这个值包含了容器镜像层+可写层的总占用空间。

关于设置resources参数的提示

磁盘资源对应的是ephemeral-storage字段,你可以根据监控到的平均使用量设置requests,根据峰值设置limits,比如:

resources:
  requests:
    ephemeral-storage: "1Gi"
  limits:
    ephemeral-storage: "2Gi"

内容的提问来源于stack exchange,提问作者david.perez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:20:05