如何连接到Kubernetes集群中的redis-ha集群?

时间:2019-02-21 15:54:27

标签: redis kubernetes containers cluster-computing kube-dns

因此,我最近在基于G-Cloud的kubernetes集群上安装了稳定/可重复使用的集群(https://github.com/helm/charts/tree/master/stable/redis-ha)。群集被安装为没有ClusterIP的“无头服务”。有3个Pod组成此群集,其中一个Pod被选为Master。

集群已安装成功,可以从本地PC上通过redis-cli访问(在使用kubectl端口转发之后)。

集群安装的输出为我提供了集群的DNS名称。因为该服务是无头的,所以我正在使用以下DNS名称

port_name.port_protocol.svc.namespace.svc.cluster.local(由文档指定)

尝试连接时出现以下错误:

  

“ redis.exceptions.ConnectionError:错误-2连接到   port_name.port_protocol.svc.namespace.svc.cluster.local:6379。名称不   解决。”

这不起作用。

不确定在这里做什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

DNS似乎不正确。应该采用以下格式

select
  x2.val
from xmltable('/fields'
              passing xmltype('
                        <fields>
                          <field key="2" val="5" type="D"/>
                          <![CDATA[<field key="3" val="SkpKSko=" type="T">
                                   </field>]]>
                        </fields>
                      ')
              columns cdata varchar2(2048) path 'text()') as x1,
     xmltable('/field[@key=3]'
              passing xmltype(x1.cdata)
              columns val varchar2(30) path '@val') as x2;

您也可以使用pod dns,如下所示

VAL
--------
SkpKSko=

假设服务端口与容器端口相同,即6379

答案 1 :(得分:0)

不确定这是否仍然有意义。只需增强与其他图表类似的图表即可支持NodePort,例如rabbitmq-ha,以便要从群集外部访问redis时可以使用任何节点ip和已配置的节点端口。