K8S下的GPU监控

DCGM介绍

在前面给大家介绍了K8S环境下如何调度GPU,在显卡的实际应用中,监控是不可缺少的一环。通过监控,我们能更直观的了解到显卡的使用情况和各项监控指标。英伟达提供了DCGM (NVIDIA Data Center GPU Manager) 工具用于管理和监控集群环境中的N卡。

 

 

在K8S环境下,DCGM已经集成到dcgm-exporter中。dcgm-exporter可以将显卡相关监控指标以http接口的方式暴露给Prometheus。

 

 

2 dcgm-exporter安装

dcgm-exporter安装需要使用到servicemonitor。因此在安装前,我们需要先创建servicemonitor资源。如集群中已创建,则可忽略。

kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/main/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml

再使用helm安装dcgm-exporter

helm repo add gpu-helm-charts   https://nvidia.github.io/dcgm-exporter/helm-charts
helm repo update
helm install --generate-name gpu-helm-charts/dcgm-exporter -n monitoring

安装完成后检查相应的资源是否创建并启动

kubectl get all -n monitoring -owide|grep dcgm

 

安装dcgm-exporter后,会起一个daemonset,默认会在每个node上起一个pod。如果node上没有相应的gpu资源,则pod会启动失败。同时会起一个svc,暴露9400端口,也就是dcgm-exporter暴露GPU监控指标的端口。

 

 

 

同时会创建一个servicemonitor,用于告诉prometheus如何获取dcgm-exporter的数据

 

 

此时,我们已能够通过9400端口查看到GPU的监控指标

 

 

3 查看监控

登录Grafana,可以查看到显卡的使用情况及温度功耗等信息

 

 

4 参考资料

关注公众号 singless,获取更多有价值的文章

posted @ 2025-10-29 14:15  singless233  阅读(17)  评论(0)    收藏  举报