我有一个带有nginx-ingress控制器的KOPS集群,该控制器使用经典的负载均衡器。外部应用需要将IP列入许可白名单。为此,我创建了一个网络负载平衡器,并将应用程序置于其后。我尝试将其与网络负载平衡器IP连接,但它再次无法授权。我登录到Pod,并使用此命令检查了我的公共IP
挖+短myip.opendns.com @ resolver1.opendns.com
这给了我一个完全不同的公共IP,它与我拥有的任何负载均衡器都没有关系。我将该IP列入了白名单,并且有效。进行更多的挖掘后,我发现在一个节点上运行的Pod具有相同的公共IP,而在不同节点上运行的所有Pod具有相似的公共IP。首先这是怎么发生的?以及当kubernetes使用我什至找不到它的公共IP地址时,我应该如何将静态IP列入白名单?
答案 0 :(得分:2)
当您的POD位于AWS中时,它们位于EC2实例上。来自这些EC2实例之外的流量将通过Internet网关或NAT网关进行路由。
因此,如果您有专用群集,则意味着所有实例都具有专用IP,并且该群集(荚)外部的流量正在通过NAT网关运行,因此“另一端”可以看到NAT网关的公用IP地址。
如果您具有公共群集,则意味着所有实例都有公共IP地址,并且该群集(荚)外部的流量正在通过Internet网关运行,因此“另一端”可以看到特定实例的公共IP地址。