为给定网络创建单个出站IP


12

我正在尝试确定在GCP中为出站流量分配单个外部IP地址的最佳方法。我的用例:我需要向第三方提供静态IP,以便他们可以将其列入白名单,以便我的实例能够访问其API。因为将来我可能会添加或减去GCE实例,所以我不想给它们提供多个可能会更改的静态IP。

我在这里找到了类似的问题但不确定是否可以解决我的用例。

我已经建立了标准的GCP网络;没有VPN,所有VM都有唯一的外部IP。我实际上喜欢这种方式,因为我需要能够SSH到VM。但是从虚拟机到互联网,我希望流量似乎全部来自单个IP。我想到并且文档提示的直接想法是创建一个NAT实例,然后通过该实例路由出站流量。这种方法的几个问题:

  1. 我必须仅出于NAT的目的设置并维护一个盒子
  2. 不是医管局;如果该实例或可用区消失,我的其他实例将无法将流量路由到外部
  3. 如果将来我不得不重新创建配置,这似乎不太可重复。

具体来说,我正在为该项目使用GKE / Kubernetes。是否有实现此用例的最佳实践,即HA,低维护且可重复?


我相信对您来说最好的选择是设置VPN,这也会对使用GKE有所帮助。例如:serverfault.com/questions/750389/gke-pod-connecting-via-vpn,它具有成本效益。
乔治

@George我认为VPN不能解决这个问题,因为我无法控制另一端。在这种情况下,我不会与第三方建立VPN。我需要通过互联网路由流量。
rob-cng

1
因此,拥有NAT网关应该做到这一点,但这将导致单点故障。同样想到的一件事是,为您的实例使用静态IP,让另一方将其列入白名单。如果您希望删除任何实例,该IP仍将保留,您可以将其附加到新创建的实例上。只要使用IP(附加到实例),它都是免费的。
乔治

是的,我认为在GCP与NAT作为与AWS类似的服务推出之前,我们将不得不采用这种解决方法。谢谢
rob-cng 16/09/22

1
您曾经能够解决此问题吗?如果是这样,请考虑发布一个自我解答,以便社区受益
Faizan

Answers:



3

Google Cloud现在提供托管的NAT网关服务-Cloud NAT

该网关可以与GKE集群一起使用,该集群为其中的所有Pod提供稳定的公共出口IP,从而使它们可以被第三方服务提供商列入白名单。

使用云NAT与GKE的示例实现在这里提供- https://cloud.google.com/nat/docs/gke-example

另外,由于这是基于NAT的受管软件,因此带宽和可用性不会受到影响。

不过,这仍然需要堡垒主机才能进入您的实例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.