1. 简介2. Redis示例2.1 创建文件2.2 制作配置集2.3 查看2.4 创建Pod2.4.1 创建文件redis.yaml文件2.4.2 运行2.4.3 可视化查看2.4.4 主机中修改配置集内容测试3. 总结
1. 简介
抽取应用配置,并且可以自动更新。
比如Reids配置文件,适合使用ConfigMap
2. Redis示例
2.1 创建文件
创建
redis.conf
,这句话代表redis数据需要持久化存储。appendonly yes
2.2 制作配置集
配置文件创建为配置集,将
redis.conf
这个文件做成redis-conf
配置集# 创建配置集,redis保存到k8s的etcd root@docker01:/home# kubectl create cm redis-conf --from-file=redis.conf configmap/redis-conf created
2.3 查看
root@docker01:/home# kubectl get cm NAME DATA AGE kube-root-ca.crt 1 2d4h redis-conf 1 2m5s # 查看yaml信息 root@docker01:/home# kubectl get cm redis-conf -oyaml
apiVersion: v1 data: redis.conf: | appendonly yes kind: ConfigMap metadata: name: redis-conf namespace: default
- data中是所有真正的数据,key:默认是文件名,value:配置文件内容
2.4 创建Pod
2.4.1 创建文件redis.yaml
文件
apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis command: - redis-server - "/redis-master/redis.conf" #指的是redis容器内部的位置 ports: - containerPort: 6379 volumeMounts: - mountPath: /data name: data - mountPath: /redis-master name: config volumes: - name: data emptyDir: {} - name: config configMap: name: redis-conf items: - key: redis.conf path: redis.conf
2.4.2 运行
root@docker01:/home# kubectl apply -f redis.yaml pod/redis created
2.4.3 可视化查看
查看redis这个Pod中
/redis-master/redis.conf
文件2.4.4 主机中修改配置集内容测试
# 1. 查看配置集 root@docker01:/home# kubectl get cm NAME DATA AGE kube-root-ca.crt 1 2d5h redis-conf 1 45m # 2. 修改配置集 root@docker01:/home# kubectl edit cm redis-conf
等一会儿,信息同步
检查redis是否生效
# 1. 使用redis-cli客户端连接redis root@redis:/redis-master# redis-cli # 2. 使用命令检查appendonly,发现生效 127.0.0.1:6379> CONFIG GET appendonly 1) "appendonly" 2) "yes" # 监测requrepass是否生效,由于修改还没有重启,故没生效 127.0.0.1:6379> CONFIG GET requirepass 1) "requirepass" 2) "" 127.0.0.1:6379>
由于redis自身没有热更新能力,所以需要重新启动这个redis的Pod才可以使配置生效。
3. 总结
- 配置文件推荐使用ConfigMap