我的设置有一个K8S Redis群集,该群集上有8个节点和32个Pod,顶部是负载均衡器服务。
我正在使用Redis群集客户端通过负载平衡器的外部IP访问此群集。但是,在处理查询时,作为Redis群集重定向(MOVED / ASK)的一部分,群集客户端会接收32个Pod的内部IP地址,客户端内部无法连接到该Pod。
例如,我提供了负载均衡器的IP地址(35.245.51.198:6379),但是Redis集群客户端会抛出类似- 引起原因:redis.clients.jedis.exceptions.JedisConnectionException:无法连接到主机10.32.7.2:6379,它是内部Pod IP。
任何有关如何处理这种情况的想法将不胜感激。
谢谢。
答案 0 :(得分:0)
如果您在GKE上运行,则可以使用IP masquerade agent对Pod IP进行NAT:
在群集中使用伪装的IP可以防止单个Pod IP地址暴露于本地链路范围(169.254.0.0/16)和其他任意IP范围之外的流量,从而提高其安全性
您的问题特别是,广告连播范围位于10.0.0.0/8
上,默认情况下为non-masquerade CIDR。
您可以使用ConfigMap将其更改为伪装,以使其选择节点的外部IP作为源地址。
或者,您可以change the pod range in your cluster进行任何被掩盖的操作。