容器化redis-cluster使用(一)集群自身ip变化更新问题

6 篇文章 0 订阅
2 篇文章 0 订阅

      最近把redis-cluster集群迁移到了k8s上后发生了一个问题,当一个pod重启后,java程序报错,连不上redis服务器。我们查看集群状态后发现,当pod重启后,pod的ip发生了改变(我们并没有固定redis-cluster的pod的ip),去非重启pod使用cluster nodes查看集群信息,一切正常,但在重启pod节点查看集群信息,发现集群信息中使用的还是重启前的pod的ip。也就是说,当pod重启后,该pod中的redis实例通知了集群中其他成员更新了Cluster topology,但自身却没有更新,截图如下:

这是redis集群信息,大家注意redis-0的ip地址,我们重启redis-0后,redis-0的ip地址如下:

pod启动了47s,其他都是25m,证明重启了,重启后ip地址为172.255.211.7,我们进去redis-0查看集群信息:

发现还是使用重启前的pod的ip,并没更新,再去其他redis节点查看集群信息:

发现集群信息正常,那怎么让他通知自己也更新Cluster topology呢?

参考:https://github.com/antirez/redis/issues/4289这个issue,在启动参数中加入选项

--cluster-announce-ip

最后yaml文件中启动参数如下:


          - "/etc/redis.conf"
          - "--protected-mode"
          - "no"
          - "--cluster-announce-ip"
          - "$(POD_IP)"

再重启pod节点,问题解决。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值