k8s之Configmap配置管理
k8s之Configmap配置管理一、了解ConfigMap1. 使用configmap的目的2. configmap的原理3. ConfigMap配置使用二、configmap的部署1. 创建ConfigMap2. Configmap的使用一、了解ConfigMap1. 使用configmap的目的把应用的代码和配置分开,通过配置configmap管理pod,一种统一的集群配置管理方案。Conf
k8s之Configmap配置管理
一、了解ConfigMap
1. 使用configmap的目的
把应用的代码和配置分开,通过配置configmap管理pod,一种统一的集群配置管理方案。
ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernetes的。ConfigMap可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制等对象。
2. configmap的原理
ConfigMap是存储通用的配置变量的。ConfigMap有点儿像一个统一的配置文件,使用户可以将分布式系统中用于不同模块的环境变量统一到一个对象中管理;而它与配置文件的区别在于它是存在集群的“环境”中的,并且支持K8s集群中所有通用的操作调用方式。
而资源的使用者可以通过ConfigMap来存储这个资源的配置,这样需要访问这个资源的应用就可以同通过ConfigMap来引用这个资源。相当通过创建Configmap封装资源配置。
configmap以一个或者多个key:value的形式保存在k8s系统中供应用使用,既可以用于表示一个变量的值(eg.apploglevel:info),也可以用于表示一个完整配置文件的内容(eg: server.xml=<?xml…>…)
可以通过yaml配置文件或者直接用kubectl create configmap 命令行的方式来创建 ConfigMap。
3. ConfigMap配置使用
configmap用于保存配置数据,以键值对形式存储。
configMap 资源提供了向 Pod 注入配置数据的方法。
旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。
典型的使用场景:
• 填充环境变量的值
• 设置容器内的命令行参数
• 填充卷的配置文件
二、configmap的部署
1. 创建ConfigMap
创建ConfigMap的方式
- 使用字面值创建
- 使用文件创建
- 使用目录创建
- 编写configmap的yaml文件创建
1>. 使用字面值创建
kubectl get cm my-config -o yaml可以查看详细信息
2>. 使用目录创建
先创建一个目录用来存储configmap文件:
用目录创建configmap:
kubectl get cm my-config -o yaml
3>. 使用文件创建
4>. 编写configmap的yaml文件创建ConfigMap
2. Configmap的使用
如何使用configmap:
• 通过环境变量的方式直接传递给pod
• 通过在pod的命令行下运行的方式
• 作为volume的方式挂载到pod内
1>. configmap设置环境变量
a. 定义configmap的key
在刚才的pod.yaml下添加内容:
2>. conigmap设置命令行参数
command: ["/bin/sh", "-c", "echo $(db_host) $(db_port)"]
查看pod2信息:
3>.configmap热更新
修改端口号为8000:
手动触发相关Pod的滚动更新
注意此时ip已经更改
端口已经修改为8000,所以后续跟的端口也是8000
更多推荐
所有评论(0)