【发布时间】:2021-08-31 09:18:14
【问题描述】:
我在 3 个具有相同网络配置的 ubuntu 20 节点上设置了 redis 集群。 (eno1接口用于管理,enp1s0f1用于内部网络)
在 /etc/redis/redis.conf 中,我将它绑定到 enp1s0f1 接口,就像在 3 个节点中一样
bind 172.19.101.2x
然后我像这样创建redis集群
redis-cli --cluster create 172.19.101.23:6379 172.19.101.24:6379 172.19.101.25:6379
集群创建正常,集群信息也报告正常
但是当我做集群节点时,它会报告管理 ip 而不是内部 ip 只针对 1 个节点。
administrator@slave-node2:~$ redis-cli -h 172.19.101.24 cluster nodes
33c4484ca50aa7916b8727723f4eb5576c7b94ab 172.19.101.25:6379@16379 master - 0 1623764502745 4 connected 10923-16383
e099188cb0ae8bcc32ca7d81f0c8659a2b4ebb7b **10.110.3.166**:6379@16379 myself,master - 0 1623764500000 3 connected 5461-10922
3afa9cb15e166254a9f5182ba1b0df46137f954b 172.19.101.23:6379@16379 master - 0 1623764501741 2 connected 0-5460
所以现在当客户端连接到这个 redis 集群时,他们会收到这个错误 - Can't connect to master: redis://10.110.3.166:6379 with slot ranges: [[5461-10922]]
顺便说一句,如果我通过连接到集群中的其他节点来执行 redis-cli 集群节点,它会像这样报告正常
administrator@slave-node2:~$ redis-cli -h 172.19.101.25 cluster nodes
e099188cb0ae8bcc32ca7d81f0c8659a2b4ebb7b 172.19.101.24:6379@16379 master - 0 1623765101198 3 connected 5461-10922
3afa9cb15e166254a9f5182ba1b0df46137f954b 172.19.101.23:6379@16379 master - 0 1623765100194 2 connected 0-5460
33c4484ca50aa7916b8727723f4eb5576c7b94ab 172.19.101.25:6379@16379 myself,master - 0 1623765099000 4 connected 10923-16383
所以问题是
- 为什么redis选择这个节点的管理ip?
- 有没有办法将其限制为所需的 ip/接口?
- 有没有办法在集群节点中改变它?
感谢任何指向此的指针
【问题讨论】:
标签: redis redis-cluster redisson