在 Kubeflow 中运行自定义容器时,如何将参数传递给容器?
Posted
技术标签:
【中文标题】在 Kubeflow 中运行自定义容器时,如何将参数传递给容器?【英文标题】:When running custom container in Kubeflow, how to pass arguments to the container? 【发布时间】:2021-11-11 23:05:49 【问题描述】:我创建了一个容器映像,并希望将其作为我的 Kubeflow 管道的一部分运行。
我在本地测试了镜像,运行没问题:
docker run $IMAGE_URI --my_argument 28
我尝试使用预构建的组件 [CustomContainerTrainingJobRunOp][1] 在 Kubeflow 中运行它,但失败了。似乎问题出在参数上,因为在 Python 代码中硬编码参数值时没有问题。如何正确传递此组件中的参数?谢谢。
import kfp
from kfp.v2 import compiler
from kfp.v2.dsl import component
from kfp.v2.google import experimental
from kfp.v2.google.client import AIPlatformClient
from google_cloud_pipeline_components import aiplatform as gcc_aip
@kfp.dsl.pipeline(name=pipeline_name, pipeline_root='gs://a-gcs-bucket')
def pipeline():
subclass_training_job_run_op = gcc_aip.CustomContainerTrainingJobRunOp(
project=project_id,
display_name=model_display_name,
container_uri=subclass_container_uri,
args=["--my_argument", 28],
staging_bucket=staging_bucket,
base_output_dir=base_output_uri,
#dataset=dataset_create_op.outputs["dataset"]
)
Thank you!
[1]: https://google-cloud-pipeline-components.readthedocs.io/en/google-cloud-pipeline-components-0.1.4/google_cloud_pipeline_components.aiplatform.html#google_cloud_pipeline_components.aiplatform.CustomContainerTrainingJobRunOp
【问题讨论】:
【参考方案1】:问题解决了:
args=["--my_argument", "28"]
【讨论】:
以上是关于在 Kubeflow 中运行自定义容器时,如何将参数传递给容器?的主要内容,如果未能解决你的问题,请参考以下文章
如何参数化 Kubeflow Pipelines 环境变量?
如何使用专门用于 GCP 的 TFX SDK 实现 Kubeflow“运行参数”?