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

如何获取Kubernetes已挂载卷状态?Stackdriver及gcloud无相关信息

解决Kubernetes动态PVC挂载状态查询的几种简便方法

嘿,这个问题我之前帮不少人处理过——确实在GCP的原生工具里直接查看PVC挂载后的磁盘空间状态有点绕,不过除了手动登录节点,还有几个靠谱的替代方案:

  • 直接通过kubectl exec查询Pod内挂载状态
    既然PVC最终是挂载到具体Pod里的,完全不用登录节点,直接进入对应的Pod执行磁盘查询命令就行。步骤很简单:

    1. 先找到挂载了目标PVC的Pod(可以用kubectl get pods -n <命名空间> -o wide关联PVC信息)
    2. 执行命令查看指定挂载路径的磁盘情况:
      kubectl exec <Pod名称> -n <命名空间> -- df -h <PVC挂载路径>
      
      要是忘了挂载路径,用kubectl describe pod <Pod名称> -n <命名空间>,在VolumeMounts部分就能找到对应的路径。这个方法比登节点高效多了,不用管节点的位置和权限。
  • 用Kubelet原生指标获取卷状态
    Kubernetes的kubelet组件本身就暴露了关于存储卷的监控指标,你可以直接通过API获取这些数据:

    kubectl get --raw /api/v1/nodes/<节点名称>/proxy/metrics | grep kubelet_volume_stats
    

    这里会返回类似kubelet_volume_stats_used_bytes(已用空间)、kubelet_volume_stats_available_bytes(剩余空间)的指标,直接解析就能得到每个PVC的状态。如果需要批量查询所有节点的卷指标,可以写个简单的脚本遍历所有节点。

  • 搭建开源监控栈实现长期可视化监控
    如果需要长期监控而非临时查询,推荐用Prometheus + Node Exporter + Grafana的组合:

    • Node Exporter会收集节点上所有挂载点的磁盘使用数据,包括PVC对应的持久化卷
    • kube-state-metrics可以关联PVC、Pod和节点的关系,让你能精准定位到每个PVC的状态
    • 最后在Grafana里导入现成的Kubernetes存储监控面板,就能直观看到所有PVC的已用/剩余空间,还能设置告警规则。
  • 将卷指标导入Cloud Monitoring(原Stackdriver)
    既然原生Cloud Monitoring没有这个指标,你可以通过GCP的Ops Agent来采集kubelet的卷指标并导入:

    1. 在所有节点上安装Ops Agent
    2. 配置Agent采集kubelet的/metrics端点,过滤出kubelet_volume_stats_*相关指标
    3. 之后就能在Cloud Monitoring的Metrics Explorer里搜索这些指标,创建自定义仪表盘或者告警规则,实现GCP控制台内的可视化监控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:39:56