ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。
ConfigMap 将您的环境配置信息和 容器镜像 解耦,便于应用配置的修改。
注意:
ConfigMap 并不提供保密或者加密功能。 如果你想存储的数据是机密的,请使用 Secret, 或者使用其他第三方工具来保证你的数据的私密性,而不是用 ConfigMap。
为什么要使用ConfigMap?
使用 ConfigMap 来将你的配置数据和应用程序代码分开。
使用原则:
先创建后使用,即先定义后在deployment等控制器中使用,且在同一命名空间中。
ConfigMap 在设计上不是用来保存大量数据的。在 ConfigMap 中保存的数据不可超过 1 MiB。
在Pod中有2种挂载ConfigMap的方式:
方式1:目录挂载方式
源目录下的所有内容会被覆盖,目录中只有被挂载文件,对cm的更新会自动同步至pod中。
方式2:文件挂载(subPath)方式
源目录下的其他内容不会被覆盖,对cm的更新不会自动同步到pod中,需要重启或重建pod才能生效。
以环境变量方式使用的 ConfigMap 数据不会被自动更新。 更新这些数据需要重新启动 Pod。