如何监视永久卷的磁盘使用情况?

时间:2019-04-29 08:46:17

标签: kubernetes prometheus

我想监视群集中持久卷的磁盘使用情况。我正在使用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 不能完全解决我的问题。

2 个答案:

答案 0 :(得分:0)

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

  - 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

答案 1 :(得分:0)

是的,在最新版本的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 {名称:c.Name,用法:用法})“

希望对您有帮助。