首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redis-kubernetes上的集群:连接超时

redis-kubernetes上的集群:连接超时
EN

Stack Overflow用户
提问于 2020-05-24 10:24:56
回答 1查看 2.4K关注 0票数 1

我合并/遵循了下列手册,以便在kubernetes (GCP)上创建一个redis集群:

我已经创建了3个节点,每个节点上有2个豆荚。问题是:当我从kubernetes集群外部(通过负载均衡器外部ip)连接到redis集群时,会得到连接超时。

代码语言:javascript
复制
$ redis-cli -h external_ip_lb -p 6379 -c

external_ip_lb:6379> set foo bar
-> Redirected to slot [12182] located at interal_ip_node:6379
Could not connect to Redis at interal_ip_node:6379: Operation timed out

当我进入正在运行的容器的shell并在那里执行redis-cli命令时,它就工作了。

代码语言:javascript
复制
$ kubectl exec -it redis-cluster-0 -- redis-cli -c

127.0.0.1:6379> set foo bar
-> Redirected to slot [12182] located at internal_ip_node:6379
OK
internal_ip_node:6379> get foo
"bar"

我还尝试设置集群IP服务,并对本地机器端口7000执行端口设置,这与外部ip方法的错误相同。

代码语言:javascript
复制
$ kubectl port-foward pods/redis-cluster-0 7000:6379

有没有人知道什么可能是错的?显然,我的本地机器不是kubernetes集群的一部分,因此与其他节点的内部IP的连接失败了。

编辑: kubectl的输出描述svc redis-集群-lb

代码语言:javascript
复制
Name:                     redis-cluster-lb
Namespace:                default
Labels:                   <none>
Annotations:              kubectl.kubernetes.io/last-applied-configuration:
                            {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"redis-cluster-lb","namespace":"default"},"spec":{"ports":[{"port"...
Selector:                 app=redis-cluster
Type:                     LoadBalancer
IP:                       internal_ip_lb
LoadBalancer Ingress:     external_ip_lb
Port:                     <unset>  6379/TCP
TargetPort:               6379/TCP
NodePort:                 <unset>  30631/TCP
Endpoints:                internal_ip_node_1:6379,internal_ip_node_2:6379,internal_ip_node_3:6379 + 3 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

我可以打开外部负载均衡器的IP。

EN

回答 1

Stack Overflow用户

发布于 2020-05-25 07:50:18

我不是Redis专家,但在Redis文件中你可以读到:

由于群集节点无法代理请求,因此可以使用重定向错误将客户端重定向到其他节点。

这就是为什么在LB后面的redis集群存在这个问题,这也是它(很可能)无法工作的原因。

您可能需要使用在红星团簇集群内部运行的代理(例如官方的k8s ),它可以到达redis集群的所有内部IP并处理重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61984561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档