云容器引擎 CCE-使用配置项:通过配置项设置工作负载环境变量

时间:2024-05-31 08:37:50

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

使用控制台方式

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏选择“工作负载”,单击右上角“创建工作负载”

    在创建工作负载时,在“容器配置”中找到“环境变量”,单击“新增变量”。

    • 配置项导入:选择一个配置项,将配置项中所有键值都导入为环境变量。

    • 配置项键值导入:将配置项中某个键的值导入作为某个环境变量的值。
      • 变量名称:工作负载中的环境变量名称,可自定义,默认为配置项中选择的键名。
      • 变量/变量引用:选择一个配置项及需要导入的键名,将其对应的值导入为工作负载环境变量。

      例如将cce-configmap这个配置项中“SPECIAL_LEVEL”的值“Hello”导入,作为工作负载环境变量“SPECIAL_LEVEL”的值,导入后容器中有一个名为“SPECIAL_LEVEL”的环境变量,其值为“Hello”

  3. 配置其他工作负载参数后,单击“创建工作负载”。

    等待工作负载正常运行后,您可登录容器执行以下语句,查看该配置项是否已被设置为工作负载的环境变量。

    printenv SPECIAL_LEVEL

    示例输出如下:

    Hello

使用kubectl方式

  1. 请参见通过kubectl连接集群配置kubectl命令。
  2. 创建并编辑nginx-configmap.yaml文件。

    vi nginx-configmap.yaml

    YAML文件内容如下:

    • 配置项导入:如果要将一个配置项中所有数据都添加到环境变量中,可以使用envFrom参数,配置项中的Key会成为工作负载中的环境变量名称。
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-configmap
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: nginx-configmap
        template:
          metadata:
            labels:
              app: nginx-configmap
          spec:
            containers:
            - name: container-1
              image: nginx:latest
              envFrom:                      # 使用envFrom来指定环境变量引用的配置项
              - configMapRef:
                  name: cce-configmap       # 引用的配置项名称
            imagePullSecrets:
            - name: default-secret
    • 配置项键值导入:您可以在创建工作负载时将配置项设置为环境变量,使用valueFrom参数单独引用ConfigMap中的Key/Value。
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-configmap
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: nginx-configmap
        template:
          metadata:
            labels:
              app: nginx-configmap
          spec:
            containers:
            - name: container-1
              image: nginx:latest
              env:                             # 设置工作负载中的环境变量
              - name: SPECIAL_LEVEL           # 工作负载中的环境变量名称
                valueFrom:                    # 使用valueFrom来指定环境变量引用配置项
                  configMapKeyRef:
                    name: cce-configmap       # 引用的配置项名称
                    key: SPECIAL_LEVEL        # 引用的配置项中的key
              - name: SPECIAL_TYPE            # 添加多个环境变量参数,可同时导入多个环境变量
                valueFrom:
                  configMapKeyRef:
                    name: cce-configmap
                    key: SPECIAL_TYPE
            imagePullSecrets:
            - name: default-secret

  3. 创建工作负载。

    kubectl apply -f nginx-configmap.yaml

  4. 创建完成后,查看Pod中的环境变量。

    1. 执行以下命令,查看已创建的Pod。
      kubectl get pod | grep nginx-configmap
      预期输出如下:
      nginx-configmap-***   1/1     Running   0              2m18s
    2. 执行以下命令,查看该Pod中的环境变量。
      kubectl exec nginx-configmap-*** -- printenv SPECIAL_LEVEL SPECIAL_TYPE

      预期输出如下:

      Hello
      CCE

      说明该配置项已被设置为工作负载的环境变量。

support.huaweicloud.com/usermanual-cce/cce_11_0015.html