18

我想监控集群中持久卷的磁盘使用情况。我正在使用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没有完全涵盖我的问题。

4

3 回答 3

5

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

首先,只需简单地编写自己的脚本,每次收集诸如container_fs_usage_bytes之类的指标值时,将计算测量前容量和容器使用字节之间的差异(指标将有助于container_fs_usage_bytes)。

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

“res.Containers = append(res.Containers, metrics.ContainerMetrics{Name: c.Name, Usage: usage})”

我希望它有所帮助。

于 2019-06-18T09:06:55.223 回答
2

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

  - 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

完成这项工作后,我在 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

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

于 2019-05-10T19:31:12.713 回答
0

我有一个 prometheus 导出器,用于监控 pvc 使用情况并提供 pod 和 pvc 之间的映射。如果你有兴趣可以试试。

https://github.com/kais271/pvc-exporter

普罗米修斯指标:

pvc_usage
pvc_mapping
于 2021-01-15T03:54:58.623 回答