Kubernetes之八:ConfigMap from-literal -from-file实战

ConfigMap来替代环境变量,ConfigMap可以被用来填入环境变量; configmap里面的信息读入环境变量,而容器启动的时候可以利用这些环境变量.

ConfigMap是以key:value的形式保存配置项,既可以用于表示一个变量的值(例如config=info),也可以用于表示一个完整配置文件的内容(例如server.xml=<?xml…>…)。

configmap创建有二种方式,

一是命令行方式,分为从字面读取(--from-literal)和从目录(--from-file)读取。

下面是二者区别

1,1.--from-literal从字面读取的好处就是快速和便捷,你可以通过关键字参数的形式(**kargs),将配置信息直接传递至configmap,然后在pod启动的时候进行加载;同时这个方式的弊端就是,变量不能实时更新到pod容器。

1,2  --from-file从目录读取的好处可以实时更新到pod容器。

二是yaml方式。

下面主要是从字面读取(--from-literal)和从目录(--from-file)读取的实战。

1)--from-literal实战 

因为文件不好编排,有关yaml文件可以自己创建,可以私信找我要

kubectl create ns config

创建configmap,赋值二个参数

kubectl create cm filebeat-cfg -n config --from-literal=redis_host="redis.test.com" --from-literal=log_level="info"

查询相关内容

kubectl get cm filebeat-cfg -n config -o yaml

创建pod

  kubectl apply -f nginx.yaml


互动执行,进入后env看看相关变量

 kubectl exec -it nginx -n config -- /bin/sh

编辑相关变量

kubectl edit cm filebeat-cfg -n config -o yaml

 kubectl get cm filebeat-cfg -n config -o yaml

看看有没有生效

kubectl exec -it nginx -n config -- /bin/sh

2)--from-file

/root/mainfasts下准备server1.conf,server2.conf文件

创建configmap

kubectl create configmap nginx-cfg -n config --from-file=/root/mainfasts

kubectl get cm -n config -o yaml

创建pod,采用volume挂载

kubectl apply -f nginx-volumes.yaml

进入pod查看环境变量

kubectl exec -it nginx -n config -- /bin/sh后执行env

更新相关变量

kubectl edit cm nginx-cfg -n config -o yaml

再次查看已经发生变化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。