ConfigMap 是用来以键值对(key-value)的方式存储非敏感信息。Pod可以通过环境变量、命令行参数或者卷挂载等方式使用ConfigMap.
ConfigMap 可以将环境配置与具体的应用程序进行解耦,这意味着可以提升应用的可移植性。
需要注意的是,ConfigMap没有加密功能。
如何写一个ConfigMap对象
下面是一个ConfigMap的对象示例:
1  | apiVersion: v1  | 
ConfigMap 处理每个API对象都有的apiVersion、kind和metadata,但是没有spec字段。 ConfigMap提供了两个字段data和binaryData来存储配置数据。data: 存储配置数据。 Value中只能包含UTF-8数据,非UTF-8的数据必须使用binaryData。binaryData: 存储二进制数据。
除此之外,还有一个字段immutable用来指定存储在ConfigMap中的数据是否可以被修改。
需要注意的是,同一个ConfigMap中,key是唯一的。在data中已经使用的key,就不能被binaryData使用,同理,在binaryData已使用的key,也不能在data中使用。
如何使用ConfigMap
Pod中的容器有四种方式来使用ConfigMap:
- 作为容器的entrypoint的命令行参数
 - 容器的环境变量
 - 只读的存储卷
 - 在应用程序中通过调用Kubernetes API读取ConfigMap
 
下面是一个简单的示例, 该示例已上传的Github:
1  | apiVersion: v1  | 
结果:
- 验证Env
 

- 验证只读文件
 
