Kubeflow vs KubeRay 对比分析与学习指南

AI Engineering / technical note

对比 Kubeflow 与 KubeRay 的定位、适用场景、架构差异与落地选型建议。

June 01, 2026 标签:kubeflow / kuberay / ray / mlops 阅读

Kubeflow vs KubeRay 对比分析与学习指南

一、项目定位

维度 Kubeflow KubeRay
核心定位 端到端的 MLOps 平台,覆盖 ML 全生命周期 Ray 在 Kubernetes 上的原生运行时,专注分布式计算
底层框架 集成多种框架(TensorFlow、PyTorch、XGBoost 等) 专注于 Ray 生态(Ray Core、Ray Serve、Ray Train 等)
抽象层级 平台级(Pipeline、Experiment、Model Registry) 运行时级(Cluster、Job、Service)
社区归属 CNCF 孵化项目 Ray 社区 + CNCF

二、适用场景对比

2.1 Kubeflow 适用场景

场景 说明
ML Pipeline 编排 需要将数据预处理 → 训练 → 评估 → 部署串成 DAG 工作流
多框架混合训练 团队同时使用 TF、PyTorch、MXNet 等不同框架
实验管理与追踪 需要系统化管理超参搜索、实验对比、模型版本
模型服务化(KServe) 需要标准化的模型推理服务,支持 A/B 测试、金丝雀发布
Notebook 协作 数据科学家需要在 K8s 上使用 Jupyter Notebook
AutoML / Katib 需要自动化超参调优

2.2 KubeRay 适用场景

场景 说明
分布式训练(Ray Train) 大模型分布式训练,尤其是需要弹性伸缩的场景
在线推理服务(Ray Serve) 高性能、低延迟的模型推理,支持动态 batching
分布式数据处理(Ray Data) 大规模数据预处理、特征工程
强化学习(RLlib) 分布式强化学习训练
弹性批处理作业(RayJob) 提交一次性分布式计算任务,自动创建/销毁集群
通用分布式计算 非 ML 场景的大规模并行计算(如仿真、搜索)

三、使用侧重点对比

侧重维度 Kubeflow KubeRay
工作流编排 核心能力,Kubeflow Pipelines 基于 Argo Workflows 不直接提供,需结合外部编排工具
弹性伸缩 依赖 K8s HPA/VPA,粒度较粗 Ray Autoscaler 原生支持,按 task 级别弹性伸缩
资源调度 依赖 K8s 原生调度 + Gang Scheduling 插件 Ray 内部调度 + K8s 调度双层协作
GPU 利用率 每个 Pod 独占 GPU Ray 支持 fractional GPU,多任务共享 GPU
故障恢复 Pod 级别重启 Ray 内置 Actor/Task 级别容错恢复
部署复杂度 重量级,组件众多(Istio、Knative、Argo 等) 轻量级,核心仅一个 Operator
多租户 原生支持 Profile/Namespace 隔离 通过 RayCluster 实例隔离
监控观测 集成 TensorBoard、Metadata Store Ray Dashboard + Prometheus 指标导出

四、学习路径与开发要点

4.1 Kubeflow 学习路线

基础层                    核心组件                     进阶
─────────────────────────────────────────────────────────────
Kubernetes 基础     →    Kubeflow Pipelines (KFP)  →   自定义 Pipeline 组件开发
Docker/容器化       →    Training Operators         →   分布式训练配置调优
Argo Workflows      →    KServe / Model Serving     →   推理服务定制
Istio / Knative     →    Katib (AutoML)             →   自定义搜索算法
Kustomize           →    Notebook Controller        →   平台二次开发

关键学习点:

  1. KFP SDK(v2):掌握 @component 装饰器、Pipeline DSL、Artifact 传递机制
  2. Training Operator:理解 TFJob / PyTorchJob / MPIJob 的 CRD 设计及 Worker 拓扑
  3. KServe:InferenceService CRD、Transformer/Predictor/Explainer 架构、自定义 Runtime
  4. Katib:Experiment → Trial → Suggestion 的控制循环、自定义 Metric Collector
  5. 平台集成:Istio AuthorizationPolicy、Dex 认证、Multi-tenancy Profile

4.2 KubeRay 学习路线

基础层                    核心组件                     进阶
─────────────────────────────────────────────────────────────
Ray Core 编程模型   →    KubeRay Operator           →   Autoscaler 定制
Task & Actor API    →    RayCluster CRD             →   自定义调度策略
Ray 资源管理        →    RayJob CRD                 →   Fault Tolerance 调优
Kubernetes Operator →    RayService CRD             →   GCS FT (HA) 配置
Go / controller-    →    Ray Dashboard 集成         →   多集群管理
runtime

关键学习点:

  1. Ray Core:深入理解 Task/Actor 模型、Object Store、GCS 架构、Placement Group
  2. KubeRay Operator 源码:基于 Go controller-runtime,核心是三个 Controller(RayCluster/RayJob/RayService)
  3. Autoscaler 机制:Ray Autoscaler 如何与 K8s 协作,idleTimeoutSeconds、upscalingMode 等参数调优
  4. RayService 滚动升级:理解 Pending → Active 集群切换的状态机
  5. 资源调度:rayStartParams 中的 num-cpus、num-gpus、resources 与 K8s resource requests 的映射关系

五、核心差异总结

