作为环境变量
将ConfigMap中的数据用作Pod的变量有两种方式:
.containers.env.valueFrom
.containers.envFrom。
使用valueFrom定义容器环境变量
$ kubectl create -f deploy-valueFrom.yaml
deployment.apps/nginx-valuefrom created
$ kubectl get pod -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-valuefrom-5889856f49-tcxmv 1/1 Running 0 55s
$ kubectl exec -it nginx-valuefrom-5889856f49-tcxmv -- env | grep SPECIAL_LEVEL_KEY
SPECIAL_LEVEL_KEY=very
$ kubectl exec -it nginx-valuefrom-5889856f49-tcxmv -- env | grep ENEMIES
ENEMIES=aliens
使用envFrom定义容器的环境变量
valueFrom通常用于使用ConfigMap的单个Key设置环境变量,但实际使用时更常用的是把ConfigMap里面所有的数据都作为环境变量,此时可以使用envFrom参数:
$ kubectl create -f deploy-envFrom.yaml
deployment.apps/nginx-envfrom created
$ kubectl get pod -l func=envfrom
NAME READY STATUS RESTARTS AGE
nginx-envfrom-6dd6b779d8-4nlh8 1/1 Running 0 12s
$ kubectl exec -it nginx-envfrom-6dd6b779d8-4nlh8 -- env | grep fromCm_
fromCm_special.type=charm
fromCm_special.how=very
$ kubectl exec -it nginx-envfrom-6dd6b779d8-4nlh8 -- env | grep ENEMIES
ENEMIES=aliens
最后更新于
这有帮助吗?