ConfigMap介绍

ConfigMap和Secret是Kubernetes系统上两种特殊类型的存储卷,ConfigMap对象用于为容器中的应用提供配置文件等信息。但是比较敏感的数据,例如密钥、证书等由Secret对象来进行配置。它们将相应的配置信息保存于对象中,而后在Pod资源上以存储卷的形式挂载并获取相关的配置,以实现配置与镜像文件的解耦。

下面主要介绍使用Volume将ConfigMap作为文件或目录挂载

1.首先在容器外面创建一个redis.conf的配置文件,然后根据这个配置文件创建出一个名为redis.conf的ConfigMap

2.通过kubectl get cm redis.conf -o yaml可以将刚才创建的ConfigMap以yaml格式输出

3.剔除一些创建时间等元数据,精简过后的ConfigMap的yaml文件的内容如下所示

apiVersion: v1
data: #data里面是配置文件的名字以及相应的配置,以key:value的格式来书写。
redis.conf: | #key:redis.conf (默认是你创建ConfigMap时--from-file=redis.conf那哪个配置文件就叫什么名字)
appendonly yes #value:配置文件的内容
kind: ConfigMap
metadata:
name: redis-conf
namespace: default

注:data里可以包含多个配置文件的数据,所以data里面是通过key:value的形式来表示对应的配置文件的名字及内容的

创建完ConfigMap后通过创建一个pod来具体讲述一下ConfigMap是如何使用的

apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
command: #创建容器后在容器里面执行的命令
- redis-server
- "/redis-master/redis.conf" #指的是redis容器内部的位置
ports:
- containerPort: 6379
volumeMounts:
- mountPath: /data #指的是容器内部的/data目录
name: data #卷挂载的名字,与下面相同名字的volumes进行匹配并挂载
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config #将volumeMounts需要进行挂载且name为config的目录以配置集的方式进行挂载
configMap:
name: redis-conf #这是配置集的名称,k8s会根据这个名字来寻找对应的ConfigMap
items:
- key: redis.conf #这是ConfigMap当中data里面的key值,也就是要挂载的配置文件的名字,k8s要根据这个key值从名为redis.conf的ConfigMap中找到需要挂载的配置文件的真正内容。
path: redis.conf #这是最终容器当中配置文件的名字,也就是容器中配置文件路径为/redis-master/redis.conf

用图片描述对应关系就是如下所示:

4.另外还可通过kubectl edit来编辑ConfigMap从而直接修改容器内部的配置文件的内容:

最新文章

  1. js 用途
  2. 您还有心跳吗?超时机制分析(java)
  3. Maven应用
  4. JQ写下拉列表项目移动(内附效果图和源代码)
  5. Link Management Protocol (LMP)
  6. java web应用下跨域3招
  7. c/c++ unix ipc
  8. Jquery-全选和取消的一个坑
  9. 分布式架构探索 - 2. WebService RPC框架之Apache CXF
  10. Jmeter ----Bean shell使用
  11. Haskell语言练习
  12. Java实现用汉明距离进行图片相似度检测的
  13. BERT的开源实现的使用
  14. 常见浏览器兼容性问题与解决方案css篇
  15. ETL项目2:大数据清洗,处理:使用MapReduce进行离线数据分析并报表显示完整项目
  16. 6.二元查找树的后序遍历结果[PostOrderOfBST]
  17. sql注入--高权限,load_file读写文件
  18. FPGA中RAM使用探索
  19. 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)转
  20. pdf.js 在线阅读PDF

热门文章

  1. CRM项目的整理---第一篇
  2. 从0到1使用kubebuiler开发operator
  3. vue中使用echarts的两种方法
  4. 检查MySQL主从复制运行状态
  5. mongoDB 命令大全
  6. 图的连通性--Tarjan算法
  7. 论文解读(gCooL)《Graph Communal Contrastive Learning》
  8. 前端1HTML
  9. JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常
  10. ssh打通