Netflix 如何借助 Kueue 简化批处理计算 笔记

Netflix 如何借助 Kueue 简化批处理计算

Netflix 正将其计算基础设施向 Kubernetes 原生模型过渡,并将 Kueue 等组件集成到其 Titus 平台中。作为一款云原生任务队列系统,Kueue 已基本取代了其自研批处理解决方案 Compute Managed Batch(CMB)中的自定义逻辑。 此次迁移的动因包括 CMB 系统已使用多年、Kubernetes 的不断演进,以及在现有系统中添加预抢占等功能日益困难。最终选择 Kueue 而非其他替代方案,是因为它与现有的 Titus 调度配置文件兼容,采用势头强劲,并且原生支持预抢占等功能。此次迁移项目名为“Netflix Batch”,旨在实现对用户零影响且不降低吞吐量。该过程涉及将作业提交重定向至已启用 Kueue 的 Titus 单元,并由 Titus 联合机制负责作业分发。 运维调整非常有限,主要涉及一个简单的 UI 开关,用于将租户注册到 Kueue 中。此注册过程将 CMB 现有的租户层次结构和容量配置转换为 Kueue 中的“Cohorts”、“ClusterQueues”和“LocalQueues”概念。关键经验教训包括:保持与旧系统的 API 兼容性以确保用户体验顺畅,以及尽早迁移复杂用例以建立信心。对 Kueue 进行负载测试以确保其能够满足 Netflix 的高吞吐量要求也至关重要,这需要对默认配置进行调整。 目前,Kueue 已全面投入运行,管理着数百万个批处理工作负载,并实现了增强的公平共享和抢占功能。这些改进有助于更好地利用预留容量、减少作业饥饿现象,并加快关键工作负载的周转速度,从而显著提高了平均资源利用率。
CdXz5zHNQW_CNU9jjDeMi.png