[英]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.