千家信息网

kubernetes实践之三十五:Pod配置管理ConfigMap

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一:简介很多生产环境中的应用程序配置较为复杂,可能需要多个config文件、命令行参数和环境变量的组合。使用容器部署时,把配置应该从应用程序镜像中解耦出来,以保证镜像的可移植性。ConfigMap是用
千家信息网最后更新 2026年10月31日kubernetes实践之三十五:Pod配置管理ConfigMap一:简介
很多生产环境中的应用程序配置较为复杂,可能需要多个config文件、命令行参数和环境变量的组合。使用容器部署时,把配置应该从应用程序镜像中解耦出来,以保证镜像的可移植性。

ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中。ConfigMap让我们能够从容器镜像中把配置的详细信息给解耦出来。通过ConfigMap我们能够把配置以key-value对的形式传递到container或者别的系统组件(比如Controller)里面。
二:ConfigMap的创建方式
1.From Literal Values 可以用kubectl create来创建一个ConfigMap,然后通过kubectl get来获取

点击(此处)折叠或打开

  1. # Create the ConfigMap
  2. $ kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
  3. configmap "my-config" created

  4. # Get the ConfigMap Details for my-config
  5. $ kubectl get configmaps my-config -o yaml
  6. apiVersion: v1
  7. data:
  8. key1: value1
  9. key2: value2
  10. kind: ConfigMap
  11. metadata:
  12. creationTimestamp: 2017-05-31T07:21:55Z
  13. name: my-config
  14. namespace: default
  15. resourceVersion: "241345"
  16. selfLink: /api/v1/namespaces/default/configmaps/my-config
  17. uid: d35f0a3d-45d1-11e7-9e62-080027a46057
2.From Configuration File 直接通过配置文件来创建

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: special-config
  5. namespace: default
  6. data:
  7. special.how: very

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: env-config
  5. namespace: default
  6. data:
  7. log_level: INFO
3. 当前目录下包含如果有配置文件donkey.properties 可以通过kubectl命令创建一个包含该文件内容的ConfigMap

kubectl create configmap donkey.properties --from-file=donkey.properties

三:ConfigMap的使用方式

1.Pod 通过env使用ConfigMap定义环境变量

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: dapi-test-pod
  5. spec:
  6. containers:
  7. - name: test-container
  8. image: gcr.io/google_containers/busybox
  9. command: [ "/bin/sh", "-c", "env" ]
  10. env:
  11. - name: SPECIAL_LEVEL_KEY
  12. valueFrom:
  13. configMapKeyRef:
  14. name: special-config
  15. key: special.how
  16. - name: LOG_LEVEL
  17. valueFrom:
  18. configMapKeyRef:
  19. name: env-config
  20. key: log_level
  21. restartPolicy: Never
从Kubernetes V1.6 开始,引入一个新的字段envFrom,实现在Pod环境内将ConfigMap中所以定义的key=value自动生成环境变量:

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: dapi-test-pod
  5. spec:
  6. containers:
  7. - name: test-container
  8. image: gcr.io/google_containers/busybox
  9. command: [ "/bin/sh", "-c", "env" ]
  10. envFrom:
  11. - configMapRef:
  12. name: special-config
  13. restartPolicy: Never


2.使用ConfigMap设置容器启动命令的启动参数

点击(此处)折叠或打开

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: dapi-test-pod
  5. spec:
  6. containers:
  7. - name: test-container
  8. image: k8s.gcr.io/busybox
  9. command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
  10. env:
  11. - name: SPECIAL_LEVEL_KEY
  12. valueFrom:
  13. configMapKeyRef:
  14. name: special-config
  15. key: SPECIAL_LEVEL
  16. - name: SPECIAL_TYPE_KEY
  17. valueFrom:
  18. configMapKeyRef:
  19. name: special-config
  20. key: SPECIAL_TYPE
  21. restartPolicy: Never
3.在存储卷中使用ConfigMap

点击(此处)折叠或打开

  1. apiVersion: v1
    kind: Pod
    metadata:
    name: busybox
    namespace: default
    spec:
    containers:
    - image: 120.79.156.135/desktop/busybox:latest
    command:
    - sleep
    - "3600"
    imagePullPolicy: IfNotPresent
    name: busybox
    volumeMounts:
    - name: donkeyconfig
    mountPath: /configfiles
    volumes:
    - name: donkeyconfig
    configMap:
    name: donkey.properties
    items:
    - key: donkey.properties
    path: donkey.properties
    restartPolicy: Always
    imagePullSecrets:
    - name: registry-secret
四:使用ConfigMap的限制条件
1.ConfigMap必须在Pod之前创建
2.ConfigMap受Namespace限制,只有处于相同Namespaces中的Pod可以引用它
3.ConfigMap 中的配额管理还未能实现
4.kubelet只支持可以被API Server管理的Pod使用ConfigMap
配置 文件 环境 变量 命令 容器 镜像 存储 管理 内容 参数 应用程序 方式 程序 解耦 应用 限制 复杂 相同 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 圆梦互联网科技 互联网公司 科技公司 唐信互联网科技 小马过河互联网科技 壕鑫互联网络科技 互联网 新科技 农村开互联网科技讲堂 浙江互联网科技研学营 南平创想时代互联网科技有限公司 晓花互联网科技有限公司网址 电子科技大学互联网创业大赛 中国科技创新与世界互联网大会 浙南科技城互联网大厦建设工程 互联网时代的科技公司 四川互联网展示科技馆设计 江苏互联网智能科技软件 西安有哪些互联网高科技企业 昆明中奇联合互联网科技 绵阳真晨互联网科技有限公司 保险科技 互联网保险 科技制造互联网公司 百单互联网科技有限公司 深圳期待互联网科技 上海亿帐通互联网科技 互联网科技股午盘股票涨跌 小米互联网科技园设置 深圳艾果互联网通讯科技 广州有谷有贝互联网科技有限公司 求路客互联网科技电话
0