#2271·node-redis

Kubernetes LoadBalancer 在 Azure AKS 中的 Bitnami 适配上无法进行集群 - 重定向似乎没有发生

作者: xtianus79创建于 2022年9月22日更新于 2026年9月1日
标签Bugstale

Bitnami 使用 Kubernetes helm 设置的方式有点奇怪,我不得不承认。"奇怪"的部分是 LoadBalancer 集群选项。简而言之,通过负载均衡器连接到集群。由于 Kubernetes 通常比最黑暗的黑色更黑,我推测,发生的事情是您连接到一个"单一"集群主机名,然后将它们全部连接在一起。 但是这并不重要,无论是否是负载均衡器,甚至是每个集群节点的外部 IP。似乎是重定向的问题。 当我连接到负载均衡器时,它几乎按照预期工作,并且您可以通过此处的错误来看到这一点。 [2022-09-22T04:58:21.970Z] 执行 'Functions.client-test' (失败, ID=7ddacfe5-bb7d-499a-9046-d439a7813140, 持续时间=272ms) [2022-09-22T04:58:21.971Z] System.Private.CoreLib: 执行函数时发生异常: Functions.client-test。 System.Private.CoreLib: 结果: 失败 异常: MOVED 12539 <cluster pod ip 1 of 6>:6379 栈: 。 移动是它应该做的事情,但它是一个异常,而不是将其设置为主要节点,该节点是 <cluster pod ip 1 of 6> <<< 当然是模糊化的。 这是我使用的创建客户端的集群: const cluster = createClient({ url: 'Redis://[email protected]:6379' }); 您会认为您可以使用 createCluster 方法,但您不能,因为它无法连接,并且给我带来了 IP 方面的问题。 const cluster = createCluster({ rootNodes: [ { url: 'Redis://default:@.eastus.cloudapp.Azure.com:6379' } ], nodeAddressMap: { '<cluster pod ip 1 of 6>:6379': { host: 'Redis-stream-emqx.eastus.cloudapp.Azure.com', port: 6379 } } }); 不要让你的眼睛流血,但根据文档这种方式确实有意义,我试图传达的内容。 总之,似乎来自默认值时,即负载均衡器或任何服务,即 Redis 集群(即内部集群设置的集群 IP)时,重定向没有发生。 > 复制品将是主机的只读复制品。默认情况下,只暴露一个服务(当不使用外部访问模式时)。您将通过暴露的服务连接客户端,无论您是需要读取还是写入。当写操作到达复制品时,它将将客户端重定向到正确的主机节点。例如,使用 Redis-cli,您需要为 Redis-cli 提供 -c 标志,以自动跟随重定向。 这就是应该连接的方式,甚至 RedisInsight 也可以正常连接。 Redis-cli -c -h $SERVICE_IP -p 6379 -a $REDIS_PASSWORD <<< 在此情况下,Service_IP 是我的 AKS LoadBalancer

内容来源: redis/node-redis