如何解决使用GCP Cloud VPN将GKE集群Pod IP地址隐藏在站点到站点VPN用例的单个IP地址后面
当前,我正在开发将nodejs应用程序部署到Google Cloud Platform中的GKE集群。此应用程序将需要调用只能通过VPN访问的3rd Party API,因此我必须建立一个站点以将VPN站点定位到3rd Party API提供商网络。
我知道可以使用GCP Cloud VPN来实现站点到站点VPN,并且我以前有使用GCP Cloud VPN的经验。但是对我来说,问题是该第三方API仅允许我的VPC中的一个IP地址访问其网络,这是一个问题,因为GKE群集中的所有Pod都有自己的临时IP。
问题是,我如何才能使从GKE群集到第三方API的传出API调用仅来自一个IP地址,以便第三方提供商管理员可以将该单个IP地址列入白名单以访问其API? / p>
我正在考虑使用一个Linux VM作为nat路由器,以便对第三方API的API调用将首先通过此nat路由器,然后再从nat路由器传递到Cloud VPN网关。但是,当我查看VPC路由表时,我只是看不到如何实现此方法,因为在VPC路由表中,我无法将特定的网段指定为源。我只能设置目标位置和下一跳,这将影响VPC中的所有实例。
这是我的VPC的当前拓扑以供参考:
这是可以在GCP中完成的事情,还是我以错误的方式看待问题?
谢谢
解决方法
问题是,我如何才能从GKE集群向第三方API发出传出API调用
看起来像Cloud NAT可以在这里解决您的问题。
如果您在同一区域中拥有私有GKE群集和Cloud NAT,则在创建/配置Cloud NAT时,您可以允许来自该区域的流量仅通过该Cloud NAT。
这样,您整个GKE群集中只有一个呼叫者IP,并且第三方API不会对此抱怨。
第三方API将仅允许我的VPC中的一个IP地址
为此,您可以保留一个外部IP地址,并将其分配给您的Cloud NAT实例。实际上,这可以在创建Cloud NAT实例时即时完成。
有关如何创建和使用Cloud NAT的更多详细信息,请阅读其文档。使用Cloud NAT避免将您的外部IP显示给外部互联网有很多好处。
下面是一些链接:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。