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

如何查询K8s集群中Pod关联PVC的已用及空闲容量占比

Kubernetes查询PVC已用/空闲容量占比的可行方法

以下方案按实现复杂度从低到高排列:

方案1:直接进入绑定PVC的Pod内部查询

这是最准确、无需额外组件的方案,适合单PVC临时查询:

  • 第一步:确认PVC绑定的Pod,以及PVC在Pod内的挂载路径,执行命令:
    kubectl describe pod <pod-name> -n <namespace> | grep -A5 Mounts
    返回结果中标记了对应PVC的挂载路径,例如/data。
  • 第二步:进入Pod执行磁盘查询命令,即可看到该PVC的已用、可用、使用率:
    kubectl exec -it <pod-name> -n <namespace> -- df -h <挂载路径>
    注意:如果多个Pod共享挂载同一个PVC,任意一个Pod内查询到的用量都是整个PVC的总用量

方案2:通过kubectl直接查询(需集群支持CSI容量查询特性)

如果你的Kubernetes集群版本≥1.21,且启用了CSIVolumeCapacity feature gate,同时所用存储的CSI驱动支持容量查询,可以直接通过kubectl命令批量获取PVC使用率,无需进入Pod:

  • 执行命令查询指定Namespace下所有PVC的容量信息:
    kubectl get pvc -n <namespace> -o custom-columns="PVC名称:.metadata.name,总容量:.status.capacity.storage,已用容量:.status.capacity.used,可用容量:.status.capacity.available,使用率:.status.capacity.usedPercentage"

方案3:通过监控指标批量查询(适合长期监控/批量查询场景)

如果集群部署了Prometheus、kube-state-metrics、kubelet内置的volume metrics采集,可直接通过PromQL计算PVC使用率:

  • 单PVC使用率查询PromQL:
    100 * kubelet_volume_stats_used_bytes{namespace="<你的Namespace名称>",persistentvolumeclaim="<PVC名称>"} / kubelet_volume_stats_capacity_bytes{namespace="<你的Namespace名称>",persistentvolumeclaim="<PVC名称>"}
  • 批量查询指定Namespace下所有PVC的使用率PromQL:
    100 * kubelet_volume_stats_used_bytes{namespace="<你的Namespace名称>"} / kubelet_volume_stats_capacity_bytes{namespace="<你的Namespace名称>"}
    注意:如果存储采用精简制备(Thin Provisioning),指标返回的总容量可能包含后端存储的超售容量,实际可用容量以存储后端实际剩余为准

内容的提问来源于stack exchange,提问作者Giuseppe Percuoco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:18:04