KubeRay 入门#

自定义资源定义 (CRD)#

KubeRay 是一个功能强大的开源 Kubernetes operator,可简化在 Kubernetes 上部署和管理 Ray 应用。它提供了 3 种自定义资源定义 (CRD)

  • RayCluster: KubeRay 全面管理 RayCluster 的生命周期,包括集群创建/删除、自动伸缩和确保容错。

  • RayJob: 使用 RayJob,KubeRay 会在集群就绪后自动创建 RayCluster 并提交作业。你还可以配置 RayJob 在作业完成后自动删除 RayCluster。

  • RayService: RayService 由两部分组成:RayCluster 和 Ray Serve 部署图。RayService 为 RayCluster 提供零停机升级和高可用性。

你应该选择哪个 CRD?#

我们毫不犹豫地推荐使用 RayService 来服务模型,以及使用 RayCluster 来开发 Ray 应用。但是,如果用例不是模型服务或原型开发,你该如何在 RayClusterRayJob 之间进行选择呢?

问:在集群升级期间(例如升级 Ray 版本)是否可以接受停机?#

如果不能,请使用 RayJob。RayJob 可以配置为在作业完成后自动删除 RayCluster。你可以使用 RayJob 为每次作业提交切换 Ray 版本和配置。

如果可以,请使用 RayCluster。Ray 本身不支持滚动升级;因此,你需要手动关闭并创建一个新的 RayCluster。

问:你是否部署在公共云提供商(例如 AWS、GCP、Azure)上?#

如果能,请使用 RayJob。它允许在作业完成后自动删除 RayCluster,帮助你降低成本。

问:你是否关心启动 RayCluster 带来的延迟?#

如果能,请使用 RayCluster。与 RayJob 不同的是,RayJob 在每次提交作业时都会创建一个新的 RayCluster,而 RayCluster 只创建一次集群,并且可以多次使用。

在 Kubernetes 上运行你的第一个 Ray 应用!#