对比项 Kubeflow KubeRay
学习曲线 陡峭(组件多、依赖重) 中等(需先掌握 Ray 编程模型)
开发语言 Python(SDK)+ Go(Operator) Python(Ray)+ Go(Operator)
二次开发入口 Pipeline Component、Custom Serving Runtime Ray Application、Custom Resource 扩展
运维负担 重(Istio + Knative + Argo + Dex + …) 轻(单 Operator,可选 Prometheus)
适合团队 平台团队建设企业级 MLOps 平台 基础设施团队 / 算法团队需要弹性分布式运行时
与对方的关系 可通过 Training Operator 集成 Ray(RayJob) 可作为 Kubeflow Pipeline 的执行后端

六、学习资源推荐

6.1 Kubeflow 学习资源

官方文档与入门

资源 链接
Kubeflow 官方文档首页 https://www.kubeflow.org/docs/
Getting Started 入门指南 https://www.kubeflow.org/docs/started/
Kubeflow Pipelines 快速入门 https://www.kubeflow.org/docs/components/pipelines/getting-started/
Pipelines SDK 用户指南 https://www.kubeflow.org/docs/components/pipelines/user-guides/

核心组件文档

资源 链接
Training Operator - PyTorchJob https://www.kubeflow.org/docs/components/trainer/legacy-v1/user-guides/pytorch/
PyTorchJob Getting Started https://www.kubeflow.org/docs/components/trainer/legacy-v1/getting-started/
KServe 介绍与架构 https://www.kubeflow.org/docs/components/kserve/introduction/
Katib (AutoML) 概览 https://www.kubeflow.org/docs/components/katib/overview/
Katib Getting Started https://www.kubeflow.org/docs/components/katib/getting-started/
Notebooks 快速入门 https://www.kubeflow.org/docs/components/notebooks/quickstart-guide/

GitHub 仓库

资源 链接
Kubeflow 主仓库 https://github.com/kubeflow/kubeflow
Training Operator https://github.com/kubeflow/training-operator
Kubeflow Pipelines https://github.com/kubeflow/pipelines
Katib https://github.com/kubeflow/katib

视频教程

资源 链接
From Notebook to Kubeflow Pipelines to KFServing (KubeCon) https://www.youtube.com/watch?v=VDINH5WkBhA
KServe & Kubeflow 完整教程 https://www.youtube.com/watch?v=TQypOccQ3lc

6.2 KubeRay 学习资源

官方文档与入门

资源 链接
KubeRay 官方文档首页 https://ray-project.github.io/kuberay/
KubeRay Getting Started (Ray Docs) https://docs.ray.io/en/latest/cluster/kubernetes/getting-started.html
KubeRay 开发指南 https://ray-project.github.io/kuberay/development/development/

Ray 框架文档(必读前置)

资源 链接
Ray 官方文档首页 https://docs.ray.io/en/latest/index.html
Ray Getting Started https://docs.ray.io/en/latest/ray-overview/getting-started.html
Ray Core 用户指南 https://docs.ray.io/en/latest/ray-core/user-guide.html

GitHub 仓库

资源 链接
KubeRay 主仓库 https://github.com/ray-project/kuberay
KubeRay API Server 开发文档 https://github.com/ray-project/kuberay/blob/master/apiserver/DEVELOPMENT.md
Ray 教育材料 https://github.com/ray-project/ray-educational-materials
Ray Tutorial (Exercises) https://github.com/ray-project/tutorial

在线课程

资源 链接
Anyscale - Introduction to Ray(官方课程) https://courses.anyscale.com/bundles/introduction-to-ray

博客与实战

资源 链接
Deploying KubeRay in Kubernetes: Production-Ready Guide https://thamizhelango.medium.com/deploying-kuberay-in-kubernetes-a-production-ready-guide-11dfe0335b56
Ray: The Complete Guide from Beginner to Professional https://medium.com/@sjbpr1/ray-the-complete-guide-from-beginner-to-professional-74160d98749b
Mastering Ray: A Beginner’s Guide https://blog.devops.dev/mastering-ray-a-beginners-guide-to-distributed-python-workloads-7d4af4ef341f

6.3 通用基础资源

资源 链接
Kubernetes 官方文档 https://kubernetes.io/docs/
controller-runtime 项目 (Go Operator 开发) https://github.com/kubernetes-sigs/controller-runtime
Argo Workflows 文档 https://argo-workflows.readthedocs.io/
Istio 文档 https://istio.io/latest/docs/

七、选型建议

  • 选 Kubeflow:需要全流程 MLOps 管控(实验追踪、Pipeline 编排、模型注册、多框架支持),且团队愿意承担较重的平台运维成本
  • 选 KubeRay:核心诉求是高性能分布式计算运行时(弹性训练、在线推理、数据处理),追求轻量部署和 Ray 生态原生体验
  • 两者结合:用 Kubeflow 做上层编排和实验管理,用 KubeRay 做底层分布式执行引擎 —— 这也是当前业界越来越常见的架构模式

推荐学习顺序

如果侧重 MLOps 平台建设:

  1. Kubernetes 基础 → 2. Kubeflow 安装与 Pipeline 入门 → 3. Training Operator (PyTorchJob) → 4. KServe 模型服务 → 5. Katib 超参调优 → 6. 平台定制开发

如果侧重分布式计算运行时:

  1. Ray Core 编程模型 → 2. Ray Train / Serve / Data → 3. KubeRay Operator 部署 → 4. RayJob / RayService 实战 → 5. Autoscaler 与 HA 配置 → 6. Operator 源码与定制开发