【问题标题】:Can a particular component(step) in a kubeflow pipeline be scaled(autosclaed) horizontally?kubeflow 管道中的特定组件(步骤)可以水平缩放(自动缩放)吗?
【发布时间】:2020-10-01 05:35:47
【问题描述】:

所有这一切都是在我使用轻量级 python 函数作为 kubeflow 管道中的一个组件时,但最近我转而使用 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 包,看看是否有帮助,但幸运的是,我什至找不到更接近的解决方案。 首先有可能吗?我在正确的方向吗? 有人可以帮我做研发吗?

【问题讨论】:

    标签: docker google-cloud-platform pipeline kubeflow kubeflow-pipelines


    【解决方案1】:

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

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

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

    component.yaml

    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加载它并在多个管道中使用它。 当您实例化可重用组件时,它们会自动生成ContainerOps。

    1. 在执行方面,轻量级组件、从 component.yaml 加载的组件和手动创建的 ContainerOp 实例之间没有区别。

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

    可能不会。 Kubernetes 的自动缩放是一项可选功能,可在负载高时启动更多节点。所以它只有在你并行运行许多繁重的任务时才会起作用。如果你只运行一个任务,就没有什么可扩展的。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-10-10
        • 1970-01-01
        • 2015-09-23
        • 2021-03-04
        • 1970-01-01
        • 2022-11-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多