监控GPU资源指标
通过Prometheus和Grafana,可以实现对GPU资源指标的观测。本文以实际示例介绍如何通过Prometheus查看集群的GPU显存的使用。
本文将通过一个示例应用演示如何监控GPU资源指标,具体步骤如下:
- 访问Prometheus
(可选)为Prometheus绑定LoadBalancer类型的Service,支持从外部访问Prometheus。
- 监控GPU指标
在集群中部署使用GPU能力的工作负载,将自动上报GPU监控指标。
- 访问Grafana
从Grafana可视化面板中查看Prometheus的监控数据。
前提条件
- 集群中已安装云原生监控插件插件。
- 集群中已安装CCE AI套件(NVIDIA GPU)插件,且插件版本不低于2.0.10。
- 如果需要监控GPU虚拟化监控指标,集群中需要已安装Volcano调度器插件,且插件版本不低于1.10.5。
访问Prometheus
Prometheus插件安装完成后会在集群中部署一系列工作负载和Service。其中Prometheus的Server端会在monitoring命名空间下以有状态工作负载进行部署。
您可以创建一个公网LoadBalancer类型Service,这样就可以从外部访问Prometheus。
- 登录CCE控制台,选择一个已安装Prometheus的集群,单击集群名称进入集群,在左侧导航栏中选择“服务”。
- 单击右上角“YAML创建”,创建一个公网LoadBalancer类型的Service。
apiVersion: v1 kind: Service metadata: name: prom-lb #服务名称,可自定义 namespace: monitoring labels: app: prometheus component: server annotations: kubernetes.io/elb.id: 038ff*** #请替换为集群所在VPC下的ELB实例ID,且ELB实例为公网访问类型 spec: ports: - name: cce-service-0 protocol: TCP port: 88 #服务端口号,可自定义 targetPort: 9090 #Prometheus的默认端口号,无需更改 selector: #标签选择器可根据Prometheus Server实例的标签进行调整 app.kubernetes.io/name: prometheus prometheus: server type: LoadBalancer
- 创建完成后在浏览器访问“负载均衡公网IP地址:服务端口”,访问Prometheus。
图1 访问Prometheus
- 单击“Status > Targets”,可以查看到Prometheus监控了哪些目标。
图2 查看监控目标
监控GPU指标
创建一个使用GPU的工作负载,等工作负载正常运行后,访问Prometheus,在“Graph”页面中,查看GPU指标。
关于GPU指标详情请参见GPU监控指标说明。
访问Grafana
Prometheus插件同时安装了Grafana(一款开源可视化工具),并且与Prometheus进行了对接。您可以创建一个公网LoadBalancer类型Service,这样就可以从公网访问Grafana,从Grafana中看到Prometheus的监控数据。
单击访问地址,访问Grafana,选择合适的DashBoard,即可以查到相应的聚合内容。
- 登录CCE控制台,选择一个已安装Prometheus插件的集群,单击集群名称进入集群,在左侧导航栏中选择“服务”。
- 单击右上角“YAML创建”,为Grafana创建一个公网LoadBalancer类型Service。
apiVersion: v1 kind: Service metadata: name: grafana-lb #服务名称,可自定义 namespace: monitoring labels: app: grafana annotations: kubernetes.io/elb.id: 038ff*** #请替换为集群所在VPC下的ELB实例ID,且ELB实例为公网访问类型 spec: ports: - name: cce-service-0 protocol: TCP port: 80 #服务端口号,可自定义 targetPort: 3000 #Grafana的默认端口号,无需更改 selector: app: grafana type: LoadBalancer
- 创建完成后在浏览器访问“负载均衡公网IP地址:服务端口”,访问Grafana并选择合适的DashBoard,即可查看GPU资源状态。
图4 查看GPU虚拟化资源