赞
踩
- 类似与pod的配置中心,不会因为pod的创建销毁,相关配置发生改变
- pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod
- 定义。为了能在多个环境下复⽤pod的定义,需要将配置从pod定义描
- 述中解耦出来。
kubectl exec -it pod_name shell
持久卷类型使用gitrepo,提供版本控制
- 环境变量的值是固定的。可以采⽤$(VAR)语
- 法在环境变量值中引⽤其他的环境变量。假设定义了两个环境变量,
- 第⼆个变量定义中可包含第⼀个环境变量的值SECOND_VAR的值是"foobar"。
- 将配置存放在独⽴的资源
- 对象中有助于在不同环境(开发、测试、质量保障和⽣产等)下拥有
- 多份同名配置清单。pod是通过名称引⽤ConfigMap的,因此可以在多
- 环境下使⽤相同的pod定义描述,同时保持不同的配置值以适应不同环
- 境
kubectl create configmap <config_name> --key=value --key=value
- # yaml方式查看
- kubectl get configmap <configmap_name> -o yaml
- # 运行yaml
- kubectl create -f <config_yaml>
容器从configmap中获取环境变量
- 可以为所有的环境变量设置前缀,如本例中的
- CONFIG_ , 容 器 中 两 个 环 境 变 量 的 名 称 为 : CONFIG_FOO 与
- CONFIG_BAR
- 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检查服务器响应来验证配
- 置是否⽣效
- # 卷内暴露指定的ConfigMap条⽬
- 指定单个条⽬时需同时设置条⽬的键名称以及对应的⽂件名。如
- 果采⽤上⾯的配置⽂件创建pod,/etc/nginx/conf.d⽂件夹是⽐较⼲净的,
- 仅包含所需的gzip.conf⽂件。
- # 为configMap卷中的⽂件设置权限
- configMap卷中所有⽂件的权限默认被设置为644(-rw-r-r--)。可
- 以通过卷规格定义中的defaultMode属性改变默认权限
- configmap重新修改不会pod不会自动重新配置,需要pod重新加载或者重启。
- 能够自动配置的,只可能是本身容器内的服务能够自己重新加载配置文件
- 比如 nginx -s reload
# 查看配置
# 重新加载
- 采⽤ConfigMap存储⾮敏感的⽂本配置数据。
- 采⽤Secret存储天⽣敏感的数据,通过键来引⽤。如果⼀个配置⽂
- 件同时包含敏感与⾮敏感数据,该⽂件应该被存储在Secret中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。