configmap:是实现给容器内应用程序传递参数。
原因:
就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性
举个例子,比如我有一个pod,既要运行在正式环境,又要运行在测试环境,还有预发三个环境,但是当中的配置,是不一样的,那么我们需要准备三个不同的pod进行测试使用。
configmap就是解决这个问题的,我们只需要准备不同的configmap即可,然后把不同的configmap挂载到同一个pod当中,就可以实现不同环境的pod运行,减少pod的复杂度,实现程序和pod的分离。


配置文件我上传到了百度网盘:
链接:https://pan.baidu.com/s/1qypUw_jK05BC0VKOWXG6_Q
提取码:1m32


咱们先创建一个演示一下效果:
k8s使用ConfigMap配置mysql和nginx (13)_第1张图片
kubectl create configmap index-html --from-file index.html -o yaml > configmap.yaml

k8s使用ConfigMap配置mysql和nginx (13)
k8s使用ConfigMap配置mysql和nginx (13)
查看configmap index-html的内容
kubectl describe configmap index-html
k8s使用ConfigMap配置mysql和nginx (13)_第2张图片


接下来创建deployment和service的yaml文件
k8s使用ConfigMap配置mysql和nginx (13)_第3张图片
这里必须要写的,路径、和配置文件


接下来启动一下
k8s使用ConfigMap配置mysql和nginx (13)_第4张图片

访问一下看一下效果
k8s使用ConfigMap配置mysql和nginx (13)_第5张图片
这就说明我们已经挂载成功了,

如果觉得简单,我们一会在做个mysql的测试

首先创建一个mysql的configmap
k8s使用ConfigMap配置mysql和nginx (13)_第6张图片

然后启动一下

k8s使用ConfigMap配置mysql和nginx (13)_第7张图片
下面是配置文件内容

=---------------------------------------------------
接下来查看一下mysql的配置

k8s使用ConfigMap配置mysql和nginx (13)_第8张图片

这里要注意,上面的是mysql配置文件的路径
下面的是咱们上面定义的configmap的名字

这里要对应起来

然后启动下

k8s使用ConfigMap配置mysql和nginx (13)_第9张图片
是不是和上面configmap配置一样呢

k8s使用ConfigMap配置mysql和nginx (13)_第10张图片
进入mysql看一下之前上面的密码是否对不对
k8s使用ConfigMap配置mysql和nginx (13)_第11张图片


上面就是今天讲的configmap,吧配置挂载到pod当中,后续大家有问题可以私信和评论区留言