Kubeflow 1.8:通过 Python 工作流交付 Kubernetes MLOps
Kubeflow v1.8 强大的工作流独特地提供了 Kubernetes 原生的 MLOps,这大大减少了 YAML 的处理。ML 流水线现在构建为模块化组件,从而实现易于链式连接和可复用的 ML 工作流。新的 Katib SDK 减少了手动配置,并简化了调优模型的交付。v1.8 还引入了 PVC Viewer,以便更轻松地进行持久存储管理,无需使用 Kubernetes CLI 存储命令。
Kubeflow 1.8 增加了对 ARM 处理器的支持,简化了 Apple Silicon 用户和 IoT 服务器的采用。1.8 提供了更新的 Tensorflow、PyTorch、Cuda 笔记本镜像示例,并优化了 makefile 流程。通过对底层组件和包的重大升级,Kubeflow 的性能和安全性也得到了提升。
精选和重点交付内容
Kubeflow Pipelines (流水线)
Kubeflow 1.8 包含 KFP 2.0.3 和 KFP SDK 2.4.0。KFP Python SDK 2.4.0 版本包含了在 v2 命名空间中预览过的功能,现在这些功能都得到了完全的官方支持,并增加了许多额外功能。这些功能包括:
- 改进且统一的基于 Python 的组件和流水线编写体验
- 支持将流水线用作组件(流水线中的流水线)
- 各种附加的任务配置
- 编译为与 Argo 无关的流水线定义,使流水线能够一次编译、到处运行
- 改进的 KFP CLI
- 更新的用户文档和参考文档
此流水线版本专注于跨平台可移植性,例如读写 Kubernetes PVC 的功能已移至扩展包 kfp-kubernetes 中,更多信息请参见 Kubeflow 网站上的平台特定功能页面。
此外,允许用户使用 Tekton 后端运行流水线的项目 kfp-tekton 也已更新至 2.0.3 版本,并且 SDK 将编译到相同的流水线规范,SDK 用户可以使用相同的流水线定义在 Argo 和 Tekton 后端上运行。
Katib
Kubeflow v1.8 中更新的 Katib Pythonic SDK 通过简化模型和环境参数的配置和跟踪,帮助开发人员提高模型质量。在此版本中,我们很高兴地宣布新的 KatibConfig API (#2176),以及改进 UI 体验和修复 SDK 中 Bug 的多项提交。部分功能和 Bug 修复包括:
- 将 Tensorflow 版本升级到 v2.13.0 (#2216)
- 在向通道发送数据之前开始等待证书就绪 (#2215)
- 从组件中移除 katib-webhook-cert Secret (#2214)
更多关于此版本的信息可以在版本说明中找到
Training Operator (训练算子)
许多模型开发者在使用 GPU 利用率方面面临挑战,特别是大型语言模型。新的训练算子功能为训练提供了高效的配置、利用和扩展。v1.8 改进了对 gang 调度器(如 volcano、scheduler-plugins 和 koord-schedule)的支持 (#1747)。此外,暂停语义的实现允许外部控制器根据标志的状态删除或不创建 Pod (#1859)。v1.8 还包括工作流更新和 Bug 修复,使得模型训练更加易于使用。部分功能和 Bug 修复包括:
- 将 scheduler-plugins 设置为默认的 gang 调度器。(#1747)
- 由 controller-gen 自动生成 RBAC manifests (#1815)
- 为 PytorchJob 设置正确的环境变量以支持 torchrun,从而支持不同的分布式训练启动方法 (#1840)
- 为 MPIJob 添加默认的 Intel MPI 环境变量 (#1804)
- 将 tfjob-operator 完全整合到 training-operator 中 (#1850)
更多关于此版本的信息可以在版本说明中找到
KServe
Kubeflow v1.8 引入了 KServe 0.11。在此版本中,我们引入了大型语言模型 (LLM) 运行时,增强了 KServe 控制平面,并更新了 Python SDK,改进了对 Open Inference Protocol 的支持,以及使用 poetry 改进了依赖管理。部分功能和 Bug 修复包括:
- 用于 LLM 支持的 TorchServe 0.8.0 (#2980)
- 为 kserve python 运行时实现 v2/open inference 端点 (2655)
- 添加在 KServe 上部署大型语言模型的端到端示例 (2836)
更多关于 KServe 0.11 版本的信息可以在版本说明中找到
简化 ML 工作流的存储
Kubeflow 的 Web 应用增强功能向数据科学家提供了有价值的信息,从而简化了高级工作流。例如,Kubernetes 存储管理,特别是持久卷的管理,对于快速进行数据科学迭代至关重要,但可能需要复杂的手动配置。新引入的 PVC Viewer 使终端用户可以轻松进行存储管理,无需学习底层 CLI 命令。用户可以通过点击和拖动来添加/删除持久卷中的文件和文件目录。这些卷可以轻松地附加到 MLOps 对象(如笔记本)上,从而加快使用不同数据集进行实验的速度。

支持 ARM 机器
Kubeflow 1.8 通过正式引入对 ARM 架构的支持,带来了重大升级 (#7343)。此举确保开发人员可以在更广泛的设备和平台上利用 Kubeflow 强大的机器学习能力,包括 Apple Silicon 和众多 IoT 设备。这一扩展突显了 Kubeflow 的适应性,确保跨各种硬件架构的无缝机器学习工作流。
安全性 - 无根 Kubeflow 更新和修复
在我们持续致力于加强安全性的过程中,版本 1.8 带来了重要的安全修复和创新功能。安全团队的一项值得注意的努力是开发了为未来实现无根 Kubeflow #2455 奠定基础的功能。v1.8 为用户提供了使用可选的 istio-cni 或不使用 istio-cni 运行 Kubeflow 的灵活性。部分功能和 Bug 修复包括:
- 修复 mysql 请求中可能导致拒绝服务 (Denial of Service) 的性能问题 (#9680)
- 修复 Profile controller 和 KFAM 允许未经身份验证的集群内流量的问题 (#7032)
- 添加 oauth2-proxy 作为 oidc-authservice 的可选替代方案 (#2409)
未来的版本将继续完善此无根功能,并计划将 istio-cni 作为默认选项,同时支持 istio ambient mesh 并整合 Pod Security Standards。请加入安全团队
Notebooks (笔记本)
Kubeflow Notebook 1.8 为笔记本容器镜像带来了许多增强功能。
此图表显示了官方镜像之间现在的关系

特别值得注意的是,所有笔记本镜像(CUDA 镜像除外)现在都为 AMD64 和 ARM64 架构构建 (#7357)。此外,通过在镜像文件夹中运行 make docker-build-dep,现在构建自定义镜像变得更加容易。我们还更新了以下软件包版本:
- Python 3.11.6
- JupyterLab 3.6.6
- Tensorflow 2.13.0 和 CUDA 11.8(适用于 Tensoflow CUDA 镜像)
- PyTorch 2.1.0 和 CUDA 12.1(适用于 PyTorch CUDA 镜像)
平台依赖项
Kubeflow 1.8 包含数百个提交。Kubeflow 发布过程包括 Kubeflow 工作组和 Kubeflow 分发版的多次测试。Kubeflow 的配置选项提供了高度的灵活性。在考虑了所有测试选项后,1.8 发布团队将一致性测试和文档的关键依赖项范围缩小到以下内容。
| 组件 | Knative | Istio | Kubernetes | Cert-Manager | Kustomize | Dex | Argo | Tekton | Oidc |
| 1.8 中使用的版本 | 1.10.2 (Serving) 1.10.1 (Eventing) | 1.17.3 | 1.25/1.26 | 1.12.2 | 5.0.3 | 2.36.0 | 3.3.10 | 0.47.5 | e236439 |
1.8 文档包含了 Manifest 工作组提供的总体安装说明,以及每个 Kubeflow 工作组提供的详细功能回顾。大多数工作组已将其更新日志分为几个小节,重点介绍了核心功能、UI 增强、杂项更新、Bug 修复和破坏性变更。
下一步
自宣布 Kubeflow 现已成为 CNCF 孵化项目的一部分以来,社区活动持续大幅增加。社区定期举行会议,并在未来几周内举行 Kubeflow 指导委员会选举。
在 1.8 发布周期中,社区在安全性、问题分类和文档方面持续开展工作。我们接下来的版本将专注于帮助构建用于训练 LLM 的组件以及可扩展性。
如何开始使用 1.8
为了尝试 Kubeflow 1.8,我们推荐访问我们的安装页面,您可以在其中选择不同的 Kubeflow 分发版。对于更高级的用户,我们还提供了 Manifest 安装指南。我们将继续测试和改进文档。如果您发现问题,请随时报告和/或提交 PR,以帮助其他人改进。
加入社区
我们要感谢所有为 Kubeflow 1.8 做出贡献的人,特别是Daniela Plasencia 作为 v1.8 发布经理所做的工作。如您所见,Kubeflow 社区充满活力且多元化,为全球组织解决了实际问题。
想提供帮助?
想提供帮助?Kubeflow 社区的工作组举行公开会议,并一直在寻找更多的志愿者和用户来释放机器学习的潜力。如果您有兴趣成为 Kubeflow 贡献者,请随时查看以下资源。我们期待与您合作!
- 访问我们的Kubeflow 网站或Kubeflow GitHub 页面
- 加入Kubeflow Slack 频道
- 加入 kubeflow-discuss 邮件列表
- 参加每周社区会议