一、ConfigMap介绍

ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。

ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改。如果需要存储加密信息时可以使用Secret对象。

二、ConfigMap创建

1.通过命令行创建configmap

可以使用 kubectl create configmap 从文件、目录或者 key-value 字符串创建等创建 ConfigMap

 (1)通过文件创建configmap

$ echo hello > test1.txt
$ ehco world > test2.txt
$ kubectl create configmap my-config --from-file=key1=test1.txt  --from-file=key2=test2.txt
$ kubectl describe configmap my-config

看到该configmap中有两个键值对,key1:hello 和 key2:world

(2)通过文件夹创建configmap

$ mkdir config
$ echo hello > config/test1
$ echo world > config/test2

#根据文件夹创建configmap

$ kubectl create configmap dir-config --from-file=config/

$ kubectl describe configmap dir-config

看到该configmap资源中有两个键值对,test1:hello和test2:world,key为文件名,value为文件内容

(3)通过键值对创建configmap

$ kubectl create configmap literal-config --from-literal=key1=hello --from-literal=key2=world

$ kubectl describe configmap literal-config

2.通过yaml文件创建

#config.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: my-config
data:key1: hellokey2: world

$ kubectl create -f config.yaml

$ kubectl describe configmap my-config

三、ConfigMap的使用

Pod的使用方式:

1. 将ConfigMap中的数据设置为容器的环境变量

2. 将ConfigMap中的数据设置为命令行参数

3. 使用Volume将ConfigMap作为文件或目录挂载

4. 编写代码在 Pod 中运行,使用 Kubernetes API 来读取 ConfigMap

1.配置到容器的环境变量

# test-pod-configmap.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod-configmap
spec:containers:- name: test-busyboximage: busyboximagePullPolicy: IfNotPresentargs:- sleep- "86400"env:- name: KEY1valueFrom:configMapKeyRef:name: my-configkey: key1- name: KEY2valueFrom:configMapKeyRef:name: my-configkey: key2

#创建pod

$ kubectl create -f test-pod-configmap.yaml

2. 设置为命令行参数

# test-pod-configmap-cmd
apiVersion: v1
kind: Pod
metadata:name: test-pod-configmap-cmd
spec:containers:- name: test-busyboximage: busyboximagePullPolicy: IfNotPresentcommand: [ "/bin/sh","-c","echo $(KEY1) $(KEY2)"]env:- name: KEY1valueFrom:configMapKeyRef:name: my-configkey: key1- name: KEY2valueFrom:configMapKeyRef:name: my-configkey: key2restartPolicy: Never

# 创建pod,该pod成功启动后会输出环境变量KEY1和KEY2的值

$ kubectl create -f test-pod-configmap-cmd.yaml

#查看pod的日志

$ kubectl logs test-pod-configmap-cmd

#进入到容器中查看环境变量

$ kubectl exec -it test-pod-configmap -- /bin/sh

3.将configmap挂载到容器中

# test-pod-projected-configmap-volume.yaml
apiVersion: v1
kind: Pod
metadata:name: test-pod-projected-configmap-volume
spec:containers:- name: test-pod-busyboximage: busyboximagePullPolicy: IfNotPresentargs:- sleep- "86400"volumeMounts:- name: config-volumemountPath: "/projected-volume"readOnly: truevolumes:- name: config-volumeprojected:sources:- configMap:name: my-config

#创建pod

kubectl create -f test-pod-projected-configmap-volume.yaml

#进入容器

$ kubectl exec -it test-pod-projected-configmap-volume -- /bin/sh

#查看挂在到容器中的文件内容

通过volume挂载和环境变量的区别

通过Volume挂载到容器内部时,当该configmap的值发生变化时,容器内部具备自动更新的能力,但是通过环境变量设置到容器内部该值不具备自动更新的能力。

注意:

ConfigMap必须在Pod使用它之前创建

使用envFrom时,将会自动忽略无效的键

Pod只能使用同一个命名空间的ConfigMap

感谢:

https://kubernetes.io/zh/docs/concepts/configuration/configmap/

k8s -- ConfigMap - 简书

