Configuring ConfigMap
Config maps 允许您将配置工件与镜像内容解耦,以保持容器化应用的可移植性。 以下章节定义了 config maps 以及如何创建和使用它们。
目录
Understanding Config Maps
许多应用程序需要通过配置文件、命令行参数和环境变量的某种组合进行配置。在 OpenShift Container Platform 中,这些配置工件与镜像内容解耦,以保持容器化应用的可移植性。
ConfigMap 对象提供了向容器注入配置信息的机制,同时保持容器对 OpenShift Container Platform 的无感知。config map 可用于存储细粒度的信息,如单个属性,也可存储粗粒度的信息,如整个配置文件或 JSON 数据块。
ConfigMap 对象保存键值对形式的配置信息,这些信息可以被 Pod 消费,或用于存储系统组件(如控制器)的配置信息。例如:
注意:当您从二进制文件(如镜像)创建 config map 时,可以使用 binaryData 字段。
配置数据可以通过多种方式在 Pod 中被消费。config map 可用于:
- 填充容器中的环境变量值
- 设置容器的命令行参数
- 在卷中填充配置文件
用户和系统组件都可以将配置信息存储在 config map 中。 config map 类似于 secret,但设计上更方便处理不包含敏感信息的字符串。
Config Map 限制
- 必须先创建 config map,才能在 Pod 中消费其内容。
- 控制器可以编写为容忍缺失的配置信息。请根据具体使用 config map 配置的组件逐一确认。
ConfigMap对象存在于项目中。- 只能被同一项目中的 Pod 引用。
- Kubectl 仅支持对从 API 服务器获取的 Pod 使用 config map。这包括通过 CLI 创建的 Pod,或通过复制控制器间接创建的 Pod。不包括通过 OpenShift Container Platform 节点的
--manifest-url标志、--config标志或其 REST API 创建的 Pod,因为这些不是常见的 Pod 创建方式。
Pod 只能使用同一命名空间内的 ConfigMaps。
ConfigMap 示例
您现在可以在 Pod 中使用 app-config。
通过 Web 控制台创建 ConfigMap
-
进入 Container Platform。
-
在左侧边栏点击 Configuration > ConfigMap。
-
点击 Create ConfigMap。
-
参考以下说明配置相关参数。
批量添加格式示例:
-
点击 Create。
通过 CLI 创建 ConfigMap
或者从文件创建:
操作
您可以点击列表页右侧的 (⋮) 按钮,或在详情页右上角点击 Actions,根据需要更新或删除 ConfigMap。
ConfigMap 的变更会影响引用该配置的工作负载,请提前阅读操作说明。
通过 CLI 查看、编辑和删除
Pod 中使用 ConfigMap 的方式
作为环境变量
每个键都会成为容器中的一个环境变量。
作为卷中的文件
每个键对应 /etc/config 下的一个文件,文件内容为对应的值。