使用 kfp.dls.containerOp() 在 Kubeflow Pipelines 上运行多个脚本

Posted

技术标签:

【中文标题】使用 kfp.dls.containerOp() 在 Kubeflow Pipelines 上运行多个脚本【英文标题】:Using kfp.dls.containerOp() to run multiple scripts on Kubeflow Pipelines 【发布时间】:2021-11-28 01:16:19 【问题描述】:

我一直在使用 Kubeflow dsl container op 命令在我的 Kubeflow 管道的自定义上运行 python 脚本。我的配置看起来像这样:

def test_container_op():
    input_path = '/home/jovyan/'
    return dsl.ContainerOp(
        name='test container',
        image="<image name>",
        command=[
             'python', '/home/jovyan/test.py'
        ],
        file_outputs=
            'modeule-logs' : input_path + 'output.log' 
        
    )

现在,我还想在同一个容器中运行一个名为 deploy.sh 的 bash 脚本。我还没有看到这样的例子。有没有类似的东西

command = [
'/bin/bash', '/home/jovyan/deploy.sh',
'python', '/home/jovyan/test.py'
]

不确定是否可行。非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

Kubeflow 作业只是一个 Kubernetes 作业,因此您受限于 Kubernetes 作业入口点是单个命令。 但是,您仍然可以将多个命令链接到一个 sh 命令中:

sh -c "echo 'my first job' && echo 'my second job'"

这样你的kubeflow命令就可以了:

command = [
'/bin/sh', '-c', '/home/jovyan/deploy.sh && python /home/jovyan/test.py'
]

【讨论】:

以上是关于使用 kfp.dls.containerOp() 在 Kubeflow Pipelines 上运行多个脚本的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份