Как узнать об использовании постоянного диска GCP?

У меня есть постоянный диск GCP, связанный с модулем в кластере GKE. Как узнать, как используется постоянный диск? Есть ли какие-нибудь команды GCP, которые помогут мне определить использование диска?

Большое спасибо за ваши ответы.

2 ответа

TL;DR

Вы можете использовать использование (процент используемого пространства) определенного монтирования тома для Pod со следующей метрикой:

  • kubernetes.io/pod/volume/utilization

В описании говорится:

Доля объема, которая в настоящее время используется экземпляром. Это значение не может быть больше 1, так как использование не может превышать общего доступного пространства тома.

Вы можете использовать эту метрику для отслеживания конкретных подключений томов, которые поддерживаются Persistent Disk.

Отказ от ответственности!

Помните, что этот метод требует некоторой адаптации для конкретных случаев использования. Я привел пример ниже. Я также добавил запрос api мониторинга для извлечения той же информации.


Используя kubernetes.io/pod/volume/utilization метрика

Предполагая, что у вас есть GKE кластер с:

  • 3 PVCэто поддержано PDс 100GB пространства каждый
  • 3 Pods где каждый из них использует один PVC
    • ubuntu-ten - где на смонтированном PVC
    • ubuntu-twenty - где на смонтированном PVC
    • ubuntu-thirty - где на смонтированном PVC

Вы можете следить:

  • GCP Cloud Console (Веб-интерфейс) -> Monitoring -> Metrics explorer


Запрос API

Как задано в комментариях под другим ответом:

Есть ли какие-нибудь примеры API мониторинга для получения информации об использовании диска?

Да. Вы можете запросить данные в API мониторинга, используя MQL (Язык запросов мониторинга).

Вам понадобится запрос из примера, использованного ранее (volume_utilization). Вы можете извлечь такой запрос, зайдя в Query Editor (это на последнем изображении).

       fetch k8s_pod
| metric 'kubernetes.io/pod/volume/utilization'
| filter
    (resource.cluster_name == 'CLUSTER_NAME'
     && resource.pod_name =~ 'ubuntu.*')
    && (metric.volume_name == 'volume-data')
| group_by 1m, [value_utilization_mean: mean(value.utilization)]
| every 1m

Для запроса API вы можете использовать Try this API функция доступна в GCP документация:

Запрос, созданный с помощью этого инструмента:

       curl --request POST \
  'https://monitoring.googleapis.com/v3/projects/PROJECT-NAME/timeSeries:query?key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"query":"fetch k8s_pod| metric '"'"'kubernetes.io/pod/volume/utilization'"'"'| filter(resource.cluster_name == '"'"'CLUSTER-NAME'"'"'&& resource.pod_name =~ '"'"'ubuntu.*'"'"')&& (metric.volume_name == '"'"'volume-data'"'"')| group_by 1m,[value_utilization_mean: mean(value.utilization)]| every 1m"}' \
  --compressed

В ответ вы должны получить информацию об использовании томов, используемых Pods.


Дополнительные ресурсы:

Вы не можете увидеть использование диска с помощью подготовленной команды. Но вы можете проверить это через Stackdriver Monitoring (Google Cloud Operations Suite) с метрикой под названием container/disk/bytes_used: документация. Вы можете использовать API мониторинга, если вам нужно его автоматизировать.

Обратите внимание, что вы должны предварительно включить Stackdriver в своем кластере. Если нет, следуйте документации.

Другие вопросы по тегам