我的应用程序在访问第 3 方 API 时使用什么 IP 地址?
我正在使用 GKE 来管理我的应用程序,并且该应用程序正在尝试使用第 3 方 API,并且第 3 方 API 将尝试访问其 API 的 IP 地址列入白名单,我如何找到我的应用程序在使用第 3 方 API 时使用的 IP 地址派对 API?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Pod 使用的 IP 地址取决于服务类型和其他一些因素,这些因素在 此文档页面
还有 IP Masquerade 代理,它允许您使用节点的 IP 地址而不是 POD 的 IP 与其他节点上的服务进行通信,记录在此处
现在来解决您的实际问题,您将必须使用绑定到静态 IP 的 NAT 网关,以便集群中的所有传出流量都将使用相同的 IP - 无论它源自哪个 POD/节点。我找到了一些指南,但 YMMV 基于您所在的云或底层基础设施
您应该搜索“Kubernetes IP Masquerade NAT”以获取特定于您的云的说明!
The IP address used by the Pod depends on type of service and a few more factors, which are very well documented in this documentation page
There is also IP Masquerade agent which allows you to use Node's IP address to talk to services on other nodes instead of IP of POD, documented here
Now coming to solution to your actual problem, you will have to use a NAT Gateway tied to a static IP so that all the outgoing traffic from your cluster will use same IP - no matter which POD/Node it originates from. I found a few guide but YMMV based on which cloud or underlying infrastructure you are on
You should search for "Kubernetes IP Masquerade NAT " for instructions specific to your cloud!
如果您使用的是 GKE 公共集群,它将是 POD 主要运行所在的节点 IP,但在某些情况下,它可能会有所不同,例如私有集群和使用 NAT 实例。
如果您的集群是公共集群,并且集群中有多个节点,并且不同的 pod 提供不同的 IP,这意味着 POD 使用节点的 IP 作为出站。
您可以执行 POD 并使用 POD 内部的 curl 检查
并运行
If you are using the GKE public cluster it will the Node's IP on which POD is running mostly, however in some cases it could be different like Private cluster and using NAT instaces.
If your cluster is public and has multiple Nodes in cluster and different pod giving different IP which means POD's using Node's IP as out bound.
You can exec into POD and check using curl inside of POD
and run