赞
踩
ConfigMap是一种比较特殊的存储卷,它的主要作用是用来存储配置信息的。
核心用途就是容器和配置的分离解耦。
如启用一个redis容器,redis容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件redis.conf,存储数据可以用持久存储实现和容器的分离解耦,配置文件也能够实现和容器的分离解耦,也就是说redis容器能够直接读取并使用预先配置好的配置文件(而不是使用容器中默认自带的配置文件).这就是configMap的功能。
ConfigMap 用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。ConfigMap 跟 secret 很类似,但它可以更方便地处理不包含敏感信息的字符串。
2.1、编写configmap.yaml文件,内容如下:
apiVersion: v1 kind: Namespace metadata: name: dev --- apiVersion: v1 kind: ConfigMap metadata: name: configmap namespace: dev data: redis.conf: | #这里是redis.conf中的内容 appendonly yes执行上面的yaml文件
[root@k8s-master ~]# kubectl apply -f configmap.yaml namespace/dev created configmap/configmap created [root@k8s-master ~]#由上可以看到已经创建成功
2.2、下面我们创建Deployment文件来定义redis相关信息,redis.yaml文件
apiVersion: apps/v1 kind: Deployment metadata: name: deploy-redis namespace: dev spec: replicas: 3 selector: matchLabels: run: deploy-redis # 通过这里和下面的标签建立关系 template: metadata: labels: run: deploy-redis # 被选择 spec: containers: - name: deploy-redis image: redis:6.2.6 # 直接拉取指定版本的redis镜像 command: # 这个是定义容器内部的启动命令 - redis-server - "/redis-master/redis.conf" # 指的是redis容器内部的位置 ports: - containerPort: 6379 protocol: TCP volumeMounts: # 下面定义了两个挂载 - mountPath: /data name: data - mountPath: /redis-master name: config volumes: - name: data emptyDir: {} # 为data挂载一个空目录 - name: config configMap: # 类型是configmap name: configmap # 名称是之前创建的configmap的名称 items: - key: redis.conf # 这个key是上面configmap中data下定义的key值 path: redis.conf # 这个是容器内部关联的文件名称执行redis.yaml文件:
kubectl apply -f redis.yaml
查看状态:
由上可知已经启动了
2.3、下面我们进入redis的容器查看我们的配置是否已经生效
可以看到已经生效
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。