KubeRay:在Kubernetes上运行Ray应用的强大工具
项目基础介绍和主要编程语言
KubeRay是一个开源的Kubernetes操作员,旨在简化在Kubernetes上部署和管理Ray应用的过程。该项目主要使用Go语言进行开发,同时也涉及Python、Makefile、Shell、Mustache、Dockerfile和Smarty等多种编程语言和技术。
项目核心功能
KubeRay的核心功能包括:
-
KubeRay核心组件:提供三个自定义资源定义(CRD),分别是RayCluster、RayJob和RayService。这些资源帮助用户轻松运行各种工作负载。
- RayCluster:KubeRay完全管理RayCluster的生命周期,包括集群的创建/删除、自动扩展和故障容错。
- RayJob:KubeRay自动创建RayCluster并在集群就绪时提交作业,还可以配置RayJob在作业完成后自动删除RayCluster。
- RayService:由RayCluster和Ray Serve部署图组成,提供RayCluster的零停机升级和高可用性。
-
社区维护组件(可选):
- KubeRay APIServer:提供简化的配置层,用于管理KubeRay资源,常用于支持用户界面的后端。
- KubeRay Python客户端:提供API,用于从Python应用程序中处理RayCluster。
- KubeRay CLI:通过命令行界面管理KubeRay资源。
项目最近更新的功能
截至2023年9月,KubeRay的最新更新包括:
- 文档迁移:所有面向用户的KubeRay文档已迁移到Ray文档中,KubeRay仓库仅保留与开发和维护相关的文档。
- 快速启动指南:新增了RayCluster、RayJob和RayService的快速启动指南。
- 示例应用:增加了多个示例应用,如在Kubernetes上使用Ray Train进行XGBoost训练、PyTorch ResNet模型训练、MobileNet图像分类器服务、StableDiffusion文本到图像模型服务等。
- Kubernetes生态系统集成:包括与AWS Application Load Balancer、GKE Ingress、Nginx、Prometheus和Grafana、Volcano、Kubeflow、MCAD等的集成。
- 外部博客文章和演讲:增加了多个外部博客文章和演讲,涵盖了KubeRay在不同公司的应用案例和技术分享。
KubeRay通过这些更新,进一步增强了其在Kubernetes上运行Ray应用的能力,提供了更丰富的功能和更好的用户体验。