1

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

非常感谢你的回答。

4

2 回答 2

3

TL;博士

您可以将某个卷挂载的利用率Pod(已用空间的百分比)用于具有以下指标的 a:

  • kubernetes.io/pod/volume/utilization

描述指出:

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

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

免责声明!

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


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

假设您有一个GKE集群:

  • PVCPD's支持的3 个100GB,每个都有空格
  • 3Pods他们每个人都使用单个PVC
    • ubuntu-ten- 有 10GB 存储在挂载上PVC
    • ubuntu-twenty- 有 20GB 存储在挂载上PVC
    • ubuntu-thirty- 有 30GB 存储在挂载上PVC

你可以关注:

  • 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

要查询 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.


其他资源:

于 2020-11-30T08:53:03.107 回答
1

您无法通过准备好的命令查看磁盘使用情况。但是,您可以通过 Stackdriver Monitoring (Google Cloud Operations Suite) 使用名为container/disk/bytes_used: documentation的指标进行检查。如果需要自动化,可以使用 Monitoring API。

请注意,您必须先在集群上启用 Stackdriver。如果还没有,请按照文档进行操作。

于 2020-11-17T17:53:15.637 回答