KubeRay 入门#

自定义资源定义 (CRDs)#

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

  • 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。与每次提交作业都创建一个新 RayCluster 的 RayJob 不同,RayCluster 只创建一次集群,并且可以重复使用。

在 Kubernetes 上运行您的第一个 Ray 应用程序!#