gpt4 book ai didi

docker - Kubernetes "Waiting for the cluster to join..."搭建Redis集群时ip错误

转载 作者:IT王子 更新时间:2023-10-29 06:06:09 28 4
gpt4 key购买 nike

我正在尝试在 Azure 上使用 Kubernetes 构建一个 Redis 集群。我在运行不同的样本时遇到了完全相同的问题:sanderp.nl/running-redis-cluster-on-kubernetesgithub.com/zuxqoj/kubernetes-redis-cluster

一切顺利,直到我尝试使用 redis-trib 命令让不同的节点加入集群。那时我遇到了臭名昭著的无限“正在等待集群加入....”消息。

为了查看发生了什么,我将 redis pod 的日志级别设置为 debug 级别。然后我注意到 pod 在一起通信时似乎没有宣布正确的 ip。事实上,ip 的最后一个字节似乎被零替换。假设 pod1 的 IP 地址为 10.1.34.9,我将在 pod2 日志中看到:

已接受 clusternode 10.1.34.0:someport

因此 pod 似乎无法进行通信,加入集群的过程永远不会结束。

现在,如果在运行 redis-trib 之前,我通过在每个 pod 上运行来强制执行 cluster-announce-ip:

redis-cli -h mypod-ip config set cluster-announce-ip mypod-ip

redis-trib 命令随后成功完成,集群启动并运行。

但这不是一个可行的解决方案,因为如果 pod 关闭并恢复,它可能已经更改了 ip,当它尝试加入集群时我将面临同样的问题。

请注意,我在使用 minikube 运行示例时没有遇到任何问题。

我正在为 kubernetes 网络使用法兰绒。问题可能来自 flannel 的错误配置吗?有没有人遇到同样的问题?

最佳答案

您可以使用 statefulsets用于部署您的副本,因此您的 pod 将始终具有唯一的名称。

此外,您将能够使用服务 DNS 名称作为主机。请参阅此官方文档 DNS for Services and Pods .

你分享的第二个例子,有另一部分是 redis cluster using statefulsets .试试看。

关于docker - Kubernetes "Waiting for the cluster to join..."搭建Redis集群时ip错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49985895/

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