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 应用。但是,如果用例不是模型服务或原型开发,你该如何在 RayCluster 和 RayJob 之间进行选择呢?
问:在集群升级期间(例如升级 Ray 版本)是否可以接受停机?#
如果不能,请使用 RayJob。RayJob 可以配置为在作业完成后自动删除 RayCluster。你可以使用 RayJob 为每次作业提交切换 Ray 版本和配置。
如果可以,请使用 RayCluster。Ray 本身不支持滚动升级;因此,你需要手动关闭并创建一个新的 RayCluster。
问:你是否部署在公共云提供商(例如 AWS、GCP、Azure)上?#
如果能,请使用 RayJob。它允许在作业完成后自动删除 RayCluster,帮助你降低成本。
问:你是否关心启动 RayCluster 带来的延迟?#
如果能,请使用 RayCluster。与 RayJob 不同的是,RayJob 在每次提交作业时都会创建一个新的 RayCluster,而 RayCluster 只创建一次集群,并且可以多次使用。