KubeSphere 开启 GPU 监控

1. 安装

提前安装好 GPU-Operator ,Prometheus 使用 KubeSphere 自带的组件。

1.1 检查 nvidia-dcgm-exporter 是否存在

nvidia-dcgm-exporter 是 GPU-Operator 提供的一个用于监控 NVIDIA GPU 的 Prometheus Exporter,用于将 GPU 监控数据暴露给 Prometheus。

{.line-numbers}
1
kubectl get pods -n gpu-operator | grep nvidia-dcgm-exporter
1
2
3
nvidia-dcgm-exporter-4f8jh      1/1     Running     0             8d
nvidia-dcgm-exporter-gqhpz 1/1 Running 12 (9d ago) 10d
nvidia-dcgm-exporter-ptmxh 1/1 Running 3 (8d ago) 10d

1.2 编写 ServiceMonitor 配置文件

ServiceMonitor 是 Prometheus Operator 中的一种自定义资源,用于告诉 Prometheus 实例去监视特定的 Kubernetes Service。

{.line-numbers}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# gpu-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nvidia-dcgm-exporter
namespace: gpu-operator # 填写nvidia-dcgm-exporter所在的命名空间
labels:
app: nvidia-dcgm-exporter
spec:
jobLabel: nvidia-gpu
endpoints:
- port: gpu-metrics
interval: 5s # 采集间隔
relabelings: # 标签重写
- sourceLabels:
- __meta_kubernetes_pod_host_ip
separator: ;
regex: '(.+)'
targetLabel: host
replacement: '${1}'
selector:
matchLabels:
app: nvidia-dcgm-exporter
namespaceSelector:
matchNames:
- gpu-operator
{.line-numbers}
1
kubectl apply -f gpu-servicemonitor.yaml

附: 重写 Prometheus 提供的标签

1.3 (可选)在 Prometheus WebUI 中检查数据读取情况

在 KubeSphere 中找到 prometheus-k8s 服务,编辑外部访问模式为 NodePort,即可通过分配的端口访问 Prometheus 的 Web 界面。

1.4 新建自定义监控面板

在 KubeSphere 的监控告警>监控面板中,新建一个自定义监控面板,选择 GPU 模板,按需修改监控内容。


参考文章
使用 GPU-Operator 与 KubeSphere 简化深度学习训练与监控 GPU


KubeSphere 开启 GPU 监控
https://heeteve-blog.pages.dev/2024/03/kubesphere开启GPU监控/
作者
Heeteve
发布于
2024年3月25日
许可协议