如何监控持久卷的磁盘使用情况?

Cem*_*nal 14 metrics kubernetes prometheus persistent-volumes kubernetes-pvc

我想监控集群中持久卷的磁盘使用情况。我正在使用CoreOS Kube Prometheus。仪表板正在尝试使用名为kubelet_volume_stats_capacity_bytes的指标进行查询,该指标从 v1.12 开始的 Kubernetes 版本不再可用。

我正在使用 Kubernetes 版本 v1.13.4 和hostpath-provisioner根据持久卷声明来配置卷。我想访问每个持久卷的当前磁盘使用指标。

  • kube_persistentvolumeclaim_resource_requests_storage_bytes可用,但它仅以字节为单位显示持久声明请求

  • container_fs_usage_bytes没有完全涵盖我的问题。

val*_*ala 12

可以使用以下查询确定每个 PVC 磁盘空间使用百分比:

100 * sum(kubelet_volume_stats_used_bytes) by (persistentvolumeclaim)
  /
sum(kubelet_volume_stats_capacity_bytes) by (persistentvolumeclaim)
Run Code Online (Sandbox Code Playgroud)

kubelet_volume_stats_used_bytes指标显示每个 PVC 磁盘空间的使用情况(以字节为单位)。

kubelet_volume_stats_capacity_bytes指标显示每个 PVC 磁盘的大小(以字节为单位)。


Mal*_*ata 7

是的,在最新版本的 Kubernetes 中,您无法监控kubelet_volume_stats_capacity_bytes等指标,但有一些解决方法。不幸的是,这在今天的 Kubernetes 中有点支离破碎。PVC 可能具有容量和使用指标,具体取决于卷提供商,并且似乎任何基于 CSI 的卷根本没有这些。我们可以尽力做到这一点,但快速解决这些指标不可用的情况很简单。

首先,只需编写自己的脚本,每次收集像container_fs_usage_bytes这样的指标值时,都会计算测量前的容量与容器使用量(以字节为单位)之间的差异(指标将container_fs_usage_bytes很有帮助)。

Prometheus 是相当流行的解决方案,但要监控容量尤其是磁盘使用情况,您可以使用 Heapster,现在他即将“退休”,但仅对于这种特殊情况您可以使用它,但您也必须实现脚本。查看存储库: heapster-memory

“res.Containers = 附加(res.Containers,metrics.ContainerMetrics{名称:c.Name,用法:用法})”

我希望它有帮助。


小智 4

我的舞会配置中有如下工作:

  - job_name: 'kubernetes-nodes'

    kubernetes_sd_configs:
    - role: node

    scheme: https
    tls_config:
      ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token

    relabel_configs:
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)
    - target_label: __address__
      replacement: kubernetes.default.svc:443
    - source_labels: [__meta_kubernetes_node_name]
      regex: (.+)
      target_label: __metrics_path__
      replacement: /api/v1/nodes/${1}/proxy/metrics
Run Code Online (Sandbox Code Playgroud)

完成这项工作后,我在 Prometheus 中看到以下可用指标:

kubelet_volume_stats_available_bytes
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_used
kubelet_volume_stats_used_bytes
Run Code Online (Sandbox Code Playgroud)

更多信息请参见:https://github.com/google/cadvisor/issues/1702