【Kubernetes 011】ConfigMap原理和实际操作详解

相信很多朋友都听说过配置中心这种东西,应用在运行的时候会从配置中心读取不同环境的配置信息,以达到相同的应用在不同环境运行的目的。这种低耦合的应用运行方式也在k8s中得到了应用。这一节我们就来学习k8s中的配置中心:ConfigMap。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

ConfigMap

ConfigMap是k8s集群中一个单独的资源,用来存储键值对形式的配置信息。通过将业务代码和配置信息隔离开来,可以减少容器的复杂度,同时让容器能动态部署到不同环境(开发,测试,生产),以及在不影响容器运行下进行配置的热更新。

但是因为ConfigMap中的数据都是用明文存储,不应该存放密码等私密信息。私密信息可以通过下一节要学习的Secret来进行存储。

下面这个动态图是一个很简单的ConfigMap工作原理的说明
1-configmap.gif

  • 首先,需要准备多个不同ConfigMap,这里是一个环境一份
  • 然后,根据需要,将合适环境的ConfigMap加入到k8s集群中
  • 最后,pod中的容器去ConfigMap中检索需要的内容

生成ConfigMap

这里分两种情况来看。如果是类似nginx.conf这种大篇的配置信息文件,考虑用文件或者文件夹去生成ConfigMap,方便后期维护,这时ConfigMap的key是文件名,value是文件内容;如果只是三两个环境变量,考虑用yaml文件或者直接命令行生成ConfigMap,简单快捷,这时ConfigMap是键值对和yaml文件或者命令行中的一致。

这里将这两种方式都演示一下。

根据文件或者文件夹生成ConfigMap

创建如下两个文件

[root@k8s-master Configs]# ll
total 8
-rw-r--r--. 1 root root 30 May 10 10:42 file-1
-rw-r--r--. 1 root root 30 May 10 10:42 file-2
[root@k8s-master Configs]# cat file-1
config1=value1
config2=value2
[root@k8s-master Configs]# cat file-2
config3=value3
config4=value4

然后通过下面的命令根据单个文件或者文件夹生成ConfigMap

kubectl create configmap NAME --from-file=xxx

例如单个文件

[root@k8s-master Configs]# kubectl create configmap test-cm-1 --from-file=file-1
configmap/test-cm-1 created
[root@k8s-master Configs]# kubectl get configmap
NAME        DATA   AGE
test-cm-1   1      12s

或者根据文件夹

[root@k8s-master Configs]# kubectl create configmap test-cm-2 --from-file=.
configmap/test-cm-2 created
[root@k8s-master Configs]# kubectl get configmap
NAME        DATA   AGE
test-cm-1   1      85s
test-cm-2   2      3s

之后就可以去查看ConfigMap的具体信息了,可以用describe命令

[root@k8s-master Configs]# kubectl describe cm test-cm-2
Name:         test-cm-2
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
file-1:
----
config1=value1
config2=value2

file-2:
----
config3=value3
config4=value4

Events:  <none>

或者是直接用yaml输出的方式

[root@k8s-master Configs]# kubectl get configmap test-cm-2 -o yaml
apiVersion: v1
data:
  file-1: |
    config1=value1
    c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值