ConfigMaps 允许配置项目与镜像内容分离,以保持容器化应用程序的可移植性。本页提供了一系列使用示例,演示如何如何使用存储在ConfigMap中的数据创建ConfigMap和配置Pod。

使用介绍流程

  1. 创建ConfigMap
    1. 使用文件夹/文件/键值的形式创建ConfigMap
  2. 使用ConfigMap定义环境变量
    1. 使用单个ConfigMap中的数据定义环境变量
    2. 使用多个ConfigMap中的数据定义环境变量
    3. 将ConfigMap中的所有键值对配置为环境变量
  3. 使用ConfigMap定义数据卷
    1. 使用ConfigMap
    2. 将ConfigMap中数据挂载到容器特定路径下

创建ConfigMap

  • 从目录创建
  1. # 将要使用的目录下的文件
  2. [root@node /opt/configmap]ls
  3. game.properties ui.properties
  4. # 根据文件夹创建ConfigMap
  5. [root@node /opt/configmap] kubectl create configmap game-config --from-file=/opt/configmap/
  6. # 查看ConfigMap
  7. [root@node /opt/configmap] kubectl describe configmaps game-config
  8. Name: game-config
  9. Namespace: default
  10. Labels: <none>
  11. Annotations: <none>
  12. Data
  13. ====
  14. game.properties: 158 bytes
  15. ui.properties: 83 bytes
  • 从文件创建
  1. # 将要使用的文件
  2. [root@node /opt/configmap]ls
  3. game.properties ui.properties
  4. # 根据文件创建ConfigMap
  5. [root@node /opt/configmap] kubectl create configmap game-config2 --from-file=/opt/configmap/game.properties --from-file=/opt/configmap/ui.properties
  6. # 查看ConfigMap
  7. [root@node /opt/configmap] kubectl describe configmaps game-config2
  8. Name: game-config
  9. Namespace: default
  10. Labels: <none>
  11. Annotations: <none>
  12. Data
  13. ====
  14. game.properties: 158 bytes
  15. ui.properties: 83 bytes
  • 使用—from-env-file选项以键值的形式从一个env文件创建ConfigMap
  1. """
  2. env文件中的每一行必须为VAR = VAL格式。
  3. 若引号没有特殊处理(即它们将成为ConfigMap值的一部分)。
  4. **注意**:当多次传递--from-env-file来从多个数据源创建ConfigMap时,仅使用最后一个env文件:
  5. """
  6. # 查看env文件示例
  7. [root@node /opt/configmap]cat game-env-file.properties
  8. enemies=aliens
  9. lives=3
  10. allowed="true"
  11. # 根据env文件创建ConfigMap
  12. [root@node /opt/configmap] kubectl create configmap game-config-env-file \
  13. --from-env-file=/opt/configmap/game-env-file.properties
  14. [root@node /opt/configmap] kubectl get configmap game-config-env-file -o yaml
  15. apiVersion: v1
  16. kind: ConfigMap
  17. metadata:
  18. creationTimestamp: 2017-12-27T18:36:28Z
  19. name: game-config-env-file
  20. namespace: default
  21. resourceVersion: "809965"
  22. uid: d9d1ca5b-eb34-11e7-887b-42010a8002b8
  23. data:
  24. allowed: '"true"'
  25. enemies: aliens
  26. lives: "3"