22.3. 使用案例: 在 Pod 中使用 ConfigMap


以下小节描述了在 pod 中消耗 ConfigMap 对象时的一些用例。

22.3.1. 在环境变量中消耗

ConfigMap 可用于填充各个环境变量,或者从构成有效环境变量名称的所有键填充环境变量。例如,请考虑以下 ConfigMap

有两个环境变量的 ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config 1
  namespace: default
data:
  special.how: very 2
  special.type: charm 3

1
ConfigMap 的名称。
2 3
要注入的环境变量。

包含一个环境变量的 ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: env-config 1
  namespace: default
data:
  log_level: INFO 2

1
ConfigMap 的名称。
2
要注入的环境变量。

您可以使用 configMapKeyRef 部分在 pod 中消耗此 ConfigMap 的键:

配置为注入特定环境变量的 pod 规格示例

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: gcr.io/google_containers/busybox
      command: [ "/bin/sh", "-c", "env" ]
      env: 1
        - name: SPECIAL_LEVEL_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config 2
              key: special.how 3
        - name: SPECIAL_TYPE_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config 4
              key: special.type 5
              optional: true 6
      envFrom: 7
        - configMapRef:
            name: env-config 8
  restartPolicy: Never

1
ConfigMap 中拉取指定的环境变量的小节。
2 4
要从中拉取特定环境变量的 ConfigMap 名称。
3 5
要从 ConfigMap 中拉取的环境变量。
6
使环境变量成为可选。作为可选项,即使指定的 ConfigMap 和键不存在,也会启动 pod。
7
ConfigMap 中拉取所有环境变量的小节。
8
用于拉取所有环境变量的 ConfigMap 名称。

当此 pod 运行时,其输出将包含以下行:

SPECIAL_LEVEL_KEY=very
log_level=INFO
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.