
# 配置项
配置项在边缘Kubernetes集群中是通过ConfigMap资源对象来实现的，配置项功能可以管理边缘集群的ConfigMap资源，您可以在自己的容器中直接挂载并使用ConfigMap资源。
配置项价值如下：
- 使用配置项功能可以帮您管理不同环境、不同业务的配置。
- 方便您部署相同工作负载的不同环境，配置文件支持多版本，方便您进行更新和回滚工作负载。
- 方便您快速将您的配置以文件的形式导入到容器中。
![](https://support.huaweicloud.com/usermanual-iotedge/public_sys-resources/note_3.0-zh-cn.png)
配置项功能，会隐藏显示系统应用的配置，以及命名空间为kube-system、kube-public、kube-node-lease的配置。
#### 场景说明
应用经常有从配置文件、命令行参数或者环境变量中读取一些配置信息的需求，例如您的应用连接一个redis服务，在不同运行环境需要不同的配置，如果配置信息直接硬编码到应用程序中，那么就需要修改代码中的配置并重新制作镜像。而ConfigMap提供了向容器中注入配置信息的能力，可以用ConfigMap来保存整个redis的配置文件，更换配置或环境时，不需要重新制作镜像，直接修改ConfigMap的配置数据即可。
 #### 操作步骤
1. 访问IoT边缘，单击**"管理控制台"**进入IoT边缘控制台。
2. 选择左侧导航栏"边缘集群 \> 集群管理"进入页面，选择"状态"为"运行中"的集群，单击"边缘集群名称"进入集群概览页。
3. 在左侧导航栏选择"应用配置"进入配置项页。
4. 单击页面左上角"创建配置项"，在弹窗中按照[表1]填写配置项参数。
   
   ![](https://support.huaweicloud.com/usermanual-iotedge/public_sys-resources/caution_3.0-zh-cn.png)
   配置项会明文展示所输入信息，请不要填入敏感信息，如涉及敏感信息，请先加密，防止信息泄露。
   图1创建配置项   
   ![](https://support.huaweicloud.com/usermanual-iotedge/figure/zh-cn_image_0000001664296116.png "点击放大")
    表1参数说明 
   | 参数名称  | 参数说明                                     |
   |:---|:---|
   | 配置项名称 | 新建的配置项名称，同一个命名空间里命名必须唯一。                 |
   | 命名空间  | 新建配置项所在的命名空间，默认为default。                 |
   | 描述    | 配置项描述，可选填。                               |
   | 配置数据  | 配置项的数据，key-value形式的键值对。这些数据可以在 Pod 里面使用。 |
      
   
   
5. 配置完成后，单击"确认"即可创建配置项，配置项列表中会出现新创建的配置项。
#### 使用配置项
1. 按照上述[操作步骤]创建配置项，以[表2]为例，将在边缘集群中创建下面这个ConfigMap。
   
   ```
   apiVersion: v1
   kind: ConfigMap
   metadata:
     name: iot-configmap
   data:
     SPECIAL_LEVEL: Hello
     SPECIAL_TYPE: IoT
   ```
   
    表2参数说明 
   | 参数名称          | 参数值                                                                                    |
   |:---|:---|
   | 配置项名称         | iot-configmap                                                                          |
   | 命名空间          | default                                                                                |
   | 描述            | 无                                                                                      |
   | 配置数据（"键"="值"） | SPECIAL_LEVEL: Hello SPECIAL_TYPE: IoT |
      
   
   
2. 创建自己的模板应用，将ConfigMap以数据卷的形式挂载到容器，然后就可以在应用中使用配置项了。如下面的示例所示，配置项挂载完成后，最终会在容器中的/etc/config目录下生成以配置项中的key为文件名， value为文件内容的配置文件。下面会在应用运行正常后，生成"SPECIAL_LEVEL"和"SPECIAL_TYPE"两个文件，且文件的内容分别为"Hello"和"IoT"。 
   ```
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: nginx-demo
   spec:
     replicas: 1
     selector:
       matchLabels:
         app: nginx-demo
     template:
       metadata:
         labels:
           app: nginx-demo
       spec:
         containers:
         - name: container-1
           image: nginx:latest
           volumeMounts:
           - name: config-volume
             mountPath: /etc/config            # 挂载到/etc/config目录下
       volumes:
       - name: config-volume
         configMap:
           name: iot-configmap                 # 引用的配置项名称
   ```
   
   
3. 按照操作步骤[创建应用模板](https://support.huaweicloud.com/usermanual-iotedge/iotedge_03_0102.html)。
4. 按照操作步骤[添加应用版本](https://support.huaweicloud.com/usermanual-iotedge/iotedge_03_0106.html)。
5. 按照操作步骤[部署应用到边缘集群](https://support.huaweicloud.com/usermanual-iotedge/iotedge_03_0108_SE.html)。
6. 也可以为应用增加一些监测配置文件变更的功能或脚本，然后更新配置项，可以实现配置信息的热更新。
 
#### 相关操作
配置项创建完成后，您还可以执行[表3]中的操作。
 表3操作说明 
| 操作    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|
| 编辑配置项 | 1. 选择需要编辑的"配置项名称"，在"操作"中单击"编辑"。  2. 根据[表1]修改弹窗中的配置项数据。  3. 单击"确认"即可修改配置项。   |
| 删除配置项 | 1. 选择需要删除的"配置项名称"，在"操作"中单击"删除"。  2. 单击"确认"即可删除配置项。                                                                                                                                                                        |
   
