【阅读原文】戳:突破算力瓶颈:库存感知下的多地域 GPU 弹性调度
概述
在大模型持续突破的浪潮下,选择自建模型推理服务的企业客户通常会使用 Kubernetes 来进行 AI 推理服务的部署和管理。但单个 Kubernetes 集群建立在单个地域,考虑到当前 GPU 资源的供给不足,单个地域的 GPU 库存会进行动态变化,难以实时保障算力供给。如果客户选择一直持有 GPU,而不是随业务流量波动进行弹性扩缩容,那会产生高昂的资源成本。面对单一集群单一地域的资源供给问题,ACK One 舰队推出了基于库存感知的智能调度方案,通过创新的多集群弹性调度机制,完美解决这两个行业痛点,本文将带您深入了解这一技术方案。
ACK One 多集群调度与应用分发
分布式云容器平台 [1]是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级分布式云容器平台,提供多集群统一管理能力。通过 注册集群 [2]将您的其他公共云厂商和 IDC K8s 集群接入到阿里云容器服务 ACK 控制台,并由舰队对这些注册集群以及云上的 ACK、ACK Edge 集群进行多集群统一的应用分发、流量管理、可观测运维管理、安全管理等。
多集群调度与应用分发 [3]是阿里云面向多集群和混合云场景提供的多集群 workload 调度和分发的能力。当单一 ACK 集群或 IDC 集群无法满足大规模推理服务的资源需求,您可以使用该能力,将推理服务调度到多个 ACK 集群,以满足您的资源需求。具有以下多集群调度能力:
- 支持多集群弹性调度能力:在子集群可用资源不足时,舰队基于库存的智能调度能感知各个子集群的库存状况,自动将应用调度到有库存的子集群中,结合即时弹性对节点池进行扩容确保应用可以正常运行
- 支持对于 Workload 的静态权重和动态调度:舰队提供灵活的统一调度策略:静态权重模式下,用户可以配置各个子集群的副本分布比例,舰队会按照权重将应用多个副本拆分并分发到对应的子集群中;动态调度模式下,舰队会根据各个子集群的可用资源动态将应用的副本拆分,可用资源多的子集群会运行更多的副本
- 支持多集群 Gang 调度:舰队深度集成 PytorchJob 和 SparkApp 等分布式计算框架,实现多个集群的 Gang 调度,通过多集群统一的资源池管理,最大化资源利用率,同时提供多租户配额管理能力,确保资源分配的公平性
- 支持重调度:舰队会持续监控应用实例,自动识别应用中调度失败的副本并进行重新调度,确保应用副本保持健康运行状态,显著提升服务可用性和系统稳定性
- 支持应用级别的故障迁移:舰队提供应用在多集群场景下的故障迁移能力,舰队持续监控应用的状态,如果应用状态不符合预期,比如 deployment 的 ready 副本数小于预期,舰队会自动触发在多集群的故障迁移,快速恢复应用
多集群弹性调度的基本原理
ACK One 舰队是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级分布式云容器平台,提供多集群统一管理能力。ACK One 舰队在推理服务方面提供如下能力:
- 可用资源充足时,基于按照子集群可用资源权重的动态副本调度
- 资源不足时,基于各个子集群所在地域的库存情况进行弹性调度
多集群调度会优先根据子集群当前资源情况进行调度,在当前子集群资源不满足应用需求时,弹性调度能力会结合各个子集群也就是各个地域的库存情况进行对推理服务的统一调度,基本原理如下:
- 用户在舰队中创建应用和分发策略,分发策略说明参考分发策略与差异化策略 [4]
- 调度器感知子集群资源不足,无法进行调度
- 调度器触发子集群 ACK GOATScaler 对于库存的检查,然后获取检查结果
- 根据库存结果,调度器进行重新调度,比如子集群 1 所在地域没有库存,子集群 2 所在地域有库存,那推理服务的副本就会被调度到子集群 2
- 应用分发到子集群之后,ACK GOATScaler 进行节点扩容,应用可以正常运行
操作流程
本文以一个 qwen3-8b 推理服务作为示例,演示舰队关联北京和杭州两个子集群,在子集群 GPU 资源不足时,舰队全局调度器会结合子集群所在地域库存将工作负载调度到有库存的集群,配合即时弹性进行节点池扩容来运行工作负载。
- 模型准备:用户可以使用自己的模型或者诸如 qwen 等 modelscope 上的开源模型,将其上传到 oss 中,如有多地域 oss 模型管理的需求,可以参考使用节点即时弹性实现节点的自动扩缩容并提高资源弹性效率 [5]。
- 环境准备:用户需要创建舰队集群和两个(或多个)地域的ACK集群,建立舰队集群和 ACK 集群的关联关系。每个ACK集群都需要开启即时弹性以及创建一个 GPU 节点池,参考创建和管理托管节点池以及开启自动化运维能力 [6]。
- 创建应用:创建推理应用,舰队调度器在当前资源不足的情况会按照子集群所在地域的库存来进行调度,将应用的副本调度到有库存的地域。
- 弹性验证:应用被成功调度之后,查看节点池可以注意到有 GPU 节点正在接入集群,之后应用就可以正常运行。在舰队集群对推理应用进行缩容,十分钟左右可以观察到 GPU 节点会进行缩容,缩容阈值时间可以配置,详情参考创建和管理托管节点池以及开启自动化运维能力 [6]。
- 服务暴露:在舰队创建 ALB 多集群网关,将跨地域多集群推理服务进行统一暴露,详情参考基于ACK One ALB多集群网关实现异地容灾 [7]。
总结
通过舰队的弹性调度能力,我们为企业构建了新一代分布式推理架构。该方案不仅实现跨地域资源的智能弹性伸缩与服务统一纳管,更通过多集群容灾机制打造出天然高可用的服务。在显著降低算力成本的同时,助力企业无缝构建多地域智能服务能力——让 AI 创新不再受地域资源供给与规模的限制。
参考文档:
[1] 分布式云容器平台
[2] 注册集群
[3] 多集群调度与应用分发
[4] 分发策略与差异化策略
[5] 使用节点即时弹性实现节点的自动扩缩容并提高资源弹性效率
[6] 创建和管理托管节点池以及开启自动化运维能力
[7] 基于ACK One ALB多集群网关实现异地容灾
我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。
获取关于我们的更多信息~