科技 Bestblogs · 腾讯技术工程 · 昨天 17:36 · AI 生成
腾讯 Ray 团队实践:K8s + Ray 如何支撑超大规模 AI Workload 文章详解了腾讯在万卡级集群中,通过 KubeRay 联邦架构实现 K8s 与 Ray 协同调度 AI 工作负载的实践。核心贡献在于展示了跨集群 CPU/GPU 异构资源统一调度、弹性伸缩与自动化容灾的具体方案,对比了 Ray 与 Spark/Flink 的调度差异。适合关注 AI 基础设施、分布式计算或大规模训练的工程师阅读。原文 ↗ 原文 ↗
核心观点
▍ K8s 与 Ray 通过 KubeRay Operator 形成自底向上、由粗到细的协同调度链路,是解决超大规模 AI 工作负载资源管理难题的关键架构。 ▍ 腾讯基于 KubeRay 联邦架构,实现了在多个 K8s 集群间对 CPU/GPU 异构资源的统一调度与弹性伸缩,能支撑万卡规模。 01 Ray 调度核心对象是进程级计算单元,通过 @ray.remote 声明角色资源需求,支持异构资源调度、动态分配与高容错,由 Single-Controller 统一编排。 02 K8s 负责将 Pod 调度到物理节点,Ray Scheduler 再将 Worker 进程调度到 Pod 内的资源,实现资源层层细化分配。 03 腾讯联邦架构中,多个 K8s 集群部署 KubeRay Workload,仅一个集群负责 Global Control Store (GCS),其余集群的 Worker 节点加入同一 Ray 集群。 04 腾讯构建了三级自动调优机制:动态扩缩容、Pod 重调度、任务重调度,并结合故障感知-标记-处理闭环,实现自动化容灾。 05 文章对比了 Ray 与 Spark、Flink、PyTorch 的调度能力,指出 Ray 在进程级调度、动态灵活性及对 AI 训练/推理负载的适应性上具有优势。 反方 / 局限
— 文章提到 Ray 的联邦架构增加了运维复杂度,但未深入讨论其在大规模部署时可能遇到的 GCS 单点瓶颈、跨集群网络延迟对调度性能的影响,以及与其他编排框架(如 Volcano、YuniKorn)的竞争关系。
前置背景 KubeRay 联邦的跨集群底座
文章提到腾讯基于 KubeRay 联邦实现跨集群调度,但未展开联邦架构本身。KubeRay Federation 是一个开源方案,由小红书工程师向社区提交(kuberay#4561),其核心是让多个 K8s 集群共享一个 Ray 集群,仅一个集群运行 GCS,其余作为 Worker 加入。这与字节跳动百万节点的 K8s 集群联邦(控制面单元化)不同:KubeRay 联邦更轻量,专为 AI 工作负载设计,不涉及跨集群应用编排,而是专注算力池的统一。
▸ 2 条关联资料
▼
技术原理 Ray 的单点 GCS 与容错困局
文章提到 Ray 的 Single-Controller 统一编排任务流,但没提一个关键局限:Ray 的全局控制存储 GCS 目前是单点故障,运行在 Head Node 上。GCS 集中管理所有系统状态(对象表、函数表、事件日志),虽然这让调度器、对象存储等组件可以无状态化以简化故障恢复,但一旦 Head Node 宕机,整个 Ray 集群无法恢复。腾讯在万卡实践中通过 KubeRay 联邦+自动化容灾机制缓解了这一问题,但 GCS 单点仍是 Ray 架构的固有硬伤。
▸ 2 条关联资料
▼
应用场景 星脉网络:万卡训练的通信底座
文章聚焦 K8s+Ray 的调度层,但万卡集群真正卡脖子的往往是网络。腾讯星脉网络通过多轨道架构、TiTa 协议和 GOR 全局路由控制器,将 0.1% 的丢包对算力的损失控制在 50% 以内,使集群通信效率达 90% 以上。星脉提供 3.2T 通信带宽,提升 40% GPU 利用率,是腾讯万卡调度的网络前提。调度层的弹性伸缩与容灾,依赖网络层的零丢包、低延迟保障——否则再好的调度策略也无法高效执行。
▸ 3 条关联资料
▼
平行视角 Volcano 的 Gang 调度 vs Ray 的进程级调度
文章强调 Ray 的进程级调度如何灵活,但在 AI 训练场景中,另一条技术路线——Volcano 调度器——通过 Gang Scheduling(成组调度)解决容器死锁问题。K8s 原生调度器依次调度 Pod,在资源不足时导致部分容器运行、部分挂起,造成资源浪费。Volcano 要求同一 Job 的 Pod 要么全部成功调度,要么全部不调度,避免了“竹篮打水”。两种方案并不互斥:Ray 在进程级做细粒度编排,Volcano 在 Pod 级做批量准入,各有适用场景。
▸ 3 条关联资料
▼
延伸追问 KubeRay 联邦会成为AI Infra标配吗?
KubeRay Federation 的方案由小红书工程师提出并贡献给社区,腾讯也基于它构建了万卡集群。但跨集群联邦在 K8s 生态中已有 Karmada、Federation v2 等成熟方案,KubeRay 联邦是否值得另起一套?关键变量在于:当 AI 集群规模从万卡走向十万卡,单一 Ray 集群的 GCS 单点压力是否可接受?如果 Ray 社区未来解决 GCS 高可用,KubeRay 联邦还会被需要吗?这些问题的答案将决定这条技术路线的生命周期。
▸ 2 条关联资料
▼