繁体   English   中英

如何在 kubeflow 管道中传递环境变量?

[英]How to pass an environmental variable in kubeflow pipeline?

我希望变量被gcr.io/******/serve_model:lat5 Image 访问,它是gcr.io/******/deployservice:lat2的参数

最初我尝试将变量作为参数传递但它没有用,所以我试图将它作为环境变量传递。
我的环境变量将是GCP存储桶的 url,我的serve_model将从中访问.sav模型文件。

        name='web-ui',
        image='gcr.io/******/deployservice:lat2',
        arguments=[
        '--image', 'gcr.io/******/serve_model:lat5',
        '--name', 'web-ui',
        '--container-port', '8080',
        '--service-port', '80',
        '--service-type', "LoadBalancer"
        ]
        ).add_env_variable(V1EnvVar(name='modelurl', value=Model_Path))

add_env_variable()是一个的函数Container即真实公开为对象的属性ContainerOp

所以像下面这样的东西会起作用。 此处参考 kfp dsl 代码

model_path = 'gcp://dummy-url'
container_op = ContainerOp(name='web-ui',
                               image='gcr.io/******/deployservice:lat2',
                               arguments=[
                                   '--image', 'gcr.io/******/serve_model:lat5',
                                   '--name', 'web-ui',
                                   '--container-port', '8080',
                                   '--service-port', '80',
                                   '--service-type', "LoadBalancer"]
                               )
container_op.container.add_env_variable(V1EnvVar(name='model_url', value=model_path))

您可以通过检查YAML的邮政编码为验证这一env-container

  - container:
      args:
      - --image
      - gcr.io/******/serve_model:lat5
      - --name
      - web-ui
      - --container-port
      - '8080'
      - --service-port
      - '80'
      - --service-type
      - LoadBalancer
      env:
      - name: modelurl
        value: gcp://dummy-url <--the static env value
      image: gcr.io/******/deployservice:lat2

将此作为社区 Wiki 发布以获得更好的可见性,因为原始海报能够传递此变量。

这是Kubernetes传递价值的最佳方式。

ConfigMap是一个配置设置字典。 该字典由字符串的键值对组成。 Kubernetes 为您的容器提供这些值。 ConfigMap 存储代码的配置设置。 在 ConfigMap 中存储连接字符串、公共凭据、主机名和 URL。

您可以通过多种方式(从文件、手动等)创建ConfigMap 可以在此处找到更多信息。

解决方案

根据原始海报评论:

1.使用管道python文件和container函数add_env_variable传递环境变量:

web_ui.container.add_env_variable(V1EnvVar(name='modelurl', value=Model_Path))

2.准备命令,它将创建具有适当值的配置映射:

kubectl create configmap modelurl --from-literal=modelurl=Model_Path

3.将之前的命令放入将在Kubeflow使用的Kubeflow

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM