最近更新时间:2021-04-27 20:18:25
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。通过ConfigMap 可以将配置文件从容器镜像中解耦,从而增强容器应用的可移植性。ConfigMap 是有 key-value 类型的键值对,可以通过控制台创建对应的 ConfigMap 对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 ConfigMap。
注:当选择指定key挂载时,可以通过Items向特定路径挂载,如挂载路径是 /etc/config,子路径是dev,最终会存储在/etc/config/dev下。
configmap-test.yaml示例:
apiVersion: v1
kind: ConfigMap
metadata:
name: config-test
namespace: default
data:
SPECIAL_LEVEL: very
SPECIAL_TYPE: charm
创建configmap-test.yaml
# kubectl apply -f configmap-test.yaml
# kubectl create configmap <map-name> <data-source>
# <map-name>:ConfigMap对象的名称
# <data-source>:数据源,可以根据目录、文件或者直接创建ConfigMap对象。
configmap-volume.yaml示例:
apiVersion: v1
kind: Pod
metadata:
name: pod1-test
spec:
containers:
- name: container-test
image: ksyun/nginx:latest
volumeMounts: #数据卷的挂载点
- name: config-volume
mountPath: /etc/config
volumes: #在pod级别设置卷,然后将其挂载到pod内的容器中
- name: config-volume
configMap:
name: config-test #挂载的ConfigMap名称
restartPolicy: Never
configmap-env.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod2-test
spec:
containers:
- name: container-test
image: ksyun/nginx:latest
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: config-test # 挂载的ConfigMap名称
key: SPECIAL_LEVEL
restartPolicy: Never
纯净模式