開源架構Ray用來管理、執行和最佳化跨AI工作負載的計算需求,它通過一個單一的、靈活的架構統一基礎設施,支援從資料處理到模型訓練到模型服務等人工智慧工作負載。它提供了簡單的API,使得開發人員可以輕鬆地編寫並行和分布式代碼,而無需擔心底層的複雜性。Ray支援多種編程範式,包括任務並行、Actor模型、分布式Object Storage Service等,並支援構建可擴充的人工智慧(AI)和Python應用程式,廣泛應用於機器學習領域。
Ray簡介
Ray是一個開源架構,支援構建可擴充的人工智慧(AI)和Python應用程式,還提供了簡單直觀的API,以簡化分散式運算,便於高效地編寫並行和分布式Python應用程式,廣泛應用於機器學習領域。Ray的統一計算架構由Ray AI libraries、Ray Core和Ray Cluster三層組成。如果您想要瞭解更多關於Ray的相關介紹,請參見開源架構Ray。
KubeRay簡介
KubeRay是一個開源Kubernetes Operator,它簡化了Kubernetes上Ray應用程式的部署和管理。KubeRay專門為Ray叢集在Kubernetes上的運行而設計了聲明式Kubernetes API,提供了RayCluster、RayJob、RayService自訂資源,這些資源旨在協助客戶在Kubernetes上輕鬆運行各種工作負載。
Ray on ACK
Container Service for Kubernetes是全球首批通過Kubernetes一致性認證的Container Service平台,提供高效能的容器應用管理服務,支援企業級Kubernetes容器化應用的生命週期管理。結合ACK的雲原生化部署方式,您可以通過KubeRay在ACK叢集上快速建立Ray Cluster。
與阿里雲SLS日誌、ARMS Prometheus監控、Redis等產品無縫對接,可以增強日誌管理、可觀測和高可用等能力。
Ray autoscaler與ACK autoscaler的彈性功能相結合,可以充分發揮雲的彈效能力,按需提供計算資源。

如果您需要瞭解如何在ACK上安裝KubeRay Operator,請參見安裝KubeRay-Operator組件。
KubeRay Operator組件
推薦您在ACK叢集的組件管理中安裝KubeRay,用來快速部署和管理Ray叢集。ACK中KubeRay組件基於社區KubeRay,您可以通過KubeRay結合ACK的調度、彈性配額、資源優先順序調度等能力,並與Log ServiceSLS、阿里雲Prometheus監控,OSSObject Storage Service等雲產品整合,方便您便捷管理和使用Ray叢集服務。
在ACK叢集的組件管理中安裝KubeRay後,ACK會自動安裝並託管KubeRay Operator,同時在使用者資料面上安裝KubeRay提供的Kubernetes自訂資源:RayCluster/RayJob/RayService。

自訂資源
RayCluster
通過RayCluster自訂資源,您可以在ACK上以Pod形式構建Ray叢集。Ray叢集由單個頭Pod和多個work Pod組成。如果您想瞭解更多RayCluster CR的配置資訊,請參見RayCluster Configuration。

RayJob
RayJob(K8sJobMode模式)分為兩部分:RayCluster和Kubernetes batch job,前者通過Kubernetes pod構建Ray叢集提供計算資源,後者通過
ray job submit命令向RayCluster裡提交單個Ray作業;如果您想瞭解更多的RayJob CR配置資訊,請參見RayJob Configuration。
RayService
RayService 分為兩部分:RayCluster和Ray Serve應用,前者通過Kubernetes pod構建Ray叢集提供計算資源,之後在RayCluster上部署配置Ray Serve應用,用於模型部署和推理的應用。
Ray on ACK責任共擔
使用ACK叢集中的KubeRay組件在ACK上運行Ray工作負載,在ACK下遵循責任共擔原則,以下介紹Ray on ACK的責任共擔模型。
阿里雲負責
KubeRay Operator為ACK託管組件,其安全性由ACK保障,具體如下。
確保KubeRay Operator的配置和使用的鏡像符合安全強化標準,防止潛在安全性漏洞。
保證KubeRay Operator啟動並執行穩定性和高可用性。
維護KubeRay Operator版本,確保組件可用性。
提供和維護KubeRay Operator對RayCluster、RayJob和RayService自訂資源的管理能力。
客戶負責
當您在ACK上通過RayCluster、RayJob、RayService等Kubernetes自訂資源管理和部署Ray叢集以及Ray應用時,您需要負責Ray應用的安全防護和配置更新。
遵循保護Ray叢集的最佳實務。
更新並維護用於配置Ray head Pod和Ray work Pod的容器鏡像。
更新並維護Ray head Pod和Ray work Pod中的Ray版本。
合理配置Ray叢集的資源需求,包括CPU、GPU、記憶體等資源。
監測Ray應用運行狀態,保證Ray應用可用性。
如需詳細瞭解,請參見安全責任共擔模型。