【问题标题】:Hide GKE cluster pods IP address behind single IP address in site to site VPN use case using GCP Cloud VPN使用 GCP Cloud VPN 在站点到站点 VPN 用例中将 GKE 集群 pod IP 地址隐藏在单个 IP 地址后面
【发布时间】:2021-01-06 16:13:01
【问题描述】:

目前,我正在开发部署到谷歌云平台 GKE 集群的 nodejs 应用程序。此应用程序需要调用只能通过 VPN 访问的第 3 方 API,因此我必须建立到第 3 方 API 提供商网络的站点到站点 VPN。

我知道站点到站点 VPN 可以使用 GCP Cloud VPN 来实施,并且我之前有使用 GCP Cloud VPN 的经验。但对我来说问题是这个第 3 方 API 将只允许来自我的 VPC 的一个 IP 地址访问他们的网络,这是一个问题,因为 GKE 集群中的所有 pod 都有自己的临时 IP。

问题是我如何才能从 GKE 集群向 3rd 方 API 发出传出 API 调用仅来自一个 IP 地址,以便第 3 方提供商管理员可以将这个 IP 地址列入白名单以访问他们的 API?

我正在考虑使用一个 Linux 虚拟机作为 nat 路由器,以便对第 3 方 API 的 API 调用将首先通过此 nat 路由器,然后从 nat 路由器到 Cloud VPN 网关。但是当我查看 VPC 路由表时,我就是看不到这种方法是如何实现的,因为在 VPC 路由表中我无法指定特定网段作为源。我只能设置目的地和下一跳,这将影响 VPC 中的所有实例。

这是我的 VPC 的当前拓扑供参考:

这是可以在 GCP 中完成的事情,还是我以错误的方式看待问题?

谢谢

【问题讨论】:

    标签: google-cloud-platform vpn nat google-cloud-vpn


    【解决方案1】:

    问题是我如何才能从 GKE 集群向第 3 方 API 发出传出 API 调用仅来自一个 IP 地址

    看来Cloud NAT 可以在这里解决您的问题。

    如果您在创建/配置 Cloud NAT 时在同一区域中拥有私有 GKE 集群和 Cloud NAT,则可以只允许来自该区域的流量通过该 Cloud NAT。

    这样,整个 GKE 集群中只有一个调用方 IP,第三方 API 不会抱怨。

    第 3 方 API 仅允许来自我的 VPC 的一个 IP 地址

    为此,您可以保留一个外部 IP 地址并将其分配给您的 Cloud NAT 实例。事实上,这可以在创建 Cloud NAT 实例时即时完成。

    有关如何创建和使用 Cloud NAT 的更多详细信息,您可以查看文档。使用 Cloud NAT 避免向外部互联网显示您的外部 IP 有很多好处。

    以下是一些链接:

    1. Using Cloud NAT
    2. Example GKE setup

    【讨论】:

      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 2017-08-17
      • 2013-01-16
      • 2015-02-27
      • 1970-01-01
      • 2012-02-05
      • 2020-11-16
      • 2016-01-29
      相关资源
      最近更新 更多