ConfigMaps 允许配置项目与镜像内容分离,以保持容器化应用程序的可移植性。本页提供了一系列使用示例,演示如何如何使用存储在ConfigMap中的数据创建ConfigMap和配置Pod。
使用介绍流程
- 创建ConfigMap
- 使用文件夹/文件/键值的形式创建ConfigMap
- 使用ConfigMap定义环境变量
- 使用单个ConfigMap中的数据定义环境变量
- 使用多个ConfigMap中的数据定义环境变量
- 将ConfigMap中的所有键值对配置为环境变量
- 使用ConfigMap定义数据卷
- 使用ConfigMap
- 将ConfigMap中数据挂载到容器特定路径下
创建ConfigMap
- 从目录创建
# 将要使用的目录下的文件[root@node /opt/configmap]lsgame.properties ui.properties# 根据文件夹创建ConfigMap[root@node /opt/configmap] kubectl create configmap game-config --from-file=/opt/configmap/# 查看ConfigMap[root@node /opt/configmap] kubectl describe configmaps game-configName: game-configNamespace: defaultLabels: <none>Annotations: <none>Data====game.properties: 158 bytesui.properties: 83 bytes
- 从文件创建
# 将要使用的文件[root@node /opt/configmap]lsgame.properties ui.properties# 根据文件创建ConfigMap[root@node /opt/configmap] kubectl create configmap game-config2 --from-file=/opt/configmap/game.properties --from-file=/opt/configmap/ui.properties# 查看ConfigMap[root@node /opt/configmap] kubectl describe configmaps game-config2Name: game-configNamespace: defaultLabels: <none>Annotations: <none>Data====game.properties: 158 bytesui.properties: 83 bytes
- 使用—from-env-file选项以键值的形式从一个env文件创建ConfigMap
"""env文件中的每一行必须为VAR = VAL格式。若引号没有特殊处理(即它们将成为ConfigMap值的一部分)。**注意**:当多次传递--from-env-file来从多个数据源创建ConfigMap时,仅使用最后一个env文件:"""# 查看env文件示例[root@node /opt/configmap]cat game-env-file.propertiesenemies=alienslives=3allowed="true"# 根据env文件创建ConfigMap[root@node /opt/configmap] kubectl create configmap game-config-env-file \--from-env-file=/opt/configmap/game-env-file.properties[root@node /opt/configmap] kubectl get configmap game-config-env-file -o yamlapiVersion: v1kind: ConfigMapmetadata:creationTimestamp: 2017-12-27T18:36:28Zname: game-config-env-filenamespace: defaultresourceVersion: "809965"uid: d9d1ca5b-eb34-11e7-887b-42010a8002b8data:allowed: '"true"'enemies: alienslives: "3"
