适用于 Tekton 的 Kubeflow Pipelines SDK
旧版本
本页介绍 Kubeflow Pipelines V1,有关最新信息请参阅 V2 文档。
注意,虽然 V2 后端能够运行由 V1 SDK 提交的流水线,但我们强烈建议迁移到 V2 SDK。作为参考,V1 SDK 的最终发布版本是 kfp==1.8.22
,其参考文档在此处可用。
您可以使用 KFP-Tekton SDK 在 带有 Tekton 后端的 Kubeflow Pipelines 上编译、上传和运行您的 Kubeflow Pipeline DSL Python 脚本。
SDK 包
kfp-tekton
SDK 是 Kubeflow Pipelines SDK 的扩展,增加了 TektonCompiler
和 TektonClient
。
kfp_tekton.compiler
包含用于将流水线 Python DSL 编译为 Tekton PipelineRun YAML 规范的类和方法。此包中的方法包括但不限于以下内容:kfp_tekton.compiler.TektonCompiler.compile
将您的 Python DSL 代码编译成单个静态配置(YAML 格式),Kubeflow Pipelines 服务可以处理该配置。Kubeflow Pipelines 服务将静态配置转换为一组 Kubernetes 资源进行执行。
kfp_tekton.TektonClient
包含用于 Kubeflow Pipelines API 的 Python 客户端库。此包中的方法包括但不限于以下内容:kfp_tekton.TektonClient.upload_pipeline
上传本地文件以在 Kubeflow Pipelines 中创建新的流水线。kfp_tekton.TektonClient.create_experiment
创建一个流水线实验并返回一个实验对象。kfp_tekton.TektonClient.run_pipeline
运行流水线并返回一个运行对象。kfp_tekton.TektonClient.create_run_from_pipeline_func
编译流水线函数并将其提交到 Kubeflow Pipelines 执行。kfp_tekton.TektonClient.create_run_from_pipeline_package
在 Kubeflow Pipelines 上运行本地流水线包。
安装 KFP-Tekton SDK
您需要 Python 3.5 或更高版本才能使用适用于 Tekton 的 Kubeflow Pipelines SDK。我们建议首先使用 Miniconda 或虚拟环境管理器(例如 virtualenv
或 Python 3 的 venv
模块)创建一个 Python 虚拟环境。
python3 -m venv .venv-kfp-tekton
source .venv-kfp-tekton/bin/activate
您可以从 PyPi 安装 kfp-tekton
编译器的最新版本。
pip3 install kfp-tekton --upgrade
编译 Kubeflow Pipelines DSL 脚本
安装 kfp-tekton
Python 包后,kfp-tekton
Python 包会附带 dsl-compile-tekton
命令行可执行文件,该文件应在您的终端 shell 环境中可用。
如果您克隆了 kfp-tekton
项目,可以在 samples
文件夹或 sdk/python/tests/compiler/testdata
文件夹中找到示例流水线。
dsl-compile-tekton \
--py sdk/python/tests/compiler/testdata/parallel_join.py \
--output pipeline.yaml
注意:如果 KFP DSL 脚本包含调用 kfp_tekton.compiler.TektonCompiler.compile()
函数的 __main__
方法
if __name__ == "__main__":
from kfp_tekton.compiler import TektonCompiler
TektonCompiler().compile(pipeline_func, "pipeline.yaml")
然后可以直接从命令行使用 python3
运行 DSL 脚本来编译流水线,并在同一目录中生成 Tekton YAML 文件 pipeline.yaml
。
python3 pipeline.py