搭建redis6节点集群文档:
问题:
Kubernetes 重启服务经常会变更ip,节点变更ip后,redis可能发现不了集群节点ip
搭建文档中虽然在yaml文件添加了redis启动时要使用自己的ip,如下:
command: #定义容器的启动命令和参数
- "redis-server"
args:
- "/etc/redis/redis.conf"
- "--cluster-announce-ip" #这个参数和下面的这个参数
- "$(POD_IP)" #这个参数是为了解决pod重启ip变了之后,redis集群状态无法自动同步问题
env:
- name: POD_IP #POD_IP值引用自status.podIP
valueFrom:
fieldRef:
fieldPath: status.podIP
但是只能适合至少有一个节点是正常的情况下,比如6个节点,有一个是正常的。
那如果出现6个节点都不好用的情况呢,如下:
127.0.0.1:6379> CLUSTER NODES
3910973a2e5db29fa48935b31278da715796524d 10.0.2.195:6379@16379 slave,fail? b7100bc8d40431761c2335969040145b1f5c5765 1718687954215 1718687951247 2 connected
58d7e37bd4a60293ec222321df79fe99db1b4d61 10.0.9.27:6379@16379 myself,master - 0 1718687951247 1 connected 0-5460
53eb07d167a254f255e4dd556516d5a9cc16e54e 10.0.11.25:6379@16379 slave,fail? 58d7e37bd4a60293ec222321df79fe99db1b4d61 1718687956220 1718687951247 1 connected
a58c48ff92578d66cd3a45b7323e7f8345e58a9a 10.0.14.93:6379@16379 slave,fail? af21d62f9b3984b8bf3deb9168cc8e3bae394dc6 1718687957222 1718687951247 7 connected
b7100bc8d40431761c2335969040145b1f5c5765 10.0.6.117:6379@16379 master,fail? - 1718687953207 1718687951247 2 connected 5461-10922
af21d62f9b3984b8bf3deb9168cc8e3bae394dc6 10.0.9.18:6379@16379 master,fail? - 1718687952205 1718687951247 7 connected 10923-16383
各个节点之间相互连接失败。
解决:
你可以使用redis-cli的cluster meet命令来让节点重新加入集群。例如:
redis-cli -p 6379 cluster meet <new_ip> <port>
这里<new_ip>是新节点的IP地址,是节点的端口。
如:
进入redis-sts-0 shell操作:
redis-cli -p 6379 -a 'IqMTrvN' cluster meet 10.0.2.195 6379
10.0.2.195 是要把那个节点加入到集群,这里是redis-sts-1的ip,以此类推,把剩余4个节点都加进来即可
再次看下redis集群节点情况,没有连接失败的情况,并且数据都在:
127.0.0.1:6379> CLUSTER NODES
3910973a2e5db29fa48935b31278da715796524d 10.0.2.196:6379@16379 slave b7100bc8d40431761c2335969040145b1f5c5765 0 1718688700254 2 connected
58d7e37bd4a60293ec222321df79fe99db1b4d61 10.0.9.27:6379@16379 myself,master - 0 1718688700000 1 connected 0-5460
53eb07d167a254f255e4dd556516d5a9cc16e54e 10.0.11.26:6379@16379 slave 58d7e37bd4a60293ec222321df79fe99db1b4d61 0 1718688700000 1 connected
a58c48ff92578d66cd3a45b7323e7f8345e58a9a 10.0.14.94:6379@16379 master - 0 1718688700000 8 connected 10923-16383
b7100bc8d40431761c2335969040145b1f5c5765 10.0.6.118:6379@16379 master - 0 1718688701255 2 connected 5461-10922
af21d62f9b3984b8bf3deb9168cc8e3bae394dc6 10.0.9.28:6379@16379 slave a58c48ff92578d66cd3a45b7323e7f8345e58a9a 0 1718688699000 8 connected