【阅读原文】戳:边缘GPU节点的可观测原理和最佳实践
ACK Edge是针对数据中心、边缘场景推出的云边一体化协同托管方案。ACK Edge可以纳管数据中心和边缘侧的GPU节点,统一管理多地域、多环境的异构算力。阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。
ACK Edge和阿里云Prometheus监控的集成,为数据中心和边缘计算的GPU节点提供了与云端一致的高级可观测性体验,本文主要介绍如何利用这种结合实现GPU节点的高效监控,并分享相关最佳实践。
边缘节点可观测原理
ACK Edge支持通过专线和公网接入IaaS资源(如IDC节点、第三方云厂商节点、IoT设备等),专线场景下节点与云端互通可以保证节点的可观测正常运行。在公网场景下,ACK Edge为边缘节点提供了一致的可观测体验,如下图所示,Prometheus Server无法直接访问GPU节点,通过Raven组件实现了公网场景下边缘节点的可观测。
1. prometheus通过节点名称而不是节点IP来采集指标,域名解析时coredns配置了hosts插件,将边缘节点名称解析到raven service。
2. prometheus访问raven service,最后会选择service后端的一个网关节点来与边缘侧的网络域通信。
3. 网关节点上的raven agent会与IDC网关节点上的raven agent建立加密通道,支持三层和七层通信。
4. 在IDC网络域的网关节点上的raven-agent访问目标节点的GPU采集端口获取监控数据。
边缘GPU节点的最佳实践
步骤一:开启阿里云Prometheus监控
1. 登录容器服务管理控制台,在左侧导航栏选择集群。
2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > Prometheus监控。
3. 在Prometheus监控页面,按照页面提示完成相关组件的安装和监控大盘的检查。
控制台会自动安装组件、检查监控大盘。安装完成后,您可以单击各个页签查看相应监控数据。
步骤二:添加GPU节点
请参考添加GPU节点_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心,进行边缘节点的添加。
步骤三:部署应用
边缘节点接入后,为了验证节点GPU相关指标是否正常,需要在节点上运行一些GPU应用,本文以运行Tensorflow Benchmark项目为例。本例是独占GPU型应用,您还可以在边缘GPU节点上运行共享GPU节点应用,请参见如何配置共享GPU调度仅共享不隔离策略_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心。
1. 创建Job文件
apiVersion: batch/v1 kind: Job metadata: name: tensorflow-benchmark-exclusive spec: parallelism: 1 template: metadata: labels: app: tensorflow-benchmark-exclusive spec: containers: - name: tensorflow-benchmark image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3 command: - bash - run.sh - --num_batches=5000000 - --batch_size=8 resources: limits: nvidia.com/gpu: 1 #申请1张GPU卡。 workingDir: /root restartPolicy: Never
2. 创建资源
使用kubectl apply创建资源
在控制台任务>使用YAML创建资源复制上述YAML,点击创建
步骤四:查看GPU监控2.0大盘
GPU监控2.0包含集群维度监控大盘和节点维度监控大盘,两种大盘都提供了诸多面板(Panel),具体的含义请参见监控大盘中各个监控面板的含义是什么_容器服务Kubernetes版 ACK(ACK)-阿里云帮助中心。
1. 登录容器服务管理控制台,在左侧导航栏选择集群。
2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > Prometheus监控。
3. 在Prometheus监控大盘列表页面,单击GPU监控页签,然后单击集群GPU监控-集群维度页签。
4. 在Prometheus监控大盘列表页面,单击GPU监控页签,然后单击集群GPU监控-节点维度页签,选择目标GPUNode,您可以查看节点维度的大盘。
步骤五:查看边缘GPU节点监控指标
GPU监控2.0使用的GPU Exporter在兼容开源DCGM Exporter提供的监控指标的基础上,根据某些业务场景,增加了自定义指标。关于DCGM Exporter的更多信息,请参见DCGM Exporter。
目前支持的所有的GPU监控指标请参见ACK集群GPU监控2.0指标有哪些_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心,通过以下步骤您可以查看GPU的相关监控指标。
1. 登录ARMS控制台。
2. 在顶部菜单栏,选择集群所在的地域。
3. 在左侧导航栏,选择指标中心>指标探索>选择实例。
4. 在搜索框输入您想要查看的监控指标以及相应的过滤条件。
相关文档:
[1] 什么是可观测监控Prometheus版_应用实时监控服务(ARMS)-阿里云帮助中心
[2] ACK Edge集群_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
https://help.aliyun.com/zh/ack/ack-edge/?spm=a2c4g.11174283.help-menu-sub-85222.d_3.48bd6abdHKxrG6
[3] 什么是边缘集群跨域运维通信组件Raven_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
[4] 传统型负载均衡CLB的操作指南_负载均衡(SLB)-阿里云帮助中心
[5] 添加GPU节点_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
https://help.aliyun.com/zh/ack/ack-edge/user-guide/add-a-gpu-node?scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%402854640.S_BB1%40bl%2BBB2%40bl%2BRQW%40ag0%2Bhot%2Bos0.ID_2854640-RL_gpu-LOC_doc%7EUND%7Eab-OR_ser-V_4-P0_0&spm=a2c4g.11186623.d_help_search.i1
[6] 如何配置共享GPU调度仅共享不隔离策略_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
[7] 监控大盘中各个监控面板的含义是什么_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
[8] GitHub-NVIDIA/dcgm-exporter: NVIDIA GPU metrics exporter for Prometheus leveraging DCGM
https://github.com/NVIDIA/dcgm-exporter
[9] ACK集群GPU监控2.0指标有哪些_容器服务Kubernetes版ACK(ACK)-阿里云帮助中心
我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。
获取关于我们的更多信息~