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