關於 GKE 中的 Ray

本頁面簡介 Ray Operator 和相關自訂資源,說明如何在 Google Kubernetes Engine (GKE) 部署及管理 Ray 叢集和應用程式。

Ray 是開放原始碼的整合式運算架構,可擴充 AI/機器學習和 Python 應用程式。Ray 提供一組程式庫,可將 AI/機器學習的運算執行階段分配至多個運算節點。

如要瞭解如何在 GKE 上啟用 Ray operator,請參閱「在 GKE 上啟用 Ray operator」。

在 GKE 使用 Ray Operator 的優點

如要在 GKE 部署及管理 Ray 叢集,建議使用 Ray Operator。在 GKE 上執行 Ray Operator 時,您可享有 Ray 的 Python 支援,以及 GKE 的企業級可靠性、可攜性和可擴充性。

GKE 上的 Ray Operator 是以 KubeRay 為基礎,提供專為管理 Ray 叢集而設計的宣告式 Kubernetes API。這表示您可以在 GKE 上,與其他容器化工作負載一起佈建、調度資源及管理 Ray 部署項目。

GKE 上的 Ray 運算子運作方式

在 GKE 叢集啟用 Ray Operator 後,GKE 會自動安裝及託管 KubeRay Operator。

KubeRay 提供 Kubernetes 自訂資源,用於管理 Kubernetes 上的 Ray 部署,包括:

RayCluster 自訂資源

RayCluster 自訂資源可讓您指定 GKE 部署為 Kubernetes Pod 的 Ray 叢集。Ray 叢集通常由一個 head Pod 和多個 worker Pod 組成。

RayJob 自訂資源

RayJob 自訂資源可讓您執行單一 Ray 工作。KubeRay 會建立 RayCluster,為工作提供運算資源,然後建立 Kubernetes 工作,將 Ray 工作提交至 RayCluster 的 head Pod。

為有效管理資源,您可以設定 KubeRay,在工作順利完成後自動清理 RayCluster。

RayService 自訂資源

RayService 自訂資源可讓您設定 Ray Serve 應用程式,例如用於提供模型和推論的應用程式。KubeRay 會建立 RayCluster 來提供運算資源,然後按照 Ray Serve 設定部署 Ray Serve 應用程式。

Ray on GKE 共同責任

如果選擇透過 Ray 運算子在 GKE 執行 Ray 工作負載,請務必瞭解 Google Cloud和您 (客戶) 之間的責任劃分:

Google 的責任

  • 維護 KubeRay 運算子的可靠性和運作時間。
  • 管理 KubeRay operator 的版本升級。
  • KubeRay 專屬功能,用於管理 RayCluster、RayJob 和 RayService 自訂資源。

客戶責任

  • 維護 Ray head 和 Ray worker Pod 使用的容器映像檔。
  • 維護 Ray head 和 Ray worker Pod 的版本管理和升級。
  • 為 Ray 叢集設定資源需求 (CPU、GPU、TPU、記憶體等)。
  • 遵循保護 Ray 叢集的最佳做法。
  • Ray 應用程式的可靠性和監控。

詳情請參閱「GKE 共同責任」。

後續步驟