【问题标题】:Connecting to redis cluster with sentinel on kubernetes使用 kubernetes 上的哨兵连接到 redis 集群
【发布时间】:2016-05-23 22:12:30
【问题描述】:

我已经使用此处的指南成功设置了受密码保护的 redis 集群:

http://kubernetes.io/v1.1/examples/redis/

我可以使用redis-cli很好地连接到哨兵,但是即使我暴露了哨兵,我也无法连接到redis主/从。

我正在使用 ruby​​ 和以下连接字符串。我做错了吗?

SENTINELS = [{host: "104.122.24.897", port: 26379}]

redis = Redis.new(url: "redis://mymaster", sentinels: SENTINELS, :role => :master, password: "longasspassword", timeout: 16)

我得到的错误是:

Error connecting to Redis on 10.64.7.33:6379 (Redis::TimeoutError) (Redis::CannotConnectError)`

【问题讨论】:

  • 奇怪的是您的错误显示的是默认端口,而不是您指定的端口。是不是没有正确监听你的配置?
  • 我认为哨兵应该只是转发给 redis 主控,对吧?出现的端口是我相信的 redis 主端口..
  • 好点。在这种情况下,您的哨兵可能配置错误?
  • 没有哨兵不转发。将它们视为查找服务。客户端必须支持哨兵查找。
  • 我认为问题在于哨兵提供的本地 IP 为 10.64.7.33 .. 我尝试使用全局 IP 公开 redis-master-slave 服务,并且可以使用我的密码连接到它。 . 但是我在尝试写东西时收到错误(error) READONLY You can't write against a read only slave.。我也无法通过 redis sentinel 连接到 master

标签: ruby redis kubernetes redis-sentinel


【解决方案1】:

我最终决定使用 helm (https://helm.sh/) 并使用 helm install redis-cluster 安装 redis-cluster。

我可以使用 kubernetes 中的 cluster_ip(不是外部 ip)连接到 redis 集群,这满足了我的安全要求。 redis sentinel 使用这种方法开箱即用。

【讨论】:

    猜你喜欢
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多