文档首页 > > 用户指南> 配置中心> 使用配置项

使用配置项

分享
更新时间: 2020/01/22 GMT+08:00

配置项创建后,可在工作负载环境变量命令行参数数据卷三个场景使用。

本节以下面这个ConfigMap为例,具体介绍ConfigMap的用法。

apiVersion: v1
kind: ConfigMap
metadata:
  name: cce-configmap
data:
  SPECIAL_LEVEL: Hello
  SPECIAL_TYPE: CCE

在 pod 里使用ConfigMap时,需要Pod和ConfigMap处于同一集群和命名空间中。

通过配置项设置工作负载环境变量

您可以在创建工作负载时将配置项设置为环境变量,使用 valueFrom 参数引用ConfigMap中的Key/Value。

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod-1
spec:
  containers:
    - name: test-container
      image: busybox
      command: [ "/bin/sh", "-c", "env" ]
      env:
        - name: SPECIAL_LEVEL_KEY
          valueFrom:                             ##使用valueFrom来指定env引用配置项的value值
            configMapKeyRef:
              name: cce-configmap                ##引用的配置文件名称
              key: SPECIAL_LEVEL                 ##引用的配置项key
  restartPolicy: Never
如果您需要将多个配置项的 value 值定义为 pod 的环境变量值,您只需要在 pod 中添加多个环境变量参数即可。
env:
- name: SPECIAL_LEVEL_KEY
  valueFrom:
    configMapKeyRef:
          name: cce-configmap
          key: SPECIAL_LEVEL
- name: SPECIAL_TYPE_KEY
  valueFrom:
    configMapKeyRef:
          name: cce-configmap
          key: SPECIAL_TYPE

如果要将一个配置项中所有数据都添加到环境变量中,可以使用 envFrom 参数,配置项中的 key 会成为 Pod 中的环境变量名称。

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod-2
spec:
  containers:
    - name: test-container
      image: busybox
      command: [ "/bin/sh", "-c", "env" ]
      envFrom:
      - configMapRef:
          name: cce-configmap
  restartPolicy: Never

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

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

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod-3
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: cce-configmap
              key: SPECIAL_LEVEL
        - name: SPECIAL_TYPE_KEY
          valueFrom:
            configMapKeyRef:
              name: cce-configmap
              key: SPECIAL_TYPE
  restartPolicy: Never

这个Pod运行后,输出如下内容。

Hello CCE

使用配置项挂载到工作负载数据卷

配置项也可以在数据卷里面使用,只需在创建工作负载时将配置项挂载到工作负载中即可。挂载完成后,最终生成以 key 为文件名, value 为文件内容的配置文件。

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod-4
spec:
  containers:
    - name: test-container
      image: busybox
      command: [ "/bin/sh", "-c", "ls /etc/config/" ]   ##列出该目录下的文件名称
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config                          ##挂载到/etc/config目录下
  volumes:
    - name: config-volume
      configMap:
        name: cce-configmap
  restartPolicy: Never

这个Pod运行后,在/etc/config目录下会生成SPECIAL_LEVEL和SPECIAL_TYPE两个文件,文件的内容为Hello和CCE。且运行时会输出如下内容,即cce-configmap中SPECIAL_LEVEL和SPECIAL_TYPE的名称。

SPECIAL_TYPE
SPECIAL_LEVEL

挂载ConfigMap到数据卷还可以在界面上进行操作,在创建工作负载时,设置容器的高级设置,选择数据存储,添加本地磁盘,选择ConfigMap即可配置。具体操作请参见配置项(ConfigMap)挂载

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区