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