用 ConfigMap 管理配置 - 每天5分钟玩转 Docker 容器技术(159)
Secret 可以为 Pod 提供密码、Token、私钥等敏感数据;对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap。
ConfigMap 的创建和使用方式与 Secret 非常类似,主要的不同是数据以明文的形式存放。
与 Secret 一样,ConfigMap 也支持四种创建方式:
1. 通过 --from-literal
:
kubectl create configmap myconfigmap --from-literal=config1=xxx --from-literal=config2=yyy
每个 --from-literal
对应一个信息条目。
2. 通过 --from-file
:
echo -n xxx > ./config1
echo -n yyy > ./config2
kubectl create configmap myconfigmap --from-file=./config1 --from-file=./config2
每个文件内容对应一个信息条目。
3. 通过 --from-env-file
:
cat << EOF > env.txt
config1=xxx
config2=yyy
EOF
kubectl create configmap myconfigmap --from-env-file=env.txt
文件 env.txt
中每行 Key=Value 对应一个信息条目。
4. 通过 YAML 配置文件:
文件中的数据直接以明文输入。
与 Secret 一样,Pod 也可以通过 Volume 或者环境变量的方式使用 Secret。
Volume 方式:
环境变量方式:
大多数情况下,配置信息都以文件形式提供,所以在创建 ConfigMap 时通常采用 --from-file
或 YAML 方式,读取 ConfigMap 时通常采用 Volume 方式。
比如给 Pod 传递如何记录日志的配置信息:
可以采用 --from-file
形式,则将其保存在文件 logging.conf
中,然后执行命令:
kubectl create configmap myconfigmap --from-file=./logging.conf
如果采用 YAML 配置文件,其内容则为:
注意别漏写了 Key logging.conf
后面的 |
符号。
创建并查看 ConfigMap:
在 Pod 中使用此 ConfigMap,配置文件为:
① 在 volume 中指定存放配置信息的文件相对路径为 myapp/logging.conf
。
② 将 volume mount 到容器的 /etc
目录。
创建 Pod 并读取配置信息:
配置信息已经保存到 /etc/myapp/logging.conf
文件中。与 Secret 一样,Volume 形式的 ConfigMap 也支持动态更新,留给大家自己实践。
小结
本章我们学习了如何向 Pod 传递配置信息。如果信息需要加密,可使用 Secret;如果是一般的配置信息,则可使用 ConfigMap。
Secret 和 ConfigMap 支持四种定义方法。Pod 在使用它们时,可以选择 Volume 方式或环境变量方式,不过只有 Volume 方式支持动态更新。
下一节我们将开始学习 Helm -- Kubernetes 的包管理器。
书籍:
1.《每天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
3.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker基本概念与实践(三)-仓库
docker仓库 docker仓库:集中存放镜像的地方 注册服务器(Registry) 存放仓库的具体服务器 服务器可有多个仓库 每个仓库可以有多个镜像 仓库相当于一个具体的项目或目录 如仓库地址 d1.dickerpool.com/ubuntu,d1.dickerpool.com是注册服务器地址,ubuntu是仓库名 仓库分为 公共仓库 如官方的dockerhub仓库 , 阿里云开发者平台等提供的镜像仓库,内含大量镜像 私有仓库 可供自己创建使用 从dockerhub仓库获取镜像 #无需登陆可查找,拉取官网中的镜像 #寻找带星的centos镜像 docker search centos --s #拉取官方镜像 默认latest 后面跟:版本号 可从仓库拉取指定版本 docker pull centos 从阿里云获取镜像 阿里云nginx镜像 资源镜像分两类 centos的基础镜像 官方提供 称为基础或根镜像 xxx(用户名/centos) 指定某个用户的镜像 搭建本地仓库 搭建本地仓库的意义 1.从dockerhub下载和上传速度可能会慢 2.在生产环境用的docker镜像可能存放一...
- 下一篇
VMware宣布收购SDN初创公司Plumgrid
VMware是一家面向x86架构的云基础和虚拟化软件和服务提供商。根据IHSMarkit最近的一份报告,VMware在为数据中心和企业局域网提供服务的SDN(软件定义网络)市场中占据了很大的市场份额,成为最大的供应商之一。公司在2003年被EMC收购,2015年EMC与DELL完成并购。 近日,VMware宣布购买SDN初创公司Plumgrid的IP和技术资产,并接管了部分员工,以加强其OpenStack软件NSX的定位。OpenStack是一个基于开源云的操作系统。 36氪曾经报道过,PLUMGrid由巴基斯坦人AwaisKhalil创立于2011年,是一家面向企业客户的云解决方案提供商。创立之初就筹集了2691万美元的资金,并于2014年完成了1626万美元的B轮融资。 Plumgrid的解决方案主要用于网络虚拟化、监控和安全的虚拟域控制。该公司专注于在OpenStack部署基础上运行SDN,以及其他解决方案,例如I/O处理器。PLUMgrid通过将其软件作为OpenStack的配套产品,来开拓市场。他们最近与Islamabad/Rawalpindi的ISP、Nayatel合作部署...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16