提问者:小点点

kubeflow管道中的特定组件(步骤)可以水平扩展(自动扩展)吗?


所有这一切,当我在kubeflow管道中使用轻量级python函数作为组件时,但最近我切换到使用docker容器作为kubeflow管道中的组件,其内容如下…

    produce: str = 'hello'
):
    return dsl.ContainerOp(
        name = 'Say hi', 
        image = 'docker.io/playground/comp1:latest', 
        command = ['python', 'msg.py'],
        arguments=[
            '--msg', send_msg
        ],
        file_outputs={
            'output': '/output.txt',
        }
    )

我需要对上面的代码进行一些更改吗?我需要自动缩放docker容器吗?如果是这样,dsl. ContainerOp将如何知道它应该命中哪个docker容器实例?

我做了很多搜索,也探索了kfp包,看看这是否有帮助,但幸运的是,我甚至找不到更接近它的解决方案。首先,这可能吗?我在正确的方向上吗?有人能在我的R中帮助我吗


共2个答案

匿名用户

我在kubeflow管道中使用轻量级python函数作为组件,但最近我切换到使用docker容器作为组件

>

  • 轻量级组件是合适的容器组件。您可以将它们导出到组件. yaml文件并共享它们:create_component_from_func(my_func,output_component_file='组件.yaml')或(相同)func_to_container_op(my_func,output_component_file='组件.yaml')

    ContainerOp不是组件。它们是半编译的类任务对象。我们建议我们的用户不要直接创建它们,而是创建真正可重用的组件。

    组件。yam l

    name: 'Say hi'
    inputs:
    - {name: Message}
    outputs:
    - {name: Output}
    implementation:
      container:
        image: 'docker.io/playground/comp1:latest'
        command: ['python', 'msg.py']
        args: [
          '--msg', {inputValue: Message},
          '--output', {outputPath: Output},
        ]
    

    然后使用load_component_from_fileload_component_from_urlload_component_from_text加载它,并在多个管道中使用它。可重用组件在您实例化它们时会自动生成ContainerOp

    我需要对上面的代码进行一些更改吗?我需要自动缩放docker容器吗?

    可能不会。库伯内特斯的自动缩放是一个选择加入的功能,当节点负载高时,它会启动更多节点。SO只有当你并行运行许多繁重的任务时,它才会启动。如果你只运行一个任务,就没有什么可扩展的了。

  • 匿名用户

    我认为代码没有问题,你走在正确的轨道上。根据GCP留档单击此处,您可以利用GKE自动缩放来水平扩展您的工作负载。话虽如此,您可以在部署清单中定义一个pod。请注意,pod将像容器一样包含kubeflow组件。有关详细信息,请点击此处的链接。我希望这有助于您解决问题。