Open Y-Rookie opened 2 months ago
另外一个问题,当使用config set cluster-announce-xxx 更新节点配置时,会发现其他节点的pod ip被统一更新成了的node上cni0网卡的ip:
但也不是必现的,只有某些节点上被更新了
solution to this issue: https://infracreate.feishu.cn/wiki/HBHNwZNfGiSY98kpBdDcc2hrnhf?from=from_copylink
复现步骤:
手动修改下redis-addon,配置文件中不包含任何的cluster-announce-ip、cluster-announce-port、cluster-announce-bus-port。只以cluster mode拉起三组shard分片(每组shard一主一备,共六个节点,并需要开启nodePort)。此时还未构建redis cluster集群(需要注释掉addon中构建redis cluster的代码)。需要按照以下的步骤构建redis cluster并复现。![image](https://github.com/apecloud/kubeblocks-addons/assets/12824920/ad191ecc-70b3-4abb-a2db-8cac6854209c)
helm install redisc ./redis-cluster --set mode=cluster --set nodePortEnabled=true --set redisCluster.shardCount=3
以 headless 地址创建只有三个master分片的redis-cluster集群(手动的)
redis-cli --cluster create redisc-shard-zsq-0.redisc-shard-zsq-headless:6379 redisc-shard-p54-0.redisc-shard-p54-headless:6379 redisc-shard-n44-0.redisc-shard-n44-headless:6379 -a O3605v7HsS --cluster-yes
创建好了之后,看到的集群状态为
bff721d250122f966ad9b3f2e55d8eac6f88372a 10.42.0.43:6379@16379 myself,master - 0 0 3 connected 10923-16383 5b630ef6fe67bec7d50920d5bec04824a082e4fd 10.42.0.40:6379@16379 master - 0 1713160188925 2 connected 5461-10922 40c31c9b5bd210650efaf2fca1c9032c2b450758 10.42.0.36:6379@16379 master - 0 1713160188721 1 connected 0-5460
在每个master节点上手动执行config set命令,设置cluster-announce-ip、cluster-announce-port、cluster-announce-bus-port。其中cluster-announce-ip为host ip,cluster-announce-port 设置成上面对应的nodeport svc中 6379端口 对应的nodeport。cluster-announce-bus-port 设置成上面对应的nodeport svc中 16379端口 对应的nodeport。其中一个节点如下所示:![image](https://github.com/apecloud/kubeblocks-addons/assets/12824920/f115c7fa-e536-49fe-b986-a5677d4b0926)
在三个master节点上都进行如上操作后,执行cluster nodes可以看到三个节点状态正常,并且都能以nodeport对完暴露服务
读写操作返回的是预期内的nodeport地址:
![image](https://github.com/apecloud/kubeblocks-addons/assets/12824920/b4c783c4-62f3-4548-a281-11f1eb3c5345)
将剩余的三个备节点加到集群中,通过add-node命令加成指定master的slave。注意目标的节点此时只能用nodeport,不能再用headless,用headless的话会加不上,显示一直在waiting![image](https://github.com/apecloud/kubeblocks-addons/assets/12824920/c93ad3e5-dd35-4807-8839-2db9ab08f97d)
redis-cli --cluster add-node redisc-shard-p54-1.redisc-shard-p54-headless:6379 172.18.0.2:32068 --cluster-slave --cluster-master-id 5b630ef6fe67bec7d50920d5bec04824a082e4fd -a O3605v7HsS
因为新加的备节点还没有announce对应的ip和port,所以需要将步骤4的config set 操作也在新加的备节点上执行一次
此时问题出现了,在新加的节点上通过cluster nodes能看到其余master的信息,但是在master上却看不到新加的slave的信息![image](https://github.com/apecloud/kubeblocks-addons/assets/12824920/09b8ad63-9e00-4478-b011-97bcf99aebb7)