ConfigMap管理

最近更新时间:2021-03-03 10:31:51

查看PDF

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。通过ConfigMap 可以将配置文件从容器镜像中解耦,从而增强容器应用的可移植性。ConfigMap 是有 key-value 类型的键值对,可以通过控制台创建对应的 ConfigMap 对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 ConfigMap。

容器服务控制台操作说明

创建ConfigMap

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要创建ConfigMap的集群ID,进入该集群操作页面。
  4. 选择配置管理 > ConfigMap,进入ConfigMap列表页。
  5. 单击新建,在创建ConfigMap页面,根据以下提示进行ConfigMap配置:
    • 名称:输入要创建ConfigMap的名称。
    • 所在地域:请根据实际需求进行选择。
    • 部署集群:请根据实际需求进行选择。
    • 命名空间:请根据实际需求进行选择。
    • 配置项:请根据实际需求定义变量名和变量值。
  6. 单击创建,完成ConfigMap创建。

使用ConfigMap

方式一:通过挂载ConfigMap类型数据卷
  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要使用ConfigMap的集群ID,进入该集群操作页面。
  4. 单击工作负载,选择任意类型,进入相应列表页。例如选择工作负载 > Deployment,进入Deployment列表页。
  5. 单击新建,进入创建Deployment页面。
  6. 在第二步部署配置中进行存储卷配置,选择使用ConfigMap类型,输入存储卷名称,如下图所示:
    image.png
  7. 点击选择ConfigMap,在出现的弹窗中,根据以下提示进行ConfigMap配置:
    • 选择ConfigMap:请根据实际需求进行选择。
    • 挂载选项:有全部挂载以及指定key挂载两种方式,请根据实际需求进行选择。

注:当选择指定key挂载时,可以通过Items向特定路径挂载,如挂载路径是 /etc/config,子路径是dev,最终会存储在/etc/config/dev下。

  1. 按需配置完所有信息后点击创建,完成创建。
方式二:通过定义容器环境变量
  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要使用ConfigMap的集群ID,进入该集群操作页面。
  4. 单击工作负载,选择任意类型,进入相应列表页。例如选择工作负载 > Deployment,进入Deployment列表页。
  5. 单击新建,进入创建Deployment页面,进行容器配置时,在环境变量项单击添加环境变量,如下图所示:

容器配置.jpg

  1. 在环境变量配置中,选择引用ConfigMap方式添加,输入变量名以及选择变量值/变量引用,如下图所示:

环境变量.jpg

  1. 按需配置完所有信息后点击创建,完成创建。

更新ConfigMap

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要更新ConfigMap的集群ID,进入该集群操作页面。
  4. 选择配置管理 > ConfigMap,进入ConfigMap列表页。
  5. 选择要更新的ConfigMap,单击编辑YAML
  6. 在更新ConfigMap页面,根据实际需求进行配置,单击更新完成更新。

删除ConfigMap

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要删除ConfigMap的集群ID,进入该集群操作页面。
  4. 选择配置管理 > ConfigMap,进入ConfigMap列表页。
  5. 选择要删除的ConfigMap,单击删除
  6. 在出现的弹窗中,点击确认即可删除ConfigMap。

Kubectl 命令操作说明

创建 ConfigMap

方式一:通过YAML文件创建ConfigMap

configmap-test.yaml示例:

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-test
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm
  • data:ConfigMap 的数据,以 key-value 形式呈现。

创建configmap-test.yaml

# kubectl apply -f configmap-test.yaml
方式二:通过kubectl create configmap命令直接创建ConfigMap
# kubectl create configmap <map-name> <data-source>


# <map-name>:ConfigMap对象的名称
# <data-source>:数据源,可以根据目录、文件或者直接创建ConfigMap对象。

使用 ConfigMap

方式一:通过挂载ConfigMap类型数据卷

configmap-volume.yaml示例:

apiVersion: v1
kind: Pod
metadata:
   name: pod1-test
spec:
   containers:
     - name: container-test
       image: ksyun/nginx:latest
       volumeMounts:                             #数据卷的挂载点
         - name: config-volume
           mountPath: /etc/config
   volumes:                                      #在pod级别设置卷,然后将其挂载到pod内的容器中
     - name: config-volume
       configMap:
         name: config-test                       #挂载的ConfigMap名称
   restartPolicy: Never
方式二:通过定义容器环境变量

configmap-env.yaml

apiVersion: v1
kind: Pod
metadata:
   name: pod2-test
spec:
   containers:
     - name: container-test
       image: ksyun/nginx:latest
       env:
         - name: SPECIAL_LEVEL_KEY
           valueFrom:
             configMapKeyRef:
               name: config-test                 # 挂载的ConfigMap名称
               key: SPECIAL_LEVEL               
   restartPolicy: Never

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

  • 内容不全,不深入
  • 内容更新不及时
  • 描述不清晰,比较混乱
  • 系统或功能太复杂,缺乏足够的引导
  • 内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

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