Skip to content

1. 背景:为什么需要 Kubeflow

一句话理解:在 Kubernetes 上跑机器学习工作负载时,开发、实验、训练、调参、服务每个阶段都要自己拼一套工具——Kubeflow 把这些阶段统一成一组 K8s-native 组件,让 ML 平台从"脚本作坊"变成"声明式工厂"。

1.1 裸跑 ML 工作负载的痛苦

假设你负责一个 AI 平台,团队每天要:

  • 用 Jupyter Notebook 做特征工程。
  • 用 Airflow / Cron 触发训练脚本。
  • 手动调超参,用 Excel 记录结果。
  • torchrunmpirun 起分布式训练,手动管理 Pod。
  • 训练完把模型拷到对象存储,再手写 YAML 部署 vLLM/KServe。
  • 没有统一的 artifact、 lineage、权限、可观测。

每个环节用不同工具,衔接靠人工:

阶段裸跑方式痛点
开发本地 Jupyter / VS Code + 远程 SSH环境不一致、GPU 抢不到、数据搬来搬去
实验脚本 + CSV/Excel不可复现、无法追踪、参数散落成文件
流水线Airflow / Argo / shell与 K8s 资源割裂、难复用、难缓存
超参搜索for-loop / Optuna 裸跑资源管理难、Trial 失败难恢复、结果不聚合
分布式训练手动起 TF/PyTorch Job网络配置烦、容错差、扩容麻烦
模型服务手写 Deployment/Ingress金丝雀、扩缩、A/B 测试重复造轮子
协作共享账号 / 手工 namespace无隔离、权限混乱

裸跑时每新增一个模型或团队,平台工程师就要重新搭一套胶水。

1.2 Kubeflow 是什么

Kubeflow 是一个面向机器学习的 Kubernetes 发行版/平台,最初由 Google 在 2017 年发布,后来成为开源社区项目。它的核心思路:

把 ML 生命周期的每个阶段都做成 K8s CRD + Controller + Web UI

典型组件:

  • Notebooks:Jupyter/Lab/VS Code server,由 Notebook Controller 管理。
  • Pipelines:ML 工作流编排,用 Python DSL 定义 DAG。
  • Katib:AutoML,超参搜索与神经架构搜索。
  • Training Operator:分布式训练作业(TFJob、PyTorchJob、MPIJob、XGBoostJob、PaddleJob、MXNetJob)。
  • KServe(原 KFServing):模型服务。
  • Central Dashboard:统一入口。
  • Profiles / KFAM:多租户与用户命名空间。

1.3 Kubeflow 与相邻工具的对比

工具定位与 Kubeflow 的关系
Airflow通用数据/任务编排Kubeflow Pipelines 更聚焦 ML:artifact 血缘、缓存、实验管理
MLflow实验追踪 + 模型注册常与 Kubeflow Pipelines 集成,互补而非替代
KServe模型服务Kubeflow 的 serving 组件,也可独立使用
Ray分布式计算/训练/推理可与 Training Operator(KubeRay)或 KServe 组合
SageMaker / Vertex托管云 ML 平台Kubeflow 是开源自托管替代,更灵活但运维更重
Argo Workflows通用 K8s 工作流KFP v1 后端基于 Argo;KFP v2 逐步解耦

关键区分

  • Kubeflow vs MLflow:MLflow 管“实验和模型资产”,Kubeflow 管“ML 工作负载在 K8s 上的全生命周期”。
  • Kubeflow vs Airflow:Airflow 是时间/依赖驱动的任务调度;Kubeflow Pipelines 是数据/artifact 驱动的 ML DAG。
  • Kubeflow vs Ray:Ray 是运行时;Kubeflow 是平台层,可编排 Ray 集群(KubeRay)。

1.4 Kubeflow 解决了什么(和不解决什么)

Kubeflow 解决

  • ✅ 统一的 K8s-native ML 工作台(Notebook + Dashboard)。
  • ✅ 可复现的 pipeline(版本化、缓存、artifact 血缘)。
  • ✅ 自动化超参搜索与 NAS。
  • ✅ 声明式分布式训练(一行 YAML 跑 torchrun/horovodrun)。
  • ✅ 模型服务与流量治理(通过 KServe)。
  • ✅ 多租户隔离(Profile + namespace + Istio auth)。

Kubeflow 不解决

  • ❌ 数据标注、数据仓库、特征平台(需 Feast/自定义)。
  • ❌ 通用 ETL(需 Airflow/Spark/Flink)。
  • ❌ 商业化的模型市场、自动扩缩到零的极致优化(KServe 可部分解决)。
  • ❌ 零运维:Kubeflow 本身也需要升级、监控、调优。

1.5 AI 平台为什么需要 Kubeflow

一个成熟 AI 平台最终会长成这样:

算法工程师 / 数据科学家


[Central Dashboard] — 统一入口

        ├─ Notebooks — 开发/实验
        ├─ Pipelines — 编排训练/数据流程
        ├─ Katib — 超参搜索
        ├─ Training Operator — 分布式训练
        ├─ KServe — 模型服务
        └─ Model Registry / MLflow — 模型/实验资产


    Kubernetes


    GPU / CPU 节点池

Kubeflow 是这一层里把 ML 各阶段标准化到 K8s 的关键:

  • 数据科学家:在 Notebook 里写代码,一键提交 Pipeline / Katib / Training Job。
  • 平台工程师:用 CRD 扩展新能力,用 Kustomize/Helm 管理发行版。
  • SRE:统一在 K8s 上做可观测、资源配额、多租户、升级。

本章小结

  • 痛点:裸跑 ML 各阶段工具割裂,重复工程、不可复现、难协作。
  • 定位:Kubeflow 是 K8s 原生 ML 平台,把 Notebook、Pipeline、Katib、Training、Serving 统一起来。
  • 对比:比 Airflow 更 ML 专用;比 MLflow 更偏工作负载编排;不替代 KServe/Ray,而是集成它们。
  • 价值:把 ML 生命周期从脚本集合变成声明式、可复现、可协作的平台。

参考来源

Released under CC-BY-SA-4.0 License.