You need to enable JavaScript to run this app.
导航
监控自定义 Kubernetes 集群中的 GPU
最近更新时间:2024.07.08 20:41:37首次发布时间:2023.02.28 17:57:43

您可以使用托管 Prometheus 服务来监控自建集群集群节点中的 GPU,本文为您介绍配置的步骤和注意事项。

背景信息

Kubernetes 集群中,允许使用 dcgm-exporter 组件暴露 GPU 的 metrics。因此,您可以使用托管 Prometheus 来监控自建集群内节点中的 GPU 显卡的状态信息。

前提条件

  • 已在火山引擎注册并开通 VMP 服务。
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区
  • 已创建自建 Kubernetes 集群,且集群中存在 GPU 节点。同时:
  • 完成本地环境(Linux/Mac)配置。包括:
    • 在本地环境中下载并安装最新版本的 kubectl 工具,详情请参见 安装和设置 kubectl
    • 在本地环境中使用 kubectl 正确连接自建集群。
    • 在本地环境中正确安装 wget、echo、curl 和 sed 等命令行工具。

操作步骤

步骤一:在集群中安装 dcgm-exporter

在自建集群中安装 dcgm-exporter 组件,详情请参见 官网文档

步骤二:部署采集器

  1. 在本地环境中下载脚本,详情请参见 获取脚本
  2. 使用 kubectl 连接自建集群。
  3. 执行以下命令,在自建集群中部署 VM Agent 采集器。
./install.sh \
--agent vmagent \ # 采集器类型。
--region cn-beijing \ # VMP 工作区所在地域。
--namespace volcano-metrics \ # 部署采集器的命名空间。
--remote-write-url http://vmp-test.com/workspaces/b762e1a3-37***/api/v1/write \ # VMP 工作区的 URL 地址。其中域名需要修改为自定义域名。
--basic-auth-username username-demo \ # VMP 工作区 Basic Auth 认证模式下的认证用户名。
--basic-auth-password password-demo  # VMP 工作区 Basic Auth 认证模式下的认证密码。

步骤三:配置采集规则

在自建集群中使用 ServiceMonitor 或 PodMonitor 配置采集规则,本文以 ServiceMonitor 为例,配置示例如下。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: gpu-discover # 配置采集规则名称
  namespace: default # 配置命名空间。不要求与采集器或 exporter 在相同空间
spec:
  endpoints:
  - port: metrics # 配置 service.yaml 中 Port 的 name 字段的值
    relabelings: # 配置指标的 relabel。如没有需求,可省略
    - targetLabel: environment 
      action: replace # 这个例子中我们添加一个固定 label:environment="Production"
      replacement: Production
  namespaceSelector:
    matchNames:
    - kube-system # 通过命名空间进行筛选,配置为 exporter 所在的命名空间。
  selector:
    matchLabels:
      app.kubernetes.io/name: dcgm-exporter # 使用标签选择采集对象,配置为 service.yaml 中的 Label 字段值。

说明

更多集群中服务发现的配置方式,请参见 服务发现

结果验证

登录 Grafana ,使用 GPU 相关的 PromQL 语句创建 GPU 相关大盘,可以正常看到 GPU 监控信息。

说明

GPU 相关的 PromQL 语句,请参见 DCGM 常见指标