一、简介
Configmap简称cm用于保存配置数据,以键值对形式存储。
configMap 资源提供了向 Pod 注入配置数据的方法。
旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。
典型的使用场景:
• 填充环境变量的值
• 设置容器内的命令行参数
• 填充卷的配置文件
创建ConfigMap的方式有4种:
• 使用字面值创建
• 使用文件创建
• 使用目录创建
• 编写configmap的yaml文件创建
方式1:使用字面值创建
不同的namespace显示的cm不同方式2:使用文件创建
方式3:使用目录创建
创建的cm中包含两个键值对。将目录中文件的名称作为key,文件中的内容作为value方式4:使用yml文件创建
二、cm的使用
通过环境变量的方式直接传递给pod
通过在pod的命令行下运行的方式
作为volume的方式挂载到pod内
方式1:使用环境变量的方式方式2:在pod的命令行下运行的方式
使用conigmap设置命令行参数
方式3:通过数据卷使用configmap这两个键值对是直接从cm1-config中挂载来的
三、configmap热更新
pod内有nginx应用,把nginx的配置文件拿出来存在cm中,当cm中的配置文件更新了以后要使得pod能够自动的实现滚动更新创建cm
server.conf中的内容
server.conf文件已经挂接进了pod中
编辑cm中的内容,更改端口为8080
查看文件内容有无变更
发现端口已经更改完成创建cm,此cm中包含nginx的配置文件,使用挂载的方式将cm中的文件挂接到pod中,当cm中的配置文件有更新时,pod中自动更新
虽然端口更新为8080了,但是pod并没有更新,访问原来的8000端口还是可以访问需要手动触发Pod滚动更新, 这样才能再次加载nginx.conf配置文件
pod变更成功
configmap就是用来将配置文件和镜像进行结耦,需要注意再更新时需要手动的更新pod