我正在尝试确定在GCP中为出站流量分配单个外部IP地址的最佳方法。我的用例:我需要向第三方提供静态IP,以便他们可以将其列入白名单,以便我的实例能够访问其API。因为将来我可能会添加或减去GCE实例,所以我不想给它们提供多个可能会更改的静态IP。
我已经建立了标准的GCP网络;没有VPN,所有VM都有唯一的外部IP。我实际上喜欢这种方式,因为我需要能够SSH到VM。但是从虚拟机到互联网,我希望流量似乎全部来自单个IP。我想到并且文档提示的直接想法是创建一个NAT实例,然后通过该实例路由出站流量。这种方法的几个问题:
- 我必须仅出于NAT的目的设置并维护一个盒子
- 不是医管局;如果该实例或可用区消失,我的其他实例将无法将流量路由到外部
- 如果将来我不得不重新创建配置,这似乎不太可重复。
具体来说,我正在为该项目使用GKE / Kubernetes。是否有实现此用例的最佳实践,即HA,低维护且可重复?
我相信对您来说最好的选择是设置VPN,这也会对使用GKE有所帮助。例如:serverfault.com/questions/750389/gke-pod-connecting-via-vpn,它具有成本效益。
—
乔治
@George我认为VPN不能解决这个问题,因为我无法控制另一端。在这种情况下,我不会与第三方建立VPN。我需要通过互联网路由流量。
—
rob-cng
因此,拥有NAT网关应该做到这一点,但这将导致单点故障。同样想到的一件事是,为您的实例使用静态IP,让另一方将其列入白名单。如果您希望删除任何实例,该IP仍将保留,您可以将其附加到新创建的实例上。只要使用IP(附加到实例),它都是免费的。
—
乔治
是的,我认为在GCP与NAT作为与AWS类似的服务推出之前,我们将不得不采用这种解决方法。谢谢
—
rob-cng 16/09/22
您曾经能够解决此问题吗?如果是这样,请考虑发布一个自我解答,以便社区受益
—
Faizan