在使用NVIDIA GPU的Kubernetes集群中,监控GPU的健康状态和性能对于维护系统的最佳性能至关重要。一种有效的方法是利用NVIDIA数据中心GPU管理器(DCGM)Exporter与Prometheus和Grafana结合使用。在本指南中,我们将演示如何在Kubernetes环境中设置GPU监控。

实例信息查询

先决条件

  • 安装了NVIDIA GPU的Kubernetes集群
  • 安装并配置了kubectl命令行工具
  • 安装并配置了Prometheus和Grafana

安装步骤

  1. 下载DCGM Exporter配置文件:
wget https://raw.githubusercontent.com/NVIDIA/dcgm-exporter/master/dcgm-exporter.yaml
  1. 修改 dcgm-exporter.yaml 文件: 使用文本编辑器(例如vi)编辑文件,并更新 securityContext、nodeSelectortolerations 部分如下:
nodeSelector:    #与containers同级
  node-type: gpu
        
securityContext: #与volumeMounts同级
  capabilities:
    add: ["SYS_ADMIN"]
     
tolerations:     #与volumes同级
- effect: NoSchedule
  operator: Exists
  1. 应用DCGM Exporter配置:
kubectl apply -f dcgm-exporter.yaml -n monitoring
  1. 创建 dcgm-exporter-servicemonitor.yaml 文件: 创建一个名为 dcgm-exporter-servicemonitor.yaml 的新YAML文件,内容如下:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: dcgm-exporter
  namespace: monitoring
  labels:
    app.kubernetes.io/name: dcgm-exporter
    app.kubernetes.io/version: "3.4.0"
spec:
  jobLabel: app.kubernetes.io/name
  selector:
    matchLabels:
      app.kubernetes.io/name: dcgm-exporter
      app.kubernetes.io/version: "3.4.0"
  namespaceSelector:
    matchNames:
      - monitoring
  endpoints:
    - port: metrics
      interval: 15s
      path: /metrics
  1. 应用ServiceMonitor配置:
kubectl apply -f dcgm-exporter-servicemonitor.yaml -n monitoring
  1. 访问仪表板: 访问Grafana网站上的NVIDIA DCGM-Exporter仪表板,将其导入到您的Grafana实例中。

结论

通过按照这些步骤,您已成功在Kubernetes集群中使用NVIDIA DCGM Exporter、Prometheus和Grafana设置了GPU监控。这使您可以密切监视GPU的健康状态和性能指标,确保您的GPU资源的最佳利用和性能。