体验托管Prometheus监控阿里云容器服务Kubernetes的GPU资源

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 通过ARMS管理Kubernetes集群GPU性能指标 在阿里云容器服务中使用GPU资源运行进行AI模型训练和预测时,经常需要了解应用负载的GPU的使用情况,比如每块显存使用情况、GPU利用率,GPU卡温度等监控信息,通过内置ARMS可以从应用的维度去观测GPU的使用情况,了解资源水位,以及设定相应的报警,避免因为GPU资源的约束引发业务风险。


在阿里云容器服务中使用GPU资源运行进行AI模型训练和预测时,经常需要了解应用负载的GPU的使用情况,比如每块显存使用情况、GPU利用率,GPU卡温度等监控信息,通过内置ARMS可以从应用的维度去观测GPU的使用情况,了解资源水位,以及设定相应的报警,避免因为GPU资源的约束引发业务风险。


另外相比自建的Prometheus方案, ARMS的全面托管的 Prometheus 服务可以提供以下特性,更好的为您的业务应用保驾护航

  • 高可用、可扩展的 Prometheus Server
  • 与阿里云容器服务深度集成
  • 监控数据无限存储能力

前提

使用步骤

  1. 登录ARMS控制台, 选择Kubernetes所在的集群
  2. 在ARMS控制台中prometheus界面中,点击集群列表中需要监控集群的安装按钮。此过程需要2分钟左右,请点击确认。


prometheus_1

3. 在该集群的已安装插件中可以看到 GPU NodeGPU APP,分别从节点维度和应用维度监控GPU资源


prometheus_2

4. 我们可以运行一个TensorFlow的测试程序验证

apiVersion: apps/v1beta1
kind: StatefulSet

metadata:
  name: test
  labels:
    app: test

spec:
  replicas: 1
  serviceName: "test"
  podManagementPolicy: "Parallel"
  selector: # define how the deployment finds the pods it manages
    matchLabels:
      app: test

  template: # define the pods specifications
    metadata:
      labels:
        app: test

    spec:
      hostNetwork: true
      hostPID: true
      containers:
      - name: test
        image: registry.cn-shanghai.aliyuncs.com/tensorflow-samples/tensorflow-gpu-mem:10.0-runtime-centos7
        command:
          - python3
          - /app/main.py
        resources:
          limits:
            nvidia.com/gpu: 1


部署成功后,查看应用的状态,可以知道应用的名称是test-0

# kubectl get po
NAME     READY   STATUS    RESTARTS   AGE
test-0   1/1     Running   0          63m

5. 进入GPU Node从节点维度监控


5.1 可以看到总的监控指标分为三个部分,最上面的部分是GPU的平均温度,总能耗和每个节点的显存使用。可以看到当GPU应用部署之后,节点的GPU


prometheus_3




5.2 而第二部分是GPU的分配状况,代表集群中的GPU中有多少分配给了工作负载;而右侧是每个节点的GPU数量。从本例子中看到部署Pod前GPU分配数目为0,而右侧的值一直是固定的值。


prometheus_4



5.3 第三部分则是以GPU卡的维度展示温度,能耗和使用率


prometheus_5

6. 如果想从应用的角度监控,则可以进入GPU App页面


6.1 第一行的数据是应用test-0使用的显存百分比和显存量


prometheus_6



6.2 第二行和第三行的数据是应用test-0的能耗,使用率和温度


prometheus_7

总结

通过使用托管Prometheus可以以Kubernetes原生的方式对于GPU资源进行监控, 可以帮助你更好的了解GPU基础架构的性能,以及它和业务性能的关系。我们后续还会支持针对GPU共享的监控。

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
Prometheus Kubernetes 监控
Prometheus 与 Kubernetes 的集成
【8月更文第29天】随着容器化应用的普及,Kubernetes 成为了管理这些应用的首选平台。为了有效地监控 Kubernetes 集群及其上的应用,Prometheus 提供了一个强大的监控解决方案。本文将详细介绍如何在 Kubernetes 集群中部署和配置 Prometheus,以便对容器化应用进行有效的监控。
90 1
|
11天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
104 60
|
12天前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
109 62
|
20天前
|
Kubernetes 应用服务中间件 Linux
k8s--如何将chart包托管至harbor
k8s--如何将chart包托管至harbor
|
1月前
|
机器学习/深度学习 Kubernetes 调度
Kubernetes与GPU的调度:前世今生
本文详细探讨了Kubernetes与GPU的结合使用,阐述了两者在现代高性能计算环境中的重要性。Kubernetes作为容器编排的佼佼者,简化了分布式系统中应用程序的部署与管理;GPU则凭借其强大的并行计算能力,在加速大规模数据处理和深度学习任务中发挥关键作用。文章深入分析了Kubernetes如何支持GPU资源的检测与分配,并介绍了热门工具如NVIDIA GPU Device Plugin和Kubeflow的应用。
|
1月前
|
人工智能 运维 Kubernetes
拥抱智算时代:阿里云容器服务智能、托管、弹性新体验
在2024云栖大会容器计算专场,给大家分享容器服务的新产品体验,本次分享,我们聚焦容器服务是如何通过智能、托管、弹性的产品新体验,来助力客户拥抱智算时代的。
|
2月前
|
Prometheus Kubernetes 监控
Kubernetes(K8S) 监控 Prometheus + Grafana
Kubernetes(K8S) 监控 Prometheus + Grafana
192 2
|
2月前
|
Prometheus Kubernetes Cloud Native
使用prometheus来避免Kubernetes CPU Limits造成的事故
使用prometheus来避免Kubernetes CPU Limits造成的事故
60 7
|
2月前
|
运维 Kubernetes Cloud Native
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
38 0
|
3月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版