本文档介绍了如何配置 Google Kubernetes Engine 部署,以便使用 Google Cloud Managed Service for Prometheus 从 NVIDIA 数据中心 GPU 管理器收集指标。本页面介绍如何完成以下任务:
- 为 DCGM 设置导出器以报告指标。
- 为 Managed Service for Prometheus 配置 PodMonitoring 资源以收集导出的指标。
以下说明仅在您将代管式收集功能与 Managed Service for Prometheus 搭配使用时适用。 如果您改为使用自行部署的收集功能,请参阅 DCGM 导出器的源代码库以了解安装信息。
这些说明仅作为示例提供,应该适用于大多数 Kubernetes 环境。如需了解托管式 DCGM 产品,请参阅收集和查看 DCGM 指标。
如果您因为限制性安全或组织政策而无法安装应用或导出器,则我们建议您查阅开源文档以获取支持。
如需了解 DCGM,请参阅 NVIDIA DCGM。
前提条件
如需使用 Managed Service for Prometheus 和代管式收集功能从 DCGM 收集指标,您的部署必须满足以下要求:
- 您的集群必须运行 Google Kubernetes Engine 1.21.4-gke.300 或更高版本。
- 您必须运行 Managed Service for Prometheus,并启用代管式收集功能。如需了解详情,请参阅代管式收集功能使用入门。
验证您是否有足够的 NVIDIA GPU 配额。
如需枚举 GKE 集群中的 GPU 节点及其在相关集群中的 GPU 类型,请运行以下命令:
kubectl get nodes -l cloud.google.com/gke-gpu -o jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.metadata.labels.cloud\.google\.com/gke-accelerator}{"\n"}{end}'
请注意,如果已停用自动安装或者 GKE 版本不支持自动安装,您可能需要在节点上安装兼容的 NVIDIA GPU 驱动程序。如需验证 NVIDIA GPU 设备插件是否正在运行,请运行以下命令:
kubectl get pods -n kube-system | grep nvidia-gpu-device-plugin
安装 DCGM 导出器
我们建议您使用以下配置来安装 DCGM 导出器 DCGM-Exporter
:
使用以下命令设置端口转发:
kubectl -n gmp-public port-forward POD_NAME 9400
使用浏览器或另一个终端会话中的
curl
实用程序访问端点localhost:9400/metrics
。
您可以自定义 ConfigMap 部分,以选择要发出的 GPU 指标。
或者,请考虑使用官方 Helm 图表来安装 DCGM 导出器。
如需从本地文件应用配置更改,请运行以下命令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您还可以使用 Terraform 管理您的配置。
定义 PodMonitoring 资源
对于目标发现,Managed Service for Prometheus Operator 需要与同一命名空间中的 DCGM 导出器对应的 PodMonitoring 资源。
您可以使用以下 PodMonitoring 配置:
如需从本地文件应用配置更改,请运行以下命令:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
您还可以使用 Terraform 管理您的配置。
验证配置
您可以使用 Metrics Explorer 验证您是否正确配置了 DCGM 导出器。Cloud Monitoring 可能需要一两分钟时间来注入您的指标。
要验证指标是否已注入,请执行以下操作:
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在查询构建器窗格的工具栏中,选择名为 code MQL 或 code PromQL 的按钮。
- 验证已在PromQL 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。
- 输入并运行以下查询:
DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="gmp-public"}
问题排查
如需了解如何排查指标注入问题,请参阅排查注入端问题中的从导出器收集的问题。