簡體   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