Pod的配置管理
在Kubernetes中,资源对象和信息都存储在Etcd中,但是对于某一个服务的配置该如何管理了? 当然你可以在镜像打包的时候,将配置文件直接配置打包到镜像里面,这样确实可以达到目的。 但是大部分的容器是在运行之后需要改配置,每次都重新打包确实会是一个不小的工作。 当然可以通过文件映射或者环境变量来改变容器的配置,这是稍微比较不错的做法。 但是如果在大规模集群中,容器的配置管理将是一个非常麻烦的事项。 Kubernetes从1.2开始提供一种统一的应用配置管理方案——ConfigMap。 ConfigMap将应用所需的配置信息与程序进行分离,这样配置信息可以更好的被多次复用。 在Kubernetes中,配置信息会被封装成一个个资源资源对象,这样便于集中管理和使用。 如果你需要修改配置,那么只需要修改ConfigMap的引用对象或者直接修改ConfigMao资源对象的配置就可以了。 1.ConfigMap ConfigMap供容器使用的典型用法如下: (1)生成为容器内的环境变量 (2)以Volume的形式挂载为容器内部的文件或者目录 ConfigMap以一个或多个key:value的形式保存在Kubernetes系统中供应用使用, 既可以用于表示一个变量的值(例如apploglevel=info),也可以用于表示一个一个完整配置文件的内容(server.xml=<?xml>)。 2