如何查找 GCP 持久磁盘使用情况?

Pra*_*mar 2 google-cloud-platform google-kubernetes-engine google-persistent-disk

我有一个与 GKE 集群中的 pod 关联的 GCP 持久磁盘。如何查找永久磁盘的磁盘使用情况?是否有任何 GCP 命令可以帮助我查找磁盘使用情况?

非常感谢你的回答。

Daw*_*ruk 5

长话短说

您可以使用某个卷安装的利用率Pod(已用空间的百分比)来衡量以下指标:

  • kubernetes.io/pod/volume/utilization

描述指出:

实例当前正在使用的卷的比例。该值不能大于 1,因为使用量不能超过总可用卷空间。

您可以使用此指标来监控由Persistent Disk.

免责声明!

请记住,此方法需要进行一些调整才能适应特定的用例。我在下面举了一个例子。我还添加了一个监控 api 查询来提取相同的信息。


使用kubernetes.io/pod/volume/utilization指标

假设您有一个GKE集群:

  • 3由'PVC支持,每个都有空格PD100GB
  • 3Pods其中每个人都使用单个PVC
    • ubuntu-ten- 已安装的存储空间为 10GBPVC
    • ubuntu-twenty- 已安装的存储空间为 20GBPVC
    • ubuntu-thirty- 已安装的存储空间为 30GBPVC

您可以关注:

  • GCP Cloud Console(网络用户界面)-> Monitoring->Metrics explorer

体积利用率


查询API

正如另一个答案下的评论中所问的:

有监控 API 检索磁盘使用情况的示例吗?

是的,他们是。您可以使用MQL(监控查询语言)查询监控API的数据。

您将需要从之前使用的示例中进行查询 ( 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
Run Code Online (Sandbox Code Playgroud)

要查询 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
Run Code Online (Sandbox Code Playgroud)

在响应中,您应该获得有关 所用卷的利用率的信息Pods


其他资源: