挂载为文件
大部分情况下,ConfigMap定义的都是配置文件,而不是环境变量,因此需要将ConfigMap中的文件(一般为--from-file创建)挂载到Pod中,然后Pod中的容器就可以引用,此时可以通过Pod的volume字段进行挂载。
挂载ConfigMap中所有的文件
将名称为cm-dir的ConfigMap挂载到容器的/etc/config/目录下:
$ kubectl create -f pod-cm.yaml
pod/dapi-test-pod created
$ kubectl get pod dapi-test-pod
NAME READY STATUS RESTARTS AGE
dapi-test-pod 0/1 Completed 0 17s
$ kubectl logs dapi-test-pod
game.properties
ui.properties
自定义文件名挂载ConfigMap
很多情况下,需要更改挂载的文件名,可以使用path字段指定ConfigMap挂载的文件名,比如将game.properties挂载到/etc/config,并指定名称为keys:
$ kubectl create -f pod-cm-rename.yaml
pod/pod-cm-rename created
$ kubectl get pod pod-cm-rename
NAME READY STATUS RESTARTS AGE
pod-cm-rename 0/1 Completed 0 13s
$ kubectl logs pod-cm-rename
enemies=aliens
lives=3
enemies.cheat=true
enemies.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
secret.code.allowed=true
secret.code.lives=30
指定挂载的文件权限
ConfigMap在挂载使用时可以更改文件的权限(默认是0644),比如将上述的文件挂载权限自定义为0666(对应Linux的文件权限为rw-rw-rw-):
使用.configMap.defaultMode字段自定义文件权限,该权限对.configMap.items下的所有文件均生效。
可以使用items[].mode字段单独设置某个文件的权限,用于不同文件的不同权限挂载。
最后更新于
这有帮助吗?