我希望gcr.io/******/serve_model:lat5
可以访问变量,该图像是gcr.io/******/deployservice:lat2
的参数
最初,我尝试将变量作为参数传递,但是它没有用,所以我试图将其作为环境变量传递。
我的环境变量将是GCP
存储桶的URL,我的serve_model
将通过该URL访问.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))
答案 0 :(得分:0)
add_env_variable()
是Container
对象的功能,该对象公开为ContainerOp
的属性。
所以下面的方法可以工作。请参阅kfp dsl代码here
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))
您可以通过检查zip中env
下-container
部分的YAML来验证这一点
- 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
答案 1 :(得分:0)
将其发布为Community Wiki以获得更好的可见性,因为原始海报能够传递此变量。
这是传递价值的最佳Kubernetes
方法。
ConfigMap是配置设置的词典。这个 字典由字符串的键值对组成。 Kubernetes提供 这些值添加到您的容器中。 ConfigMap存储配置 代码的设置。存储连接字符串,公共凭据, 主机名和ConfigMap中的URL。
您可以通过多种方式(从文件,手动等)创建ConfigMap
。可以找到更多信息here。
解决方案
根据原始海报评论:
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
中使用的脚本中。