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