ray-project/kuberay

A toolkit to run Ray applications on Kubernetes

What it solves

KubeRay 簡化了在 Kubernetes 上部署與管理 Ray 應用程式的流程,免除手動配置叢集以執行分散式 AI 工作負載(如訓練與推論)的複雜性。

How it works

它作為 Kubernetes Operator 提供三個主要的 Custom Resource Definitions(CRD)來管理不同類型的工作負載:

  • RayCluster:管理 Ray 叢集的完整生命週期,包括建立、刪除、自動擴縮與容錯。
  • RayJob:自動建立叢集、提交特定工作,並可在完成後自動刪除叢集。
  • RayService:將 RayCluster 與 Ray Serve 部署圖結合,以實現高可用性與零停機升級。

此外,它還提供 kubectl ray 插件以簡化工作流程、用於設定管理的 API 伺服器,以及用於資源可視化的實驗性儀表板。

Who it’s for

此工具設計給需要在 Kubernetes 上大規模執行分散式機器學習與 AI 應用(例如 LLM 線上推論或批次訓練)的開發者與平台工程師。

Highlights

  • Automated Lifecycle Management:自動處理叢集的建立、擴縮與容錯。
  • Integrated Ecosystem:整合 Prometheus、Grafana、Nginx,以及 Volcano、Kueue 等排程系統。
  • Workload-Specific Resources:為長期服務(RayService)與一次性工作(RayJob)提供專屬資源。
  • Scalability:被 Apple、Google、Spotify 等公司使用,以將 AI 基礎設施擴展至上千個節點。