概述
ConfigMap与之前的Secret类似
- Secret存入的是加密的一些数据,而ConfigMap存入的是不加密的数据
ConfigMap的作用:存储不加密的数据到etcd,让Pod以变量或Volume挂载到容器中
许多应用程序会从配置文件、命令行参数或环境变量中读取配 置信息ConfigMap AP 丨给我们提供了向容器中注入配置信息的机制ConfigMap 可以被用来保存单个属性,也 可以用来保存整个配置文件或者 JSON 二进制大对象
使用场景:配置文件
使用
第一步:创建配置文件用于存储
创建如下的properties配置文件
redis.host=127.0.0.1
redis.port=6379
redis.password=123456
第二步:创建configMap
创建ConfigMap
查看configMap内容
查看详细信息
第三步:以Volume形式挂载到pom容器中
创建配置文件(cm.yaml)
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: busybox
image: busybox
command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: redis-config
restartPolicy: Never
创建并执行上面的配置文件
查看pod
等待容器创建完成,然后查看日志
第三步:以变量形式挂载到pod容器中
创建yaml文件,声明变量信息,创建configMap
删除之前的内容
创建配置文件(myconfig.yaml)
apiVersion: v1
kind: ConfigMap
metadata:
name: myconfig
namespace: default
data:
special.level: info
special.type: hello
创建上面的配置文件,并执行
查看configmap
以变量挂载
创建配置文件(config-var.yaml)
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: busybox
image: busybox
command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]
env:
- name: LEVEL
valueFrom:
configMapKeyRef:
name: myconfig
key: special.level
- name: TYPE
valueFrom:
configMapKeyRef:
name: myconfig
key: special.type
restartPolicy: Never
创建并执行上述文件
查看pod状态和configmap
等待pod创建完成,后查看日志