1.ConfigMap配置管理
configmap用于保存配置数据,以键值对形式存储。
configMap 资源提供了向 Pod 注入配置数据的方法。
旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。
典型的使用场景:
• 填充环境变量的值
• 设置容器内的命令行参数
• 填充卷的配置文件
2.创建ConfigMap的方式
4种方式:
• 使用字面值创建
• 使用文件创建
• 使用目录创建
• 编写configmap的yaml文件创建
2.1使用字面值创建
kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
2.2使用文件创建
举例:使用/etc/resolv.conf文件来创建一个configmap
kubectl create configmap my-config-2 --from-file=/etc/resolv.conf
key的名称是文件名称,value的值是这个文件的内容
2.3 使用目录创建
建立一个test目录,添加一些有内容的文件,目录中的文件名为key,文件内容是value
kubectl create configmap my-config-3 --from-file=test
目录中的文件名为key,文件内容是value
2.4 编写configmap的yaml文件创建ConfigMap
创建一个cm目录用来存放创建ConfigMap的yaml文件
编辑yaml文件—>应用yaml文件
3. Configmap的使用
如何使用configmap:
• 通过环境变量的方式直接传递给pod
• 通过在pod的命令行下运行的方式
• 作为volume的方式挂载到pod内
3.1 使用configmap设置环境变量
定义configmap的key
apiVersion: v1
kind: ConfigMap
metadata:
name: cm1-config
data:
db_host: "172.25.12.250"
db_port: "3306"
---
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: pod1
image: busybox
command: ["/bin/sh", "-c", "env"]
env:
- name: key1
valueFrom:
configMapKeyRef:
name: cm1-confi