使用python sdk比较容易构建pipeline workflow,在此对workflow的构建流程做解析。
由于sdk生成workflow yaml文件后,argo crd直接通过yaml就能完成workflow在k8s集群创建任务,流程解析会停留在workflow提交之前。
在创建工作流时可以使用临时组件,也可以使用复用组件。
分别介绍这两种方式的创建过程。
Component
使用临时组件构建的workflow包括3个要素:
- ContainerOp
- pipeline func
- pipeline decorator
一个简单的例子:
@ep.pipeline(
name='demo-pipelines',
description='build pipeline with tmp components using easy-kubeflow.'
) # 装饰器函数
def PipelinesTest(): # workflow核心方法
# workflow组件
# build load data op
load_data = Component(...)
# build train op
train = Component(...)
# build predict op
predict = Component(...)
多个临时组件op之间的依赖关系构建有两种方式:
- 显示的配置临时组件op之间的依赖关系
eg. train.after(load_data) predict.after(load_data, train)
- 配置op的输入数据中指定依赖关系
train op配置输入的数据为load_data op输出
eg. train