使用配置项

您可以在 Pod 中使用配置项,主要包括以下使用场景:

说明

在 Pod 里使用配置项时,需两者处于同一命名空间中。

更多关于配置项的信息,参见 Configure a Pod to Use a ConfigMap

用配置项定义 Pod 环境变量

您可以使用配置项定义 Pod 中环境变量,使用 valueFrom 引用配置项数据。

  1. 登录控制台,在左侧导航栏单击 集群管理 > 集群详情

  2. 在集群列表页,单击集群名称进入集群详情页。

  3. 在左侧导航栏单击 工作负载 > 容器组(Pods)

  4. 单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。

    apiVersion: v1
    kind:Pod
    metadata:
    name: config-pod-1
    namespace: yournamespace  #改成当前的命名空间名称
    spec:
    containers:
    - name: test-container
        image: busybox
        command:["/bin/sh","-c","env"]
        env:
    - name: SPECIAL_LEVEL_KEY
            valueFrom:#使用valueFrom来指定env引用配置项的value值
              configMapKeyRef:
                name: special-config               #引用的配置文件名称
                key: SPECIAL_LEVEL                 #引用的配置项key
    restartPolicy:Never

通过配置项设置命令行参数

您可以使用配置项设置容器中的命令或者参数值,使用环境变量替换语法 $(VAR_NAME)来进行。

  1. 登录控制台,在左侧导航栏单击 集群管理 > 集群详情

  2. 在集群列表页,单击集群名称进入集群详情页。

  3. 在左侧导航栏单击 工作负载 > 容器组(Pods)

  4. 单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。

    apiVersion: v1
    kind:Pod
    metadata:
    name: config-pod-3
    namespace: yournamespace  # 改成当前的命名空间名称
    spec:
    containers:
    - name: test-container
        image: busybox
        command:["/bin/sh","-c","echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)"]
        env:
    - name: SPECIAL_LEVEL_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: SPECIAL_LEVEL
    - name: SPECIAL_TYPE_KEY
            valueFrom:
              configMapKeyRef:
                name: special-config
                key: SPECIAL_TYPE
    restartPolicy:Never

    运行该 pod 后,会输出如下结果。

    very charm

在数据卷中使用配置项

您也可以在数据卷里面使用配置项,在 volumes 下指定配置项名称,会将 key/values 的数据存储到 mountPath 路径下(本例中是 /etc/config)。最终生成以 key 为文件名,values 为文件内容的配置文件。

  1. 登录控制台,在左侧导航栏单击 集群管理 > 集群详情

  2. 在集群列表页,单击集群名称进入集群详情页。

  3. 在左侧导航栏单击 工作负载 > 容器组(Pods)

  4. 单击 从 YAML 创建,在输入框中输入以下内容,单击 创建。下面是一个编排示例。

    apiVersion: v1
    kind:Pod
    metadata:
    name: config-pod-4
    namespace: yournamespace  #改成当前的命名空间名称
    spec:
    containers:
    - name: test-container
        image: busybox
        command:["/bin/sh","-c","ls /etc/config/"]#列出该目录下的文件名
        volumeMounts:
    - name: config-volume
          mountPath:/etc/config
    volumes:
    - name: config-volume
        configMap:
          name: special-config
    restartPolicy:Never

    运行 pod 后,会输出配置项的 key。

    SPECIAL_TYPESPECIAL_LEVEL