Uber 在 Kubernetes 上前往 Ray 的旅程:Ray 安装设置

主要观点:Uber 于 2024 年初将机器学习工作负载迁移至 Kubernetes,旨在简化用户体验,实现资源的高效管理和优化。
关键信息

  • 机器学习工作负载通常以步骤序列建模,多为数据处理重的批处理模式,此前使用 MADLJ 服务,存在资源管理困难、利用率低、容量规划不灵活、与底层基础设施耦合紧密等问题。
  • 目标是抽象底层基础设施复杂性,提供声明式接口,实现跨集群的统一资源视图,从 Mesos 向 Kubernetes 过渡。
  • 设计了包含联邦资源管理的架构,包括用户应用层、全球控制平面(API 服务器和控制器管理器)、本地控制平面(Kubernetes 集群)。
  • 全球控制平面的集群管理以 Kubernetes 方式表示计算集群资源,作业执行和监控通过控制器管理作业状态和调度,还进行作业路由、错误处理、终止和生命周期管理、Ray 集群发现等。
  • 本地控制平面由 Uber 计算团队管理,通过安装 Ray 算子和发明发现机制等实现资源管理。
  • 2023 年计划一年时间迁移 GPU 上的机器学习项目,2024 年初已完成迁移,新架构提升了训练速度,下部分将聚焦资源管理。
    重要细节
  • 自定义资源(CRD)用于表示机器学习工件和作业,控制器管理作业请求和资源分配。
  • 利用 uOwn 服务进行作业调度的组织资源分配,按项目、父组织和共享池的顺序选择资源池。
  • 进行 Ray 集群的就绪检查、错误处理和空闲检测,确保资源的合理使用和释放。
  • 通过扩展 Ray CRD 实现客户端对 Ray 集群的发现,通过添加 init 容器和 sidecar 容器实现 Ray 头部发现和空闲检测。
阅读 34
0 条评论