3

我希望通过gcr.io/******/serve_model:lat5Image 访问变量,这是一个参数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))
4

2 回答 2

1

add_env_variable()Container作为 a 的属性公开的对象的函数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))

您可以通过检查以下env部分的 zip 中的 YAML 来验证这一点-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
于 2019-12-04T21:32:36.333 回答
0

将其发布为社区 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.

于 2019-12-05T14:53:16.260 回答