KubeRay
KubeRay 是一个强大的开源 Kubernetes 操作器,它简化了在 Kubernetes 上部署和管理 Ray 应用程序的过程。它提供了几个关键组件:
KubeRay 核心:这是 KubeRay 的官方、完全维护的组件,提供了三个自定义资源定义:RayCluster、RayJob 和 RayService。这些资源旨在帮助您轻松运行各种工作负载。
-
RayCluster:KubeRay 完全管理 RayCluster 的生命周期,包括集群的创建/删除、自动扩展和确保容错性。
-
RayJob:使用 RayJob,KubeRay 会自动创建一个 RayCluster 并在集群准备就绪时提交作业。您还可以配置 RayJob 在作业完成后自动删除 RayCluster。
-
RayService:RayService 由两部分组成:RayCluster 和 Ray Serve 部署图。RayService 为 RayCluster 提供零停机升级和高可用性。
社区管理的组件(可选):一些组件由 KubeRay 社区维护。
-
KubeRay APIServer:它为 KubeRay 资源提供了一层简化的配置。KubeRay API 服务器在一些组织内部用于支持 KubeRay 资源管理的用户界面。
-
KubeRay Python 客户端:这个 Python 客户端库提供了从 Python 应用程序处理 RayCluster 的 API。
-
KubeRay CLI:KubeRay CLI 提供了通过命令行界面管理 KubeRay 资源的能力。
文档
从 2023 年 9 月起,所有面向用户的 KubeRay 文档将托管在 Ray 文档 上。 KubeRay 仓库仅包含与 KubeRay 开发和维护相关的文档。
快速入门
示例
- 在 Kubernetes 上使用 Ray Train XGBoostTrainer(仅 CPU)
- 在 Kubernetes 上使用 GPU 训练 PyTorch ResNet 模型
- 在 Kubernetes 上部署 MobileNet 图像分类器(仅 CPU)
- 在 Kubernetes 上部署 StableDiffusion 文本到图像模型
- 在 Kubernetes 上部署文本摘要生成器
- RayJob 批量推理示例
Kubernetes 生态系统
- 入口:AWS 应用负载均衡器、GKE 入口、Nginx
- 使用 Prometheus 和 Grafana
- 使用 py-spy 进行性能分析
- KubeRay 与 Volcano 的集成
- Kubeflow:交互式开发解决方案
- MCAD:用于单集群或多集群环境中队列和集群调度作业的 Kubernetes 解决方案
外部博客文章
- 使用Ray发展Niantic AR地图基础设施 Niantic(2023年9月6日)
- 在Samsara使用Ray构建现代机器学习平台 Samsara(2023年8月29日)
- 在Google Cloud使用KubeRay在Kubernetes上运行Ray Google(2023年8月15日)
- DoorDash如何使用KubeRay构建时间序列预测的集成学习模型 Doordash(2023年6月20日)
- 使用Open Data Hub进行大规模AI/ML模型批量训练 Red Hat(2023年5月15日)
- 加速基础模型创新的云原生开源技术栈 IBM(2023年5月9日)
- Instacart的分布式机器学习 Instacart(2023年3月17日)
- 使用Ray释放Spotify的ML创新潜力 Spotify(2023年2月1日)
- ACK上Ray集群的最佳实践 阿里云(2024年3月12日)
演讲
- 使用KubeRay为您的AI平台增添动力 Anyscale + Google(2023年11月8日)
- 在Kubernetes中使用KubeRay和Kueue驾驭Ray工作负载 Volcano + DaoCloud(2023年10月17日)
- 使用KubeRay在TPU上提供大型语言模型服务 Google(2023年9月19日)
- KubeRay:Kubernetes上的Ray集群管理解决方案 Anyscale(2023年9月18日)
- 在Kubernetes中使用KubeRay的不同方式 Microsoft(2023年9月18日)
- 通过KubeRay和Sematic在ML工作流中实现按需Ray集群 Sematic(2023年9月18日)
- KubeRay - Kubernetes Ray集群解决方案 Microsoft(2023年2月8日)
- KubeRay x Flyte集成 Flyte(2022年8月24日)
- 在Kubernetes上操作化Ray Serve Anyscale(2022年8月24日)
Helm Charts
KubeRay Helm charts托管在ray-project/kuberay-helm仓库。 请阅读kuberay-operator以部署操作器,以及ray-cluster以部署可配置的Ray集群。 要部署可选的KubeRay API服务器,请参阅kuberay-apiserver。
# 添加Helm仓库
helm repo add kuberay https://ray-project.github.io/kuberay-helm/
helm repo update
# 确认仓库存在
helm search repo kuberay --devel
# 安装CRDs和KubeRay操作器v1.1.0
helm install kuberay-operator kuberay/kuberay-operator --version 1.1.0
# 检查"default"命名空间中的KubeRay操作器Pod
kubectl get pods
# NAME READY STATUS RESTARTS AGE
# kuberay-operator-6fcbb94f64-mbfnr 1/1 Running 0 17s
开发
在提出拉取请求之前,请阅读我们的贡献指南。参考我们的开发指南以在本地构建和运行测试。
参与其中
加入Ray的Slack工作空间,并搜索以下公共频道:
-
#kuberay-questions
(KubeRay用户):该频道旨在帮助KubeRay用户解答问题。Ray和KubeRay维护者将密切关注这些消息。 -
#kuberay-discuss
(KubeRay贡献者):该频道供贡献者讨论KubeRay的下一步计划(如问题、拉取请求、功能请求、设计文档、KubeRay生态系统集成)。所有KubeRay维护者和核心贡献者都在该频道中。
安全
如果您在本项目中发现潜在的安全问题,或认为可能发现了安全问题,我们请您通过我们的Slack频道通知KubeRay安全团队。 请不要创建公开的GitHub问题。
许可
本项目采用Apache-2.0许可证授权。