gpt4 book ai didi

kubernetes - 在Kubernetes中创建redis sentinel集群,redis master无法获取slave origin IP

转载 作者:行者123 更新时间:2023-12-03 19:31:33 25 4
gpt4 key购买 nike

我使用 K8s 示例在 Kubernetes 上创建了一个可靠、可扩展的 Redis。
https://github.com/kubernetes/kubernetes/tree/master/examples/redis

Redis master需要获取slave的源IP并注册到sentinel。当 master 失败时,Sentinel 将用于切换 master。

但是我的docker启动时没有标志iptables=false(它会创建一个类似SNAT的iptables),所以redis slave的源IP会是SNAT,master会得到flannel0的IP,比如172.16.103.0。

我还将法兰绒网络添加到节点之间的容器连接中。

所以问题是“有什么方法可以在不删除 iptables 标志的情况下获取源 IP,或者另一种创建 Reliable redis 集群的方法。”

最佳答案

编辑:我已经想出了标志的神奇组合来让它工作。

1) 运行 stop docker & bootstrap docker 进程

systemctl stop docker && pkill -f "docker-bootstrap" && sleep 10  

2)删除iptables规则:
iptables -F && iptables -t nat -F  

3) 使用 ip-masq=false 选项运行您的 docker-daemon
4) 使用 ip-masq=true 选项运行您的法兰绒

对我来说,这使得所有三个 pod->pod、pod->ext 和 ext->service->pod 都能完美地工作。

希望这对你们其他人有用!

(保留描述症状的初始 react )

我对指南有同样的问题。从站复制得很好,但主站无法正确检查从站状态,因为连接来自点零 ip。
Proto Recv-Q Send-Q Local Address           Foreign Address         State      

从主站角度的示例从站->主站连接(显示从站的错误 IP):
tcp   0      0 redis-master:6379       10.1.37.0:51674         ESTABLISHED

从从站角度的示例从站->主站连接(显示主站的正确 ip):
tcp   0      0 redis-03fdy:51674       10.1.90.2:6379          ESTABLISHED

以下是来自 ps 的 redis 服务器命令。

掌握:
root   12  0.1  0.2  26876  2352 ?   Sl   10:42   0:02 redis-server 10.1.90.2:6379

奴隶:
root   18  0.1  0.2  26876  2300 ?   Sl   10:48   0:00 redis-server 10.1.37.3:6379

关于kubernetes - 在Kubernetes中创建redis sentinel集群,redis master无法获取slave origin IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com