当前位置: 首页 > news >正文

7、configMap

1、configMap是什么

类似与pod的配置中心,不会因为pod的创建销毁,相关配置发生改变
pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod
定义。为了能在多个环境下复⽤pod的定义,需要将配置从pod定义描
述中解耦出来。

2、向容器中添加配置参数

2.1 向容器传递命令⾏参数

2.2 为每个容器设置⾃定义环境变量

kubectl exec -it pod_name shell

2.3 通过特殊类型的卷将配置⽂件挂载到容器中

持久卷类型使用gitrepo,提供版本控制

2.4 pod配置参数

3、 pod中配置环境环境变量

环境变量的值是固定的。可以采⽤$(VAR)语
法在环境变量值中引⽤其他的环境变量。假设定义了两个环境变量,
第⼆个变量定义中可包含第⼀个环境变量的值SECOND_VAR的值是"foobar"。

4、创建configMap

4.1 configMap的作用

将配置存放在独⽴的资源
对象中有助于在不同环境(开发、测试、质量保障和⽣产等)下拥有
多份同名配置清单。pod是通过名称引⽤ConfigMap的,因此可以在多
环境下使⽤相同的pod定义描述,同时保持不同的配置值以适应不同环
境

4.2 configMap的创建方式

kubectl create configmap <config_name> --key=value --key=value

# yaml方式查看
kubectl get configmap <configmap_name> -o yaml

# 运行yaml
kubectl create -f <config_yaml>

5、给容器传递ConfigMap条⽬作为环境变量

5.1 valueFrom

容器从configmap中获取环境变量

5.2 配置前缀,把所有的环境变量提供给容器

可以为所有的环境变量设置前缀,如本例中的
CONFIG_ , 容 器 中 两 个 环 境 变 量 的 名 称 为 : CONFIG_FOO 与
CONFIG_BAR

5.3 向shell传递参数

5.4 pod读取configMap文件 nginx

Nginx需读取配置⽂件/etc/nginx/nginx.conf,⽽Nginx镜像内的这个
⽂件包含默认配置,并不想完全覆盖这个配置⽂件。幸运的是,默认
配置⽂件会⾃动嵌⼊⼦⽂件夹/etc/nginx/conf.d/下的所有.conf⽂件,因
此只需要将你的配置⽂件置于该⼦⽂件夹中即可
pod定义中包含了引⽤fortune-config ConfigMap的卷,需要被挂载
到⽂件夹/etc/nginx/conf.d下让Nginx服务器使⽤它。

# 配置pod

# 配置configMap

现 在 的 web 服 务 器 应 该 已 经 被 配 置 为 会 压 缩 响 应 , 可 以 将
localhost:8080转发到pod的80端口,利⽤curl检查服务器响应来验证配
置是否⽣效

5.5 其他配置方式

# 卷内暴露指定的ConfigMap条⽬
指定单个条⽬时需同时设置条⽬的键名称以及对应的⽂件名。如
果采⽤上⾯的配置⽂件创建pod,/etc/nginx/conf.d⽂件夹是⽐较⼲净的,
仅包含所需的gzip.conf⽂件。

# 为configMap卷中的⽂件设置权限
configMap卷中所有⽂件的权限默认被设置为644(-rw-r-r--)。可
以通过卷规格定义中的defaultMode属性改变默认权限

5.6 更新configmap

configmap重新修改不会pod不会自动重新配置,需要pod重新加载或者重启。
能够自动配置的,只可能是本身容器内的服务能够自己重新加载配置文件
比如 nginx -s reload

# 查看配置

# 重新加载

6、secret 敏感数据

6.1 什么是secret

采⽤ConfigMap存储⾮敏感的⽂本配置数据。
采⽤Secret存储天⽣敏感的数据,通过键来引⽤。如果⼀个配置⽂
件同时包含敏感与⾮敏感数据,该⽂件应该被存储在Secret中

http://www.lryc.cn/news/337767.html

相关文章:

  • 【Java面试题】JVM(26道)
  • (十三)强缓存和协商缓存的区别
  • 如何创建Windows下google Chrome便携版?
  • rabbitmq安装rabbitmq-delayed-message-exchange插件
  • B02、分析GC日志-6.3
  • Redis中的集群(二)
  • UVA12538 Version Controlled IDE 题解 crope
  • OAuth2.0客户端和服务端Java实现
  • 物流自动分拣系统激光雷达漫反射板
  • 2024 抖音欢笑中国年(三):编辑器技巧与实践
  • Python学习入门(1)——基础语句(二)
  • vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示
  • 使用idea运行程序,发现控制台的中文出现乱码
  • 基于javassm实现的大学生兼职信息系统
  • O2OA开发平台如何查看数据表结构?
  • 心理测评性格测试矩阵版h5微信抖音QQ快手小程序app开源版开发
  • 【蓝桥杯】十六进制转八进制 C++实现
  • 明明设置数字居中对齐,为什么excel的数字却不居中?
  • 深入解析API技术:原理、实现与应用
  • C语言——数组指针变量
  • Redis的过期策略与内存淘汰机制原理及实践
  • 【24届数字IC秋招总结】提前批面试经验1——小米、百度昆仑芯、长鑫存储
  • 第7章、ReactRedux 实战 - 登录注册验证;
  • 16路HDMI+AV流媒体IPTV高清编码器JR-3216HD
  • vscode 配置文件settings.json和c_cpp_properties.json的作用
  • 【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门
  • 【计算机毕业设计】人事管理系统——后附源码
  • OceanBase V4.2 MySQL模式下,如何通过DBLINK实现跨数据源访问
  • 再谈C语言——理解指针(一)
  • day21-二叉树part08