|NO.Z.00262|——————————|CloudNative|——|KuberNetes&中间件容器化及helm.V09|——|中间件.v09|redis.v5.0.4|redis集群缩容扩容|
一、redis集群缩容与扩容
### --- redis集群扩容
~~~ 查找对应的rediscluster的名称;自定义的资源类型
[root@k8s-master01 redis-cluster-operator]# kubectl get DistributedRedisCluster
NAME MASTERSIZE STATUS AGE
example-distributedrediscluster 3 Healthy 23m
### --- 进行扩容为4个节点
~~~ 注:redis-cluster最少需要6个节点
[root@k8s-master01 redis-cluster-operator]# kubectl edit DistributedRedisCluster example-distributedrediscluster
spec:
clusterReplicas: 1
image: redis:5.0.4-alpine
masterSize: 2 // 更改参数为4,扩容1个cluster,总计8个实例
### --- 查看扩容的节点,可以看到4个cluster,加4个副本,共计8个实例
[root@k8s-master01 redis-cluster-operator]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
drc-example-distributedrediscluster-0-0 1/1 Running 0 26m 172.25.92.118 k8s-master02 <none> <none>
drc-example-distributedrediscluster-0-1 1/1 Running 0 25m 172.27.14.225 k8s-node02 <none> <none>
drc-example-distributedrediscluster-1-0 1/1 Running 0 26m 172.27.14.224 k8s-node02 <none> <none>
drc-example-distributedrediscluster-1-1 1/1 Running 0 26m 172.18.195.33 k8s-master03 <none> <none>
drc-example-distributedrediscluster-2-0 1/1 Running 0 26m 172.17.125.15 k8s-node01 <none> <none>
drc-example-distributedrediscluster-2-1 1/1 Running 0 26m 172.25.244.238 k8s-master01 <none> <none>
drc-example-distributedrediscluster-3-0 1/1 Running 0 2m3s 172.17.125.16 k8s-node01 <none> <none>
drc-example-distributedrediscluster-3-1 0/1 Running 0 70s 172.25.92.119 k8s-master02 <none> <none>
### --- 连接到新扩容的redis实例中,查看它的配置文件
~~~ 注:这个文件是集群的信息,若是没有进行持久化数据的;实例重启,这个文件就丢失了,
~~~ 丢失后就找不到集群配置,就加入不到集群中。
~~~ 若是没有进行持久化存储,这个文件需要备份
[root@k8s-master01 redis-cluster-operator]# kubectl exec -ti drc-example-distributedrediscluster-3-0 -- sh
/data # ls
nodes.conf redis_password
/data # cat nodes.conf
ffefefa2530a45001306bf06fcce848a2e5ae024 172.25.244.238:6379@16379 master - 0 1621419084000 0 connected 10923-16383
bb2d3469a7f370633a5221b2b23930bc4ee62c74 172.18.195.33:6379@16379 master - 0 1621419085581 1 connected 5461-10922
aeb52af5a8fcf67dfb16b7ae0ba58b7c14cdc0a5 172.17.125.15:6379@16379 master - 0 1621419086584 3 connected
8137400d26bf5a6c4cdb85b7bfc0a59fd45ab038 172.17.125.16:6379@16379 myself,master - 0 1621418609000 6 connected
26ca79cf7cff280de719c70d0b0d42c120bb9944 172.27.14.224:6379@16379 slave bb2d3469a7f370633a5221b2b23930bc4ee62c74 0 1621419084414 1 connected
d4820100214b0a9ff7a37ea8b2f7ee82db5d602a 172.27.14.225:6379@16379 slave 67c2a5b7672580c59dce271c3427d20bf04733f1 0 1621419086000 2 connected
48549e731f5ba4e28605a4bfe42ee6c18f8d2f83 172.25.92.119:6379@16379 master - 0 1621419085000 7 connected
67c2a5b7672580c59dce271c3427d20bf04733f1 172.25.92.118:6379@16379 master - 0 1621419085000 2 connected 0-5460
vars currentEpoch 7 lastVoteEpoch 0
二、redis集群缩容
### --- redis集群缩容为3个节点,共计6个实例
[root@k8s-master01 redis-cluster-operator]# kubectl edit DistributedRedisCluster example-distributedrediscluster
spec:
clusterReplicas: 1
image: redis:5.0.4-alpine
masterSize: 3 // 更改参数为3,缩容1个cluster,总计6个实例
### --- 查看缩容后的实例数量
~~~ 注:查看当前的redis实例数量为6个,说明已经删除成功
[root@k8s-master01 redis-cluster-operator]# kubectl get po -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
demo-nginx-6bdcdcc585-ph6wl 2/2 Running 0 8d 172.25.92.112 k8s-master02 <none> <none>
demo-nginx-6bdcdcc585-wqh28 2/2 Running 0 8d 172.18.195.31 k8s-master03 <none> <none>
drc-example-distributedrediscluster-0-0 1/1 Running 0 51m 172.25.92.118 k8s-master02 <none> <none>
drc-example-distributedrediscluster-0-1 1/1 Running 0 50m 172.27.14.225 k8s-node02 <none> <none>
drc-example-distributedrediscluster-1-0 1/1 Running 0 51m 172.27.14.224 k8s-node02 <none> <none>
drc-example-distributedrediscluster-1-1 1/1 Running 0 50m 172.18.195.33 k8s-master03 <none> <none>
drc-example-distributedrediscluster-2-0 1/1 Running 5 51m 172.17.125.15 k8s-node01 <none> <none>
drc-example-distributedrediscluster-2-1 1/1 Running 0 51m 172.25.244.238 k8s-master01 <none>
### --- 进入redis容器中,查看配置文件
~~~ 注:通过配置文件查看该集群数量为6个实例,说明缩容成功;配置文件已经更新了
/data # cat nodes.conf
d4820100214b0a9ff7a37ea8b2f7ee82db5d602a 172.27.14.225:6379@16379 slave 67c2a5b7672580c59dce271c3427d20bf04733f1 0 1621420126000 4 connected
26ca79cf7cff280de719c70d0b0d42c120bb9944 172.27.14.224:6379@16379 slave bb2d3469a7f370633a5221b2b23930bc4ee62c74 0 1621420125330 5 connected
bb2d3469a7f370633a5221b2b23930bc4ee62c74 172.18.195.33:6379@16379 master - 0 1621420127384 1 connected 5461-10922
ffefefa2530a45001306bf06fcce848a2e5ae024 172.25.244.238:6379@16379 master - 0 1621420126000 0 connected 10923-16383
67c2a5b7672580c59dce271c3427d20bf04733f1 172.25.92.118:6379@16379 myself,master - 0 1621420124000 2 connected 0-5460
8137400d26bf5a6c4cdb85b7bfc0a59fd45ab038 172.17.125.16:6379@16379 myself,master - 0 1621418609000 6 connected
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了