所有这一切,当我在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中帮助我吗
我在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_file
或load_component_from_url
或load_component_from_text
加载它,并在多个管道中使用它。可重用组件在您实例化它们时会自动生成ContainerOp
。
我需要对上面的代码进行一些更改吗?我需要自动缩放docker容器吗?
可能不会。库伯内特斯的自动缩放是一个选择加入的功能,当节点负载高时,它会启动更多节点。SO只有当你并行运行许多繁重的任务时,它才会启动。如果你只运行一个任务,就没有什么可扩展的了。
我认为代码没有问题,你走在正确的轨道上。根据GCP留档单击此处,您可以利用GKE自动缩放来水平扩展您的工作负载。话虽如此,您可以在部署清单中定义一个pod。请注意,pod将像容器一样包含kubeflow组件。有关详细信息,请点击此处的链接。我希望这有助于您解决问题。