Kubernetes之ConfigMap认识

ConfigMap存在的意义

  • 之前我们有说到Secret储存密文数据,现在说到ConfigMap储存数据

  • Secret有两种数据访问方式,ConfigMap也有两种数据访问方式,如出一辙

  • 这两者的有什么区别呢?就运用场景而言

    • Secret一般用处储存密文数据

    • configMap用于储存明文数据,不如项目的配置文件啥的

创建ConfigMap

创建配置文件

  • 内容很简单,这里就自行准备一下吧:

  • kubectl create configmap redis-config --from-file=redis.properties

    • redis-config:为这个configMap取得标识name

查看相关信息

  • kubectl describe cm redis-conig

Pod以挂载Volume方式访问

定义Pod的资源编排文件

  • ninjaConfigMap.yaml [提取码:6666]

    • 这个pod定义如下所示,想读取configMap中的数据需要配置数据卷的相关信息

部署yaml,测试效果

Pod以环境变量方式访问

定义ConfigMap文件

  • customConfigMap.yaml [提取码:6666]

  • 这儿的话,就和Secret的方式有点不太一样了,详情见下

  • 首先我们要重新单独定义一个congfigMap

可以键入英文,但如果value是数字的话,需要用双引号括起来(踩坑)

  • 然后我们部署这个yaml,并查看部署效果

定义Pod的资源编排文件

  • 1:通过configMap的name定位到ConfigMap

  • 2:通过指定key,定位到键值对,并将value 赋值给环境变量名 3

  • 3:环境变量名

  • 4:打印环境变量

部署yaml,测试效果

  • kubectl apply -f customconfigmappod.yaml

  • kubectl logs podName

可以看到环境变量中已经正确的读取了ConfigMap中的值

.

 

原文地址:https://www.cnblogs.com/msi-chen/p/14344652.html