【问题标题】:How to connect to redis deployed on Google Cloud?如何连接到部署在 Google Cloud 上的 redis?
【发布时间】:2015-03-12 11:11:44
【问题描述】:

案例基础: 在 Google Cloud 中部署了一个 redis 实例(单实例)。使用基于 NodeJS 的服务器和 redis-sentinel 库连接到节点。原因是谷歌云上基于哨兵的节点管理。

我可以通过仪表板/控制台的 SSH 登录来登录 redis 实例。使用redis-cli连接到redis的本地运行服务,可以创建/编辑各种数据集。

问题:当我尝试通过本地主机或部署在同一项目域中的任何其他计算实例访问它时。我正在使用公共 ip 和端口 26379/6379 进行连接,但连接被拒绝。

可能的原因:

  • 网络访问策略。

【问题讨论】:

    标签: node.js google-app-engine redis redis-sentinel


    【解决方案1】:

    通常,Google 的点击部署服务不会自动添加网络/防火墙规则和政策 - 您必须自己做。

    显然,您在打开端口时应该小心,只允许来自您的 Compute Engine 网络的访问。

    【讨论】:

    • 我使用点击部署的方式部署了一个redis集群。它在那里创建了三个虚拟机。现在,当我从节点 js 连接到一个实例时,它可以工作。但是当我尝试将它作为集群连接时,它会抛出一个错误 [错误:无法刷新插槽缓存。] github.com/luin/ioredis#cluster 我也尝试过标记代码 github.com/luin/ioredis#sentinel 我的虚拟机 prntscr.com/860m65
    【解决方案2】:

    当您开始使用 Google Cloud 时,它们会将您的整个基础架构保存在私有云中(即使跨区域),除非您启动需要与外部云通信并因此需要临时 IP 的实例,否则会分配私有 IP。私有云中的所有实例都可以使用私有 IP 相互访问。这是系统防火墙规则中默认设置的,无需设置。

    最佳做法是为您的 GUI/API 的公共访问提供单一节点点,并通过内部 IP 绑定其余部分。在私有云中节省时间、减少延迟并确保安全。

    我的问题肯定是@Tom 指定的防火墙规则。您可以修改策略以允许连接。但我会建议任何人使用内部 IP 进行不同实例之间的连接。

    【讨论】:

    • 授权所需的密码在哪里。我在仪表板上看不到密码。
    • @RanganathanSwamy 没有。您需要自行管理授权。
    【解决方案3】:

    上周努力为自己设置了这个,想分享我在这里学到的经验教训。希望这会有所帮助,即使这已经晚了将近一年:)

    我使用的是 here(Redis 的 Redis,而不是 Bitnami)发现的点击部署方案,它允许奇数数量的 VM 充当集群。

    创建部署后,我必须在每个 VM 上执行以下手动步骤,以使其可用作哨兵集群:

    • redis-cli 并运行 CONFIG SET protected-mode noCONFIG REWRITE。这会将 redis 服务器暴露给外部连接。

    • sudo vi /etc/redis/sentinel.conf 并添加protected-mode no 这样哨兵也可以相互连接

    • sudo /etc/init.d/redis-sentinel start启动哨兵服务

    • redis-cli -p 26379 并通过运行 sentinel ckquorum master 检查哨兵状态。预计会看到“OK X usable Sentinels”,X 是您在集群中拥有的虚拟机数量。

    剩菜:

    • redis-sentinel 不作为服务运行。需要添加到/etc/rc?.d 旁边redis-server
    • /etc/init.d/redis-{server,sentinel} 不是作为适当的 Debian 服务编写的,因此它们一旦被杀死就不会重生。

    总体上对这个产品非常失望,期待更完整的设置。

    【讨论】:

    • 您不只是在生产环境中启动/停止服务,而是重新启动整个机器,并且服务应该在重新启动时启动。我想这就是为什么你看不到“正确的”服务文件的原因。
    • 不必vi进入每台机器,只需echo "protected-mode no" | sudo tee -a /etc/redis/sentinel.conf
    猜你喜欢
    • 2018-11-03
    • 1970-01-01
    • 2018-11-30
    • 2021-11-10
    • 2021-03-22
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多