IBM 云上的 Kubernetes 集群上有一个 Java 应用程序,需要向第三方供应商的应用程序发出出站 SOAP 调用。此供应商的服务器受 IP 白名单保护。无论我做什么,我似乎都找不到正确的 IP 供他们列入白名单。我知道这一点,因为即使我可以点击谷歌或雅虎,但每当我尝试连接到供应商的 URL 时,连接都会超时。
- 我卷曲https://api.ipify.org并将 IP 提供给供应商。问题是,当应用程序重新部署时,IP 会发生变化。对于每天重新部署多次的应用程序来说,这不是一个可行的解决方案。
- 我已经设置了公共网络节点平衡器,并将 NLB 的公共 IP 提供给供应商。没有用。
- 我已将集群所运行的机器的公共 IP 列入白名单。没有变化。
据我所知,该集群位于 NAT 后面,并连接到 VLAN。我如何找到适合它们列入白名单的 IP?
答案1
我不熟悉 IBM Cloud 以及他们如何进行 IP 寻址,但如果类似于 Azure 或 AWS,您的出站 IP 地址可能来自多个 IP 地址。在 Azure 中,通过查看属性可以清楚地了解您所使用的服务。它会列出所有可能的出站 IP 地址。我假设 IBM Cloud 上也有类似的东西,或者如果没有,他们应该能够提供该信息。
答案2
经过与 IBM 云支持几天的反复沟通后,他们给了我这个有效的答案。
- 获取工作节点的 IP kubectl get nodes -o wide
- 列出 IBM Cloud 帐户中的所有子网 ibmcloud sl subnet list |grep ADDITIONAL_PRIMARY|grep PUBLIC
- 现在将工作 IP 与您在第二个命令中获得的子网地址进行匹配,并从此详细信息中获取其详细的 ibmcloud sl 子网详细信息,记下“标识符”的值,您可以提供此标识符以在供应商端列入白名单。