阿里云ACK托管集群Pro版共享GPU调度操作指南

简介: 本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。

本文详细介绍了在阿里云容器服务ACK托管集群Pro版中,通过共享GPU调度实现GPU显存和算力精细化分配的操作指南。

一、核心功能概述

ACK托管集群Pro版支持为应用申请GPU显存和算力资源,实现以下两种任务模式:

  • 仅申请显存
  • 同时申请显存和算力

注意: 两种任务模式不能共存于同一节点。

二、前提条件

集群要求

  • • 已创建ACK托管集群Pro版,且版本≥v1.20
  • • 调度器需满足特定版本要求(例如1.28集群需调度器版本≥v1.28.1-aliyun-5.6)

组件要求

  • • 安装共享GPU组件,Chart版本≥1.2.0
  • • cGPU版本≥1.0.5

三、使用限制

算力申请规则

  • • 每张GPU卡算力按100计量(代表100%算力)
  • • 申请值需为5的倍数,最小值5(否则任务提交失败)

地域支持

  • • 仅限特定地域(如北京、上海、深圳、香港、新加坡、美国硅谷等15个地域)

集群创建时间

  • • 2022年3月1日前创建的集群需手动升级调度器(提交工单→卸载旧组件→安装新组件)

四、操作步骤详解

步骤一:创建支持算力分配的节点池

在容器服务控制台创建节点池,关键配置:

  • 节点标签1: ack.node.gpu.schedule=core_mem (开启GPU显存和算力隔离)
  • 节点标签2: ack.node.gpu.placement=binpack (启用Binpack算法分配GPU)

重要提示: 现有GPU节点需先移除再重新加入节点池,不可直接通过kubectl修改标签。

步骤二:验证算力分配功能

执行命令 kubectl get nodes <节点名> -o yaml,检查输出中是否包含 aliyun.com/gpu-core.percentage 字段,确认算力功能已开启。

步骤三:部署测试任务

创建Job示例:

  • 申请资源: 2 GiB显存 + 30%算力(单张GPU卡的30%)

关键YAML配置:

resources:
  limits:
    aliyun.com/gpu-mem: 2   # 显存(单位GiB)
    aliyun.com/gpu-core.percentage: 30  # 算力百分比

验证效果:

  • • 通过 nvidia-smi 查看资源使用情况:显存限制为约2 GiB,算力利用率为30%
  • • 日志刷新速度变慢,确认算力被限制在30%左右

五、注意事项

  • • 多任务共享同一GPU时,nvidia-smi 显示的算力为累计值(如3个30%任务显示90%)
  • • 测试完成后可通过 kubectl delete job cuda-sample 清理任务

总结

本文提供了从环境准备、节点池配置到任务部署的全流程指南,通过共享GPU调度实现GPU资源的精细化管控,显著提升资源利用率。适用于AI训练、推理等需要动态分配GPU算力的场景。

官方文档[1]

引用链接

[1] 官方文档: https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/use-cgpu-to-allocate-computing-power?spm=a2c4g.11186623.0.i15

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
6月前
|
Kubernetes 调度 异构计算
Kubernetes集群中,部分使用GPU资源的Pod出现UnexpectedAdmissionError问题的解决方案。
如果在进行上述检查之后,问题依然存在,可以尝试创建一个最小化的Pod配置,仅请求GPU资源而不
435 5
|
6月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
374 89
|
7月前
|
运维 NoSQL 调度
GPU集群扩展:Ray Serve与Celery的技术选型与应用场景分析
Ray Serve与Celery对比:Ray Serve适用于低延迟、高并发的GPU推理服务,支持资源感知调度;Celery适合CPU密集型的离线批处理,具备成熟的任务队列机制。两者设计理念不同,适用场景各异,可根据任务类型灵活选型。
312 6
GPU集群扩展:Ray Serve与Celery的技术选型与应用场景分析
|
8月前
|
运维 容灾 调度
突破算力瓶颈:库存感知下的多地域 GPU 弹性调度
介绍多集群通过基于库存的弹性调度提供了 GPU 在多地域供给问题的解决方案。
|
存储 Kubernetes API
在K8S集群中,如何正确选择工作节点资源大小? 2
在K8S集群中,如何正确选择工作节点资源大小?
|
Kubernetes API 调度
在K8S集群中,如何正确选择工作节点资源大小?1
在K8S集群中,如何正确选择工作节点资源大小?
|
Kubernetes Serverless 异构计算
基于ACK One注册集群实现IDC中K8s集群以Serverless方式使用云上CPU/GPU资源
在前一篇文章《基于ACK One注册集群实现IDC中K8s集群添加云上CPU/GPU节点》中,我们介绍了如何为IDC中K8s集群添加云上节点,应对业务流量的增长,通过多级弹性调度,灵活使用云上资源,并通过自动弹性伸缩,提高使用率,降低云上成本。这种直接添加节点的方式,适合需要自定义配置节点(runtime,kubelet,NVIDIA等),需要特定ECS实例规格等场景。同时,这种方式意味您需要自行
基于ACK One注册集群实现IDC中K8s集群以Serverless方式使用云上CPU/GPU资源
|
弹性计算 运维 Kubernetes
本地 IDC 中的 K8s 集群如何以 Serverless 方式使用云上计算资源
本地 IDC 中的 K8s 集群如何以 Serverless 方式使用云上计算资源
|
Kubernetes Ubuntu Shell
shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份
在基于 `k8s` 平台的容器化部署环境中,有时候需要快速的实现部署文件的迁移备份,当 `k8s` 平台部署一个 `app` 时,都会相应的产生一堆 `yaml` 文件,如果 `yaml` 文件数量较少,我们可以人工手动的方式进行拷贝,但是当 `yaml` 文件数量多,并且该 `k8s` 平台部署了多个 `app` 时,如果在采用...
904 0
shell 脚本实现 k8s 集群环境下指定 ns 资源的 yaml 文件备份
|
Prometheus Kubernetes 监控
k8s集群监控(2)-部署kube-state-metrics对资源对象监控
kube-state-metrics对k8s集群中的资源对象监控,包括 pod 、 deployment, service
k8s集群监控(2)-部署kube-state-metrics对资源对象监控

相关产品

  • 容器服务Kubernetes版