k8s之ConfigMap详细理解及使用相关推荐

  1. k8s之Secret详细理解及使用

    Secret介绍 k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息.它把 Pod 想要访问的加密数据存放到 Etcd 中.然后用户就可以通过在 Pod 的容器里挂 ...

  2. 【Kubernetes】k8s的安全管理详细说明【SA配置、k8s安装dashboard、资源限制(resource、limit、resourcequota)】

    文章目录 环境准备 token验证&&kubeconfig验证 role和clusterrole赋权 sa[Service Account] sa总结 1.service accoun ...

  3. 【K8S实战系列-nignx-2】k8s中configmap挂载配置nginx.conf

    [K8S实战系统-nignx-2]k8s中configmap挂载配置nginx.conf 1. ConfigMap是什么 ConfigMap作用是存储不加密的数据到etcd中,让Pod以变量或数据卷V ...

  4. 【Kubernetes】k8s的安全管理详细说明【k8s框架说明、token验证和kubeconfig验证详细说明】

    文章目录 环境准备 k8s安全框架介绍 token验证 说明 启用token验证 测试token验证 base-auth[已经被淘汰] kubeconfig验证 说明 kubeconfig文件拷贝做测 ...

  5. Maven依赖详细理解

    Maven依赖理解 1 简介 2 依赖的配置 3 依赖的范围 4 传递性依赖 4.1 传递性依赖和依赖调解 5 依赖调解 6 可选依赖 7 总结 8 下载 1 简介  在Maven项目中,有一个核心文 ...

  6. 【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose

    [时序列]时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 理解python sm.tsa.seasonal_decompose 在做时序列分析 ...

  7. 【Kubernetes】k8s的安全管理详细说明【role赋权和clusterrole赋权详细配置说明】

    文章目录 环境准备 token验证&&kubeconfig验证 授权 了解authorization-mode授权模式 AlwaysAllow&&AlwaysDeny ...

  8. K8s 中 ConfigMap 使用介绍

    K8s 中 ConfigMap 使用介绍 一.基本介绍 二.ConfigMap 使用介绍 1.ConfigMap 的创建 2.Pod 中使用 ConfigMap 一.基本介绍 ConfigMap 是一 ...

  9. 模型整合之模型堆叠——详细理解Stacking model

    详细理解Stacking model 如果你得到了10个不一样的model,并且每个model都各有千秋,这个时候你该怎么选?想必你一定是很为难吧,但通过集成方法,你可以轻松的将10个model合成为 ...

最新文章

  1. gVIM+zencoding快速开发HTML/CSS/JS(适用WEB前端)
  2. html5决战沙城源码,决战沙城h5符文玩法介绍 怎么获得完美首通
  3. MySQL purge 线程
  4. Swift3.0 键盘高度监听获取
  5. 《Spring源码深度解析》 PDF
  6. SQL Server多实例环境搭建与连接
  7. vue调用函数怎么传参_Vue(非)父子组件的传值以及方法调用
  8. 知道半径 两点角度 怎么求坐标
  9. C/C++二维数组的传参方法总结
  10. pythonATM,购物车项目实战1,项目说明
  11. JavaScript动态显示当前时间和倒计时的设计(附全码)_AX
  12. 关灯游戏java代码_江湖救急!在用JAVA做一个关灯游戏,有些不会的地方
  13. 技术交底书在专利申请文件撰写中的功用
  14. JUnit 5- 概述
  15. 在线教育技术方案,究竟哪种好?
  16. 领航致远_李腾飞老师javascript_html_css视频教程
  17. CNAS仪器校准人员需要遵守哪些规范?
  18. Windows程序设计——Ellipse函数画圆及不用Windows自带的画椭圆函数画椭圆
  19. HTML5七夕情人节表白网页(抖音-流动爱心表白)HTML+CSS+JavaScript 求婚示爱代码 520情人节告白代码 程序员表白源码 3D旋转相册 js烟花代码 爱心表白网页
  20. 谈谈用户留存率为何如此重要?

热门文章

  1. PRD:抖音APP产品需求文档
  2. 被遗忘的黑莓,你还活得好么?
  3. 在Ubuntu16.04上安装Aegisub
  4. 用Python与Watson,将《魔戒》甘道夫的性格可视化!
  5. ejb2.1中ejbQL的缺点,权且作为笔记
  6. 东南大学计算机系考研难度,东南大学研究生好考吗 都有哪些专业
  7. 30岁青年医生凌晨猝死:生死之外,其实都是小事!
  8. 中石油:皇家棋神(思维)
  9. 渗透测试中信息收集的那些事
  10. 推荐几个黑白照片上色软件给大家