我正在尝试使用 Google Cloud Platform 中的嵌套虚拟化来托管多个 Web 应用程序。但我很困惑,我是否可以全局访问这些嵌套 VM。我尝试用谷歌搜索,但没有找到任何好的答案。谢谢。
答案1
将数据包直接路由到嵌套虚拟机不是 GCE 的标准功能。如果您尝试以“创新”方式使用现有功能来构建它,则您可能会尝试为每个嵌套虚拟机分配单独的外部 IP 地址,从而达到 IP 地址配额。
不同的方法
我建议您采用其他方法,而不是尝试将数据包直接路由到嵌套的虚拟机。
在可直接分配外部 IP 地址的中间虚拟机上,您可以运行反向代理来支持 HTTP 和 HTTPS。此反向代理将使用客户端发送的主机名将请求路由到正确的嵌套虚拟机。
如果嵌套虚拟机需要建立传出连接,您可以配置中间虚拟机以对来自嵌套虚拟机的连接进行 NAT。
关于可靠性
如果您尝试构建高度可靠的服务,则应该预料到个别中间虚拟机偶尔会不可用。因此,您应该启动多个这样的中间虚拟机以实现冗余,并使用 GCE 提供的 HTTP 负载平衡或网络负载平衡在这些中间虚拟机之间平衡流量。
请记住,GCE 负载平衡所做的健康检查不会了解嵌套的虚拟机,因此即使其中一个嵌套虚拟机不健康而其余虚拟机也不健康,也会将每个中间虚拟机视为健康或不健康。
这意味着您的代理可以接收少量针对当前不健康的嵌套虚拟机的请求,并且您需要实施自己的健康检查,以便可以将此类请求路由到另一个中间虚拟机。