You need to enable JavaScript to run this app.
导航
Ray on VKE产品介绍
最近更新时间:2024.08.20 19:58:56首次发布时间:2024.05.20 11:11:07

EMR on VKE产品中提供Ray在火山容器服务(VKE)下的部署方式。使用 KubeRay Operator在VKE部署Ray。该 Operator 提供了一种 Kubernetes 原生的方式来管理 Ray 集群,KubeRay 支持异构计算节点(包括 GPU),以及在同一 VKE 集群中运行多个 Ray 集群。可以参考官网Ray on Kubernetes

部署架构

图片

  • KubeRay:是一个开源的 Kubernetes Operator,用于简化在 Kubernetes 上部署和管理 Ray 应用程序
  • CRD:KubeRay 引入了三种 Kubernetes 自定义资源定义(CRDs):RayCluster、RayJob 和 RayService,用于帮助用户根据不同的使用案例高效地管理 Ray 集群
    • RayCluster:KubeRay 完全管理 RayCluster 的生命周期,包括集群的创建/删除、自动伸缩和确保容错性。
    • RayJob:使用 RayJob,KubeRay 在集群准备就绪时自动创建一个 RayCluster 并提交作业。还可以配置 RayJob 在作业完成后自动删除 RayCluster。
    • RayService:用于管理 RayCluster和 Ray Serve 应用程序。RayService 为 RayCluster 提供零停机升级和高可用性。

同时EMR管控端提供了集群管理、作业管理等能力,保证用户更好的使用和运维。其中作业管理和Ray HistoryServer功能处于开发中。

KubeRay介绍

通过 KubeRay,用户可以利用 Kubernetes 的强大功能来扩展和管理 Ray 应用程序,使得在云环境或者大规模集群中运行 Ray 应用变得更加简单和高效。主要特点:

  • 简化部署:KubeRay 提供了一系列工具和 YAML 配置模板,使得在 Kubernetes 集群上部署 Ray 变得非常简单。
  • 弹性伸缩:KubeRay 允许 Ray 集群根据工作负载动态地扩展或缩减计算资源,从而优化资源利用率和成本。
  • 租户隔离:KubeRay 支持在同一个 Kubernetes 集群中运行多个 Ray 集群,使得不同的用户或团队可以在隔离的环境中运行他们的应用程序,从而提高资源利用率和安全性。
  • 节约运维成本:KubeRay 支持集成 Kubernetes 的监控和日志系统,方便用户监控和管理 Ray 应用程序。
  • 与云原生生态系统的无缝对接:KubeRay 旨在与云原生生态系统兼容,包括各种云服务提供商和本地 Kubernetes 安装。

总之:KubeRay 通过结合 Ray 的强大分布式计算能力和 Kubernetes 的灵活管理特性,为开发者提供了一个高效、可扩展的平台,用于部署和管理各种复杂的分布式应用。

使用指导

参考集群创建章节,创建Ray服务,这时集群中便存在了KubeRay Operator。 接下来就可以创建RayCluster和RayJob。

KubeRay的创建

创建Ray服务时,可以对KubeRayOperator资源进行配置,默认是1GB的内存和1个CPU,理论上该资源可以支撑近五千个POD。KubeRay Operator的内存规格和所支撑的POD数量是成正比的,当Ray集群中POD总数量增加时,也需要调大KubeRay的内存。也可以参考KubeRay memory and scalability benchmark查阅两者关系。

RayCluster的使用

RayCluster使用时需要创建RayCluster集群,参考RayCluster的使用

RayJob使用

采用yaml文件方式进行,参考RayJob使用章节。RayCluster章节中封装了用例,也可以按照RayJob的Yaml模版格式进行封装后进行执行。