Google Cloud HTTP 负载均衡器运行状况检查在没有外部 IP 的情况下失败

ime*_*esh 5 load-balancing google-cloud-platform

场景: 我有一个 Google Compute Engine 实例,它通过 HTTP 端口 80 公开一个 Web 应用程序,我可以使用外部 IP 地址直接访问它。

然后,我添加了一个带有健康检查的 HTTP 负载均衡器,之后,我可以通过负载均衡器访问 Web 应用程序,没有任何问题。

现在,如果我删除计算实例的外部 IP 地址,负载均衡器的运行状况检查开始失败。我阅读了 [1] 并添加了一个防火墙规则,以允许来自 130.211.0.0/22 和 35.191.0.0/16 范围内的地址的健康检查探测,但健康检查仍然失败。

如果我将外部 IP 地址添加回计算实例,运行状况检查将变为活动状态。我在这里需要的是删除计算实例的公共 IP 地址,只将负载均衡器 IP 地址公开给 Internet。

问题: 是否必须在 Google Cloud Compute Engine 实例上拥有外部 IP 地址才能通过 Google Cloud HTTP 负载平衡器路由流量?如果没有,我是否可以知道如何使用 HTTP 负载均衡器将 HTTP 流量路由到计算实例,而无需计算实例上的外部 IP 地址?感谢您对此的想法。

[1] https://cloud.google.com/compute/docs/load-balancing/health-checks

ime*_*esh 4

我就此事联系了 Google Cloud 支持团队,发现需要外部 IP 地址才能将 HTTP 流量从 HTTP 负载均衡器路由到 Compute Engine 实例。

这里唯一可能的解决方案可能是应用防火墙规则并根据当前设计阻止对虚拟机的直接访问。