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
| apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: nvidia-dcgm-exporter namespace: gpu-operator 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