开始使用 KubeRay#
自定义资源定义 (CRDs)#
KubeRay 是一个强大的开源 Kubernetes 操作符,简化了 Ray 应用程序在 Kubernetes 上的部署和管理。它提供了 3 个自定义资源定义(CRD):
RayCluster: KubeRay 完全管理 RayCluster 的生命周期,包括集群的创建/删除、自动扩展和确保容错性。
RayJob:使用 RayJob,KubeRay 会在 RayCluster 准备好时自动创建集群并提交作业。您还可以配置 RayJob 在作业完成后自动删除 RayCluster。
RayService: RayService 由两部分组成:RayCluster 和 Ray Serve 部署图。RayService 为 RayCluster 提供零停机升级和高可用性。
你应该选择哪个CRD?#
使用 RayService 来服务模型,以及使用 RayCluster 来开发 Ray 应用程序,是我们毫不犹豫的推荐。然而,如果使用场景不是模型服务或原型设计,你该如何在 RayCluster 和 RayJob 之间做出选择?
Q: 在集群升级期间(例如升级 Ray 版本)是否可以接受停机?#
如果没有,请使用 RayJob。RayJob 可以配置为在作业完成后自动删除 RayCluster。您可以使用 RayJob 在每次作业提交时切换 Ray 版本和配置。
如果是,请使用 RayCluster。Ray 本身不支持滚动升级;因此,您需要手动关闭并创建一个新的 RayCluster。
Q: 您是否在公共云提供商(例如 AWS、GCP、Azure)上部署?#
如果是,使用 RayJob。它允许在作业完成后自动删除 RayCluster,帮助您降低成本。
Q: 你是否关心启动 RayCluster 引入的延迟?#
如果是,请使用 RayCluster。与每次提交作业时都会创建新 RayCluster 的 RayJob 不同,RayCluster 只需创建一次,并且可以多次使用。