文章目录
一.configmap
1.1 概述
定义: Configmap 是 k8s 中的资源对象,用于保存非机密性的配置的,数据可以用 key/value 键值对的形式保存,也可通过文件的形式保存。
作用: 我们在部署服务的时候,每个服务都有自己的配置文件,如果一台服务器上部署多个服务:nginx、tomcat、apache
等,那么这些配置都存在这个节点上,假如一台服务器不能满足线上高并发的要求,需要对服务器扩容,扩容之后的服务器还是需要部署多个服务:nginx、tomcat、apache,新增加的服务器上还是要管理这些服务的配置,如果有一个服务出现问题,需要修改配置文件,每台物理节点上的配置都需要修改,这种方式肯定满足不了线上大批量的配置变更要求。
所以,k8s 中引入了 Configmap资源对象,可以当成 volume 挂载到 pod 中,实现统一的配置管理。
特点:
1、Configmap 是 k8s 中的资源, 相当于配置文件,可以有一个或者多个 Configmap;
2、Configmap 可以做成 Volume,k8s pod 启动之后,通过 volume 形式映射到容器内部指定目录上;
3、容器中应用程序按照原有方式读取容器特定目录上的配置文件;
4、在容器看来,配置文件就像是打包在容器内部特定目录,整个过程对应用没有任何侵入。
知识结构图:
1.2 创建方法
1.2.1 命令行直接创建
直接在命令行中指定 configmap 参数创建,通过**–from-literal** 指定参数
#创建
kubectl create configmap nginx-config --from-literal=nginx_port=80 --from-literal=server_name=nginx
#查看configmap
kubectl describe configmap nginx-config
1.2.2 通过文件/目录创建
通过指定文件创建一个 configmap,–from-file=<文件/目录>
vim nginx.conf
server {
server_name www.nginx.com;
listen 80;
root /home/nginx/www/
}
- 通过指定文件创建
kubectl create configmap www-nginx --from-file=www=/opt/config/nginx.conf
kubectl describe configmap www-nginx