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中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值