redis - Kubernetes集群中如何连接redis-ha集群?
问题描述
所以我最近在基于 G-Cloud 的 kubernetes 集群上安装了 stable/redis-ha 集群(https://github.com/helm/charts/tree/master/stable/redis-ha )。集群安装为没有 ClusterIP 的“无头服务”。有 3 个 pod 组成这个集群,其中一个被选为 master。
集群安装没有问题,可以通过我本地电脑上的 redis-cli 访问(在使用 kubectl 进行端口转发之后)。
集群安装的输出为我提供了集群的 DNS 名称。因为该服务是无头的,所以我使用以下 DNS 名称
port_name.port_protocol.svc.namespace.svc.cluster.local(由文档指定)
尝试连接时出现以下错误:
“redis.exceptions.ConnectionError:连接到 port_name.port_protocol.svc.namespace.svc.cluster.local 时出现错误 -2:6379。名称无法解析。”
这是行不通的。
不知道在这里做什么。任何帮助将不胜感激。
解决方案
DNS 似乎不正确。它应该采用以下格式
<redis-service-name>.<namespace>.svc.cluster.local:6379
say, redis service name is redis and namespace is default then it should be
redis.default.svc.cluster.local:6379
您也可以使用 pod dns,如下所示
<redis-pod-name>.<redis-service-name>.<namespace>.svc.cluster.local:6379
say, redis pod name is redis-0 and redis service name is redis and namespace is default then it should be
redis-0.redis.default.svc.cluster.local:6379
假设服务端口与容器端口相同,即 6379
推荐阅读
- python - Pandas:仅包含聚合行的 DataFrame
- python - 动态泛型类生成
- javascript - 为什么 $.getJSON 返回带有有效 JSON 文件的 ParseError?
- wsdl - WSDL 找不到默认端点
- html - 在 flex 列中重新排列 div?
- cpanel - 图片大小限制问题?面板设置?
- verilog - Adder 的行为模块,用于添加两个 64 位输入并进位输入。如何将结转分配给总和的 MSB?
- awk - Gawk 错误消息在调用行失败
- assembly - emu8086 虚拟机:在 LED 显示中输出温度计结果
- css - 如何使用material-ui使reactjs网站响应