当前位置: 首页 > news >正文

k8s集群中部署dcgm-exporter收集GPU指标

总体步骤:

  1. 部署dcgm-exporter的DaemonSet和Service,确保Service有正确的标签和端口。

  2. 创建ServiceMonitor,选择dcgm-exporter的Service,并指定端口。

  3. 检查Prometheus的targets页面,确认dcgm-exporter是否被正确发现和抓取。

  4. 可能需要调整Prometheus的RBAC或网络策略,确保访问权限。

1,部署dcgm-exporter

创建dcgm-exporter.yaml文件,包含DaemonSet和Service:

# dcgm-exporter.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: dcgm-exporter
  namespace: monitoring  # 假设与kube-prometheus同命名空间
  labels:
    app: dcgm-exporter
spec:
  selector:
    matchLabels:
      app: dcgm-exporter
  template:
    metadata:
      labels:
        app: dcgm-exporter
    spec:
      nodeSelector:
        nvidia.com/gpu.present: "true"  # 仅在有GPU的节点运行
      tolerations:
      - key: nvidia.com/gpu
        operator: Exists
        effect: NoSchedule
      containers:
      - name: dcgm-exporter
        image: nvidia/dcgm-exporter:3.3.4-3.6.12-ubuntu22.04
        ports:
        - containerPort: 9400
        resources:
          limits:
            nvidia.com/gpu: 1  # 分配1个GPU
---
apiVersion: v1
kind: Service
metadata:
  name: dcgm-exporter
  namespace: monitoring
  labels:
    app: dcgm-exporter  # ServiceMonitor通过此标签选择
spec:
  selector:
    app: dcgm-exporter
  ports:
  - name: metrics
    port: 9400
    targetPort: 9400

应用配置:

kubectl apply -f dcgm-exporter.yaml

2. 创建ServiceMonitor资源

创建dcgm-service-monitor.yaml文件,定义如何抓取指标:

# dcgm-service-monitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: dcgm-exporter
  namespace: monitoring  # 必须与Prometheus Operator监控的命名空间匹配
  labels:
    release: kube-prometheus  # 根据实际kube-prometheus部署的标签调整
spec:
  jobLabel: dcgm-exporter
  endpoints:
  - port: metrics  # 对应Service的端口名称
    interval: 15s
    path: /metrics  # 指标路径
  selector:
    matchLabels:
      app: dcgm-exporter  # 匹配Service的标签
  namespaceSelector:
    matchNames:
    - monitoring  # 指定Service所在的命名空间

应用配置:

kubectl apply -f dcgm-service-monitor.yaml

3,验证配置

检查Pod状态

kubectl get pods -n monitoring -l app=dcgm-exporter

查看Service和Endpoints:

kubectl get svc,ep -n monitoring dcgm-exporter

访问Prometheus UI:

1,端口转发Prometheus服务:
kubectl --namespace monitoring port-forward svc/prometheus-operated 9090
2,打开浏览器访问 http://localhost:9090/targets,确认dcgm-exporter目标状态为UP。

查询GPU指标:

在Prometheus中输入DCGM_FI_DEV_GPU_UTIL验证指标是否存在。

相关文章:

  • 机器学习 Day01人工智能概述
  • 串口数据记录仪DIY,体积小,全开源
  • 华为Mate 60 Pro+ 等机型适配支持运营商北斗卫星短信功能
  • 代码随想录算法训练营第六十一天 | 108. 冗余连接 109. 冗余连接II
  • 前端(AJAX)学习笔记(CLASS 4):进阶
  • 图库 | 基于图增强的智慧审计系统革新
  • Pika 技术浅析(三):生成对抗网络
  • C++编程:进阶阶段—4.2对象
  • 【十四】Golang 接口
  • 一学就会的深度学习基础指令及操作步骤(5)使用预训练模型
  • Vue3实战学习(Element-Plus常用组件的使用(输入框、下拉框、单选框多选框、el-image图片))(上)(5)
  • linux centos 安装源码nginx,开放端口
  • 【数据挖掘】知识蒸馏(Knowledge Distillation, KD)
  • 解决 Java/Kotlin 资源加载问题
  • 开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器
  • Compose 实践与探索一 —— 关键知识与概念详解
  • autoreconf --install的作用
  • OpenPose初体验
  • 标准卷积(Standard Convolution)
  • 【AI智能体报告】开源AI助手的革命:OpenManus深度使用报告
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • 今年有望投产里程已近3000公里,高铁冲刺谁在“狂飙”?
  • 1至4月全国铁路发送旅客14.6亿人次,创同期历史新高
  • 沪喀同心|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 西王食品连亏三年:主业齐“崩”,研发人员多为专科生
  • 多元史料下的“西狩”叙事——《“庚子西狩”中外资料六种》解题