在GCP上,对端VPC连接不可传递,Memorystore存在于自己的VPC网络中。这意味着不可能从多个VPC网络连接到Redis实例。只有一个授权的网络才能访问。
这个图说明了VPC-2无法连接到VPC-1的Redis实例:
[Redis]-[VPC-1]-[VPC-2]
到目前为止,我发现从多个VPC网络连接的唯一建议的解决方案是托管一个Redis代理(胡桃夹子)但这感觉像是未来要做很多工作和潜在的维护。
是否有GCP提供的托管服务可以做到这一点?
我最近连接了一个私有的GKE集群到云构建遵循本文档,使用路由器和隧道,是否有可能使用云路由器和VPN隧道来代理连接?
另一个解决方案,使您可以管理同一项目中的对等vpc:
如你所知,对等VPC是不可传递的,在这种情况下意味着你的VPC-2不知道VPC-1和Redis VPC之间的连接。
您可以使用VPC-1作为传输网络,通过在VPC-1和VPC-2之间导入和导出路由,或者对于更受管理的解决方案,您可以在VPC-1上使用Cloud VPN。如果你有多个需要连接到Redis的vpc,我建议你考虑使用Cloud VPN。
下面是这个架构如何工作的一个例子在这个示例中,查看network-b作为你的VPC-1和网络作为你的Redis VPC和网络c作为你的VPC-2.
如果你只有几个VPC需要连接到Redis VPC,你也可以考虑从VPC-1导出和导入自定义路由到所有需要访问Redis的对等VPC。
对于Redis,请注意,只有来自RFC1918的ip被允许连接,所以你需要连接到Redis的ip需要在这些范围内
10.0.0.0 – 10.255.255.255 (10/8 prefix)
172.16.0.0 – 172.31.255.255 (172.16/12 prefix)
192.168.0.0 – 192.168.255.255 (192.168/16 prefix)