文章目录
- 一、概念
- 二、实例
- `2.1.创建一个configmap`
- 方式一:
- 方式二:指定文件生成并创建configmap
- `2.2.Pod使用configmap`
- 三、subPath
一、概念
创建ConfigMap后,数据实际会存储在K8s(Etcd)中,然后通过创建Pod时引用该数据。
Pod使用ConfigMap挂载的两种方式
- 变量注入
- 数据卷挂载
二、实例
2.1.创建一个configmap
方式一:
apiVersionv1
kindConfigMap
metadata
nameredis-cfg
data
#以键值对的形式定义
abc"123"
bcd"456"
#以文本的形式定义,适用于多行文件;|表示支持多行
redis.properties
port: 6379
host: 192.168.1.10方式二:指定文件生成并创建configmap
kubectl create cm myconfigmap --from-file=application.yml -n mynamespace
2.2.Pod使用configmap
apiVersionv1
kindPod
metadata
nameconfigmap-demo-pod
spec
containers
namedemo
imagenginx
imagePullPolicyIfNotPresent
env
nameABC
valueFrom
configMapKeyRef
nameredis-cfg
keyabc
nameBCD
valueFrom
configMapKeyRef
nameredis-cfg
keybcd
volumeMounts
nameconfig #卷名
mountPath"/config" #挂载到容器的/config目录下
readOnlytrue
volumes
nameconfig #卷名
configMap
nameredis-cfg #configmap的名字
items
key"redis.properties" #configmap中的文件名
path"redis_config" #挂载到容器后的文件名进入到容器中查看
三、subPath
参考文章:
K8s subPath
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx/nginx.conf # 也可挂载到文件
subPath: nginx.conf # 挂载到文件时,需设置子路径将名为 nginx-config的 volume 中的 nginx.conf key 对应内容,以文件形式挂载到容器中 /etc/nginx/nginx.conf 路径。
需注意:在 ConfigMap 中使用 subPath 将影响 ConfigMap 内容变化时的自动更新。










