k8s 中 搭建redis集群,pod重启后IP变化,集群失败,请问怎么解决

发布于 2022-03-11 05:07:09 字数 86 浏览 861 评论 30

大佬们,我在k8s 中 搭建redis集群成功,pod重启后IP变化,redis集群就有问题了,请问有什么方案能解决这个问题,redis 6.0.9 的版本。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(30

恋你朝朝暮暮 2022-03-11 05:29:24

此方案过于繁琐,当前选择简单的swarm方案代替

心舞飞扬 2022-03-11 05:29:23

第一个问题:为什么你的可以正常更新其他POD的IP信息?自己的IP你可以写脚本更新。写一个update-node.sh的脚本。参考这个:https://rancher.com/blog/2019/deploying-redis-cluster?#

刘备忘录 2022-03-11 05:29:23

用外部端口,会转发POD的ip,外部应用没法连接。

高跟鞋的旋律 2022-03-11 05:29:23

redis cluster是p2p模式,不走代理,无法外部访问

一人独醉 2022-03-11 05:29:23

必须搭配一个redis cluster proxy

彩扇题诗 2022-03-11 05:29:21

删除所有pod,重新创建你试过没,其他POD的IP能自动更新吗

伪装你 2022-03-11 05:29:21

第二个问题:你的外部网络不能访问集群,你有创建service吗?我的是可以的。

少女情怀诗 2022-03-11 05:29:20

回复
@活灬在当灬下 : 有创建service,nodeport类型的,部署服务到k8s,用内部端口访问redis,是没有问题的。但是如果在集群外启动应用(比如用idea intellij执行本地启动java应用),然后用k8s集群中任意一个node的ip+nodeport去访问,就会发生timeout。博主我不知道你是不是这样试的,具体你看我下面的截图。

悸初 2022-03-11 05:29:19

回复
@活灬在当灬下 : 一下子删除所有pod,再重新创建我试过,是不能的。整个集群就直接不可用了。slot的分布都是混乱的。

情场扛把子 2022-03-11 05:29:17

用的就是statefulset

 

关键是pv中nodes.conf 里面都是IP啊

把昨日还给我 2022-03-11 05:29:17

我也是用的statefulset部署的,百度中的部署方案都是雷同的,一个抄一个。我目前遇到两个我自己无法解决的问题,其中一个就是博主你问题的问题:

  1. nodes.conf中的IP,在POD删除重启之后,无法更新自己POD的IP,反而是因为集群之间通信的原因,可以正常更新其他POD的IP信息,但是自己重新后,无法更新自己的IP。(如果这个问题无法解决,感觉k8s部署redis就完全失去了意义)
  2. 提供nodeport的service,集群外部网络也不能访问redis集群,貌似是redis cluster模式会重定向slot所在的pod节点的内部IP,导致集群外访问不了。(我的理解是,一般情况,kube-proxy代理使用iptables会修改成endpoint中对应的ip和端口,让请求数据包发送的目标地址。但现在的情况不是这样,好像是给你新的ip地址,让客户端自己去访问,而不是帮你访问)
霞映澄塘 2022-03-11 05:29:15

回复
@活灬在当灬下 : 你配置成服务名称就行:bowtie:

执手闯天涯 2022-03-11 05:29:15

关键nodes.conf里使用的是IP啊

剑心龙吟 2022-03-11 05:29:11

回复
@_snake_ : redis-cli或者redis-trib工具,都只能支持ip来初始化集群吧,你是怎么操作的?

女中豪杰 2022-03-11 05:29:09

回复
@活灬在当灬下 : svc的ip不变

断爱 2022-03-11 05:29:07

这种就不能用ip了,应该用servicename(类似于一长串 域名地址,比如:xxxx.redis.cn ) 的形式访问了吧。

拥有 2022-03-11 05:29:07

redis地址采用svc.namespace:port方式即可

断爱 2022-03-11 05:29:06

用的是headless,主要是nodes.conf里面 存的是 pod的IP,怎么解决啊

情绪失控 2022-03-11 05:29:05

使用headless发布服务,使用pod的域名进行连接

只为守护你 2022-03-11 05:29:02

回复
邮箱私信发给你了,感谢:pray:

坚持沉默 2022-03-11 05:29:02

回复
@活灬在当灬下 : 这回复里面不能提交附件啊,好几个文件。

旧伤慢歌 2022-03-11 05:29:00

回复
求一份邮箱 zhuchance@126.com

离不开的别离 2022-03-11 05:29:00

回复
@活灬在当灬下 : https://gitee.com/overroot/redis-cluster-on-k8s 刚建立了一个git库,你试试吧。

夜无邪 2022-03-11 05:28:38

回复
@潇洒北冥鱼 :https://gitee.com/overroot/redis-cluster-on-k8s 在这个库里面

初见你 2022-03-11 05:28:15

使用update-node.sh的方案,也不行。

毁梦 2022-03-11 05:25:59

是用的这个但是不行啊。

为你鎻心 2022-03-11 05:25:40

回复
@活灬在当灬下 : 使用helm chart没有,参考这个https://github.com/helm/charts/tree/master/stable/redis

最偏执的依靠 2022-03-11 05:17:03

回复
@活灬在当灬下 : 肯定能解决的,不然那些大厂的redis集群是怎么上云的

心舞飞扬 2022-03-11 05:13:49

回复
@活灬在当灬下 : 你把你的chart放到github上或者gitee上,我们一起来看下

羁拥 2022-03-11 05:10:10

使用statefuleset

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文