一、简介

Configmap简称cm用于保存配置数据,以键值对形式存储。
configMap 资源提供了向 Pod 注入配置数据的方法。
旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。
典型的使用场景:
• 填充环境变量的值
• 设置容器内的命令行参数
• 填充卷的配置文件
创建ConfigMap的方式有4种:
• 使用字面值创建
• 使用文件创建
• 使用目录创建
• 编写configmap的yaml文件创建
方式1:使用字面值创建

kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理
不同的namespace显示的cm不同
kubernetes存储之Configmap配置管理方式2:使用文件创建
kubernetes存储之Configmap配置管理方式3:使用目录创建
kubernetes存储之Configmap配置管理
创建的cm中包含两个键值对。将目录中文件的名称作为key,文件中的内容作为value
kubernetes存储之Configmap配置管理方式4:使用yml文件创建
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理

二、cm的使用

通过环境变量的方式直接传递给pod
通过在pod的命令行下运行的方式
作为volume的方式挂载到pod内
方式1:使用环境变量的方式
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理方式2:在pod的命令行下运行的方式
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理使用conigmap设置命令行参数
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理
方式3:通过数据卷使用configmap
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理这两个键值对是直接从cm1-config中挂载来的

三、configmap热更新

pod内有nginx应用,把nginx的配置文件拿出来存在cm中,当cm中的配置文件更新了以后要使得pod能够自动的实现滚动更新
kubernetes存储之Configmap配置管理创建cm
kubernetes存储之Configmap配置管理server.conf中的内容
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理server.conf文件已经挂接进了pod中
kubernetes存储之Configmap配置管理编辑cm中的内容,更改端口为8080
kubernetes存储之Configmap配置管理
kubernetes存储之Configmap配置管理查看文件内容有无变更
发现端口已经更改完成
kubernetes存储之Configmap配置管理创建cm,此cm中包含nginx的配置文件,使用挂载的方式将cm中的文件挂接到pod中,当cm中的配置文件有更新时,pod中自动更新
虽然端口更新为8080了,但是pod并没有更新,访问原来的8000端口还是可以访问
kubernetes存储之Configmap配置管理需要手动触发Pod滚动更新, 这样才能再次加载nginx.conf配置文件
kubernetes存储之Configmap配置管理pod变更成功
kubernetes存储之Configmap配置管理kubernetes存储之Configmap配置管理configmap就是用来将配置文件和镜像进行结耦,需要注意再更新时需要手动的更新pod

相关文章: