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

如何获取Kubernetes本地持久化卷(Local PV)的监控指标?

监控Kubernetes本地持久化卷的实际使用量

要监控本地PV的实际磁盘使用量,仅靠默认的kube_persistentvolumeclaim_resource_requests_storage_bytes(仅记录申请容量)是不够的,你可以通过以下几种方式实现:

方法1:利用Node Exporter采集挂载点指标

Node Exporter默认会采集节点上所有文件系统的磁盘指标,只要本地PV对应的挂载路径被正确采集,就能直接获取使用量数据:

  • 确认Node Exporter已部署在集群所有节点上,若启动参数里的--collector.filesystem.ignored-mount-points排除了本地PV的挂载目录,需调整参数移除对应规则。
  • 定位本地PV的节点挂载路径:执行kubectl describe pv <你的PV名称>,在Spec字段下查看Local或HostPath对应的路径,同时通过NodeAffinity确认绑定的目标节点。
  • 在Prometheus中编写查询获取使用量:
    • 已使用空间:node_filesystem_size_bytes{mountpoint="/path/to/your/local/pv", instance="目标节点IP"} - node_filesystem_avail_bytes{mountpoint="/path/to/your/local/pv", instance="目标节点IP"}
    • 使用率:100 - (node_filesystem_avail_bytes{mountpoint="/path/to/your/local/pv", instance="目标节点IP"} / node_filesystem_size_bytes{mountpoint="/path/to/your/local/pv", instance="目标节点IP"} * 100)

方法2:通过Node Exporter的Textfile Collector自定义PV关联指标

如果需要直接将指标与PV名称绑定(方便和PVC联动查询),可以用自定义脚本采集后,通过Node Exporter的textfile功能暴露指标:

  1. 在每个节点上创建采集脚本,示例如下:
    #!/bin/bash
    TEXTFILE_DIR="/var/lib/node_exporter/textfile_collector"
    PV_CONFIGS="/etc/local-pv-mappings.conf" # 配置文件,每行格式:PV_NAME 挂载路径
    
    mkdir -p $TEXTFILE_DIR
    rm -f $TEXTFILE_DIR/local_pv_metrics.prom
    
    while read -r pv_name path; do
      if [ -d "$path" ]; then
        size=$(df -B1 "$path" | awk 'NR==2 {print $2}')
        used=$(df -B1 "$path" | awk 'NR==2 {print $3}')
        echo "local_pv_size_bytes{pv_name=\"$pv_name\",path=\"$path\"} $size" >> $TEXTFILE_DIR/local_pv_metrics.prom
        echo "local_pv_used_bytes{pv_name=\"$pv_name\",path=\"$path\"} $used" >> $TEXTFILE_DIR/local_pv_metrics.prom
      fi
    done < $PV_CONFIGS
    
  2. 修改Node Exporter启动参数,添加--collector.textfile.directory=/var/lib/node_exporter/textfile_collector,让它读取该目录下的指标文件。
  3. 给脚本添加执行权限,并用cron设置定时任务定期执行,确保指标实时更新。
  4. 之后在Prometheus中可直接通过local_pv_used_bytes{pv_name="你的PV名称"}获取对应PV的使用量。

注意事项

  • 本地PV是节点级资源,查询指标时必须结合instance标签(对应绑定节点),避免跨节点查询错误。
  • 若使用Prometheus Operator管理采集,需确保Node Exporter的ServiceMonitor配置包含相关指标的采集规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:20:24