Как узнать об использовании постоянного диска 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 в своем кластере. Если нет, следуйте документации.