可变配置管理,前面我们学习了一些常用的资源对象的使用,但是单纯依靠这些资源对象,还不足以满足我们的资产需求,一个重要的需求就是应用的管理配置,敏感信息的存储和使用,容器运行资源的配置,安全管控,身份认证等等
对于应用的可变配置在kubernetes中是通过一个configMap资源对象来实现的,我们知道许多应用经常会从配置文件,命令行参数或者环境变量中读取一些配置信息的需求,这些配置信息我们肯定不会直接写死到应用程序中去,比如你一个应用连接一个redis服务,下一次想换一个还得重新袖带代码,重新制作一个镜像,肯定是不可取的。configMap就给我们提供了向容器中注入配置信息的能力,不仅可以用来保存单个属性,也可以用来保存整个redis的配置文件,接下来我们了解configMap这种资源对象的使用方法。
[root@master1 ~]# cat configMap.yaml
kind: ConfigMap
apiVersion: v1
metadata:
name: cm-demo
namespace: default
data:
data.1: hello
data.2: world
config:
property.1=value-1
property.2=value-2
property.3=value-3
configMap资源对象使用key-value形式的键值对来配置数据,这些数据可以在pod里面使用 其中配置数据在data属性下面进行配置,前两个被用来保存单个属性,后面一个被用来保存一个配置文件。当然永阳的我们可以使用kubectl create -f yaml来创建上面的configmap对象,但是如果我们不知道怎么创建configMap
我们可以看到一个从一个给定的目录来创建一个configMap对象,比如我们testcm,然后我们就可以使用 from-file关键则来创建包含这个目录下面所配置文件的configMaps
kubectl create configmap cm-demo1 --from-file=testcm
其中from-file参数指定在该目录下面的所有文件都会被用在configmap里面创建一个键值对,键的名字就是文件名,值就是文件的内容,创建完成后,同样我们可以使用kubectl get cm
[root@master1 ~]# kubectl describe configmap cm-demo1