关于 Google Kubernetes Engine (GKE) 上的 Ray


本页面简要介绍用于在 Google Kubernetes Engine (GKE) 上部署和管理 Ray 集群和应用的 Ray Operator 和相关自定义资源。

Ray 是一种开源统一计算框架,可用于扩缩 AI/机器学习和 Python 应用。Ray 提供了一组库,用于在多个计算节点之间为 AI/机器学习分发计算运行时。

如需了解如何启用 GKE 上的 Ray Operator,请参阅启用 GKE 上的 Ray Operator

为何使用 GKE 上的 Ray Operator

Ray Operator 是用于在 GKE 上部署和管理 Ray 集群的推荐方法。运行 GKE 上的 Ray Operator 时,您可以从 Ray 对 Python 的支持以及 GKE 的企业级可靠性、可移植性和可伸缩性中获益。

GKE 上的 Ray Operator 基于 KubeRay,后者提供专为管理 Ray 集群而设计的声明式 Kubernetes API。这意味着,您可以在 GKE 上借助其他容器化工作负载来预配、扩缩和管理 Ray 部署。

GKE 上的 Ray Operator 的工作原理

在 GKE 集群中启用 Ray Operator 后,GKE 会自动安装并托管 KubeRay 操作器。

KubeRay 提供 Kubernetes 自定义资源来管理 Kubernetes 上的 Ray 部署,包括:

RayCluster 自定义资源

借助 RayCluster 自定义资源,您可以指定 GKE 以 Kubernetes Pod 形式部署的 Ray 集群。Ray 集群通常由单个头 Pod 和多个工作器 Pod 组成。

RayJob 自定义资源

借助 RayJob 自定义资源,您可以执行单个 Ray 作业。KubeRay 会创建一个 RayCluster 来为作业提供计算资源,然后创建一个 Kubernetes 作业,该作业会将 Ray 作业提交到 RayCluster 的头 Pod。

为了高效地管理资源,您可以将 KubeRay 配置为在作业成功完成后自动清理 RayCluster。

RayService 自定义资源

借助 RayService 自定义资源,您可以配置 Ray Serve 应用,例如用于模型部署和推理的应用。KubeRay 会创建一个 RayCluster 来提供计算资源,然后按照 Ray Serve 配置的指定来部署 Ray Serve 应用。

GKE 上的 Ray 共担责任

如果您选择使用 Ray Operator 在 GKE 上运行 Ray 工作负载,请务必了解 Google Cloud 与您(即客户)之间的责任划分:

Google 责任

  • 维护 KubeRay 操作器的可靠性和正常运行时间。
  • 管理 KubeRay 操作器的版本升级。
  • 用于管理 RayCluster、RayJob 和 RayService 自定义资源的特定于 KubeRay 的功能。

客户责任

  • 维护用于 Ray 头 Pod 和 Ray 工作器 Pod 的容器映像。
  • 维护 Ray 头 Pod 和 Ray 工作器 Pod 的版本控制和升级。
  • 为 Ray 集群配置资源要求(CPU、GPU、内存等)。
  • 遵循保护 Ray 集群的最佳实践。
  • 为您的 Ray 应用提供可靠性和监控。

如需了解详情,请参阅 GKE 共担责任

后续步骤