kubernetes存储之Configmap配置管理

一、简介

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

在这里插入图片描述kubernetes存储之Configmap配置管理_第1张图片
不同的namespace显示的cm不同
kubernetes存储之Configmap配置管理_第2张图片方式2:使用文件创建
kubernetes存储之Configmap配置管理_第3张图片方式3:使用目录创建
kubernetes存储之Configmap配置管理_第4张图片
创建的cm中包含两个键值对。将目录中文件的名称作为key,文件中的内容作为value
kubernetes存储之Configmap配置管理_第5张图片方式4:使用yml文件创建
kubernetes存储之Configmap配置管理_第6张图片kubernetes存储之Configmap配置管理_第7张图片kubernetes存储之Configmap配置管理_第8张图片

二、cm的使用

通过环境变量的方式直接传递给pod
通过在pod的命令行下运行的方式
作为volume的方式挂载到pod内
方式1:使用环境变量的方式
kubernetes存储之Configmap配置管理_第9张图片kubernetes存储之Configmap配置管理_第10张图片方式2:在pod的命令行下运行的方式
kubernetes存储之Configmap配置管理_第11张图片kubernetes存储之Configmap配置管理_第12张图片使用conigmap设置命令行参数
kubernetes存储之Configmap配置管理_第13张图片kubernetes存储之Configmap配置管理_第14张图片
方式3:通过数据卷使用configmap
kubernetes存储之Configmap配置管理_第15张图片在这里插入图片描述
kubernetes存储之Configmap配置管理_第16张图片kubernetes存储之Configmap配置管理_第17张图片这两个键值对是直接从cm1-config中挂载来的

三、configmap热更新

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

你可能感兴趣的:(kubernetes存储之Configmap配置管理)