web-dev-qa-db-fra.com

Comment surveiller l'utilisation du disque des volumes persistants?

Je souhaite surveiller les utilisations du disque des volumes persistants dans le cluster. J'utilise CoreOS Kube Prometheus . Un tableau de bord tente d'interroger avec une métrique appelée kubelet_volume_stats_capacity_bytes qui n'est plus disponible avec les versions de Kubernetes à partir de la v1.12.

J'utilise Kubernetes version v1.13.4 et hostpath-provisioner pour provisionner les volumes en fonction de la revendication de volume persistant. Je souhaite accéder aux mesures actuelles d'utilisation du disque pour chaque volume persistant.

  • kube_persistentvolumeclaim_resource_requests_storage_bytes est disponible mais il affiche uniquement la demande de revendication persistante en octets

  • container_fs_usage_bytes ne couvre pas entièrement mon problème.

7
Cemal Unal

Oui, dans la dernière version de Kubernetes, vous ne pouvez pas surveiller des métriques telles que kubelet_volume_stats_capacity_bytes , mais il existe des solutions de contournement. Malheureusement, c'est un peu fragmenté dans Kubernetes aujourd'hui. Les PVC peuvent avoir des mesures de capacité et d'utilisation, selon le fournisseur de volume, et il semble que tout volume basé sur CSI ne les ait pas du tout. Nous pouvons le faire au mieux, mais il est simple d'atteindre rapidement les cas où ces mesures ne sont pas disponibles.

Tout d'abord, écrivez simplement votre propre script qui sera à chaque fois que des valeurs de métrique comme container_fs_usage_bytes sont rassemblées seront la différence de capacité entre la mesure avant la mesure et l'utilisation du conteneur dans octets (la mesure sera container_fs_usage_bytes utile).

Prometheus est une solution assez populaire, mais pour surveiller la capacité, en particulier l'utilisation du disque, vous pouvez utiliser Heapster, maintenant il est sur le point de "se retirer", mais pour ce cas particulier, vous pouvez l'utiliser, mais vous devrez également implémenter un script. Jetez un oeil sur le référentiel: heapster-memory

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

J'espère que ça aide.

1
MaggieO

J'ai un travail comme celui-ci dans ma configuration de bal:

  - 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

Avec ce travail en place, je vois les métriques suivantes disponibles dans 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

Plus ici: https://github.com/google/cadvisor/issues/1702

0
Collin Cudd