全部产品
云市场

使用配置项

更新时间:2020-03-31 16:08:07

使用配置项

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

  • 用配置项定义 Pod 环境变量
  • 通过配置项设置命令行参数
  • 在数据卷中使用配置项

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


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

用配置项定义 Pod 环境变量


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

  1. 登录控制台,在左侧导航栏点击 集群管理 > 集群。
  2. 在集群列表页,点击集群名称进入集群详情页。
  3. 在左侧导航栏点击 工作负载 > 容器组(Pods)
  4. 点击 从 YAML 创建,在输入框中输入以下内容,点击 创建
    下面是一个编排示例。
    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: config-pod-1
    5. namespace: yournamespace #改成当前的命名空间名称
    6. spec:
    7. containers:
    8. - name: test-container
    9. image: busybox
    10. command: [ "/bin/sh", "-c", "env" ]
    11. env:
    12. - name: SPECIAL_LEVEL_KEY
    13. valueFrom: #使用valueFrom来指定env引用配置项的value值
    14. configMapKeyRef:
    15. name: special-config #引用的配置文件名称
    16. key: SPECIAL_LEVEL #引用的配置项key
    17. restartPolicy: Never

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


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

  1. 登录控制台,在左侧导航栏点击 集群管理 > 集群。
  2. 在集群列表页,点击集群名称进入集群详情页。
  3. 在左侧导航栏点击 工作负载 > 容器组(Pods)
  4. 点击 从 YAML 创建,在输入框中输入以下内容,点击 创建。
    下面是一个编排示例。
    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: config-pod-3
    5. namespace: yournamespace # 改成当前的命名空间名称
    6. spec:
    7. containers:
    8. - name: test-container
    9. image: busybox
    10. command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
    11. env:
    12. - name: SPECIAL_LEVEL_KEY
    13. valueFrom:
    14. configMapKeyRef:
    15. name: special-config
    16. key: SPECIAL_LEVEL
    17. - name: SPECIAL_TYPE_KEY
    18. valueFrom:
    19. configMapKeyRef:
    20. name: special-config
    21. key: SPECIAL_TYPE
    22. restartPolicy: Never


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

在数据卷中使用配置项


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

  1. 登录控制台,在左侧导航栏点击 集群管理 > 集群。
  2. 在集群列表页,点击集群名称进入集群详情页。
  3. 在左侧导航栏点击 工作负载 > 容器组(Pods)
  4. 点击 从 YAML 创建,在输入框中输入以下内容,点击 创建。
    下面是一个编排示例。
    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: config-pod-4
    5. namespace: yournamespace #改成当前的命名空间名称
    6. spec:
    7. containers:
    8. - name: test-container
    9. image: busybox
    10. command: [ "/bin/sh", "-c", "ls /etc/config/" ] #列出该目录下的文件名
    11. volumeMounts:
    12. - name: config-volume
    13. mountPath: /etc/config
    14. volumes:
    15. - name: config-volume
    16. configMap:
    17. name: special-config
    18. restartPolicy: Never


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