负载均衡器PublicIPReferencedByMultipleIPConfigs重启时出错

时间:2018-04-24 05:33:01

标签: azure-container-service

Use a static IP address with the Azure Container Service (AKS) load balancer文档开始,我创建了一个静态IP并将其分配给负载均衡器。这在初始运行时工作正常,但现在我收到以下错误,我的负载均衡器的外部IP被卡住<pending>(个人信息被忽略):

  

无法确保服务默认/ [...]的负载均衡器:network.LoadBalancersClient#CreateOrUpdate:响应请求失败:StatusCode = 400 - 原始错误:autorest / azure:服务返回错误。 Status = 400 Code =“PublicIPReferencedByMultipleIPConfigs”Message =“Public ip address /subscriptions/[...]/providers/Microsoft.Network/publicIPAddresses/[PublicIPName]由资源中的多个ipconfigs引用

据我所知,多个配置没有引用它 - 只是我正在尝试运行的负载均衡器服务。从我的loadBalancerIP文件中删除yaml选项允许这样做但我不认为服务器地址是静态的 - 这对于尝试与此容器通信的应用程序来说并不理想

这应该发生吗?有没有办法配置它,以便在容器重新启动后可以重用相同的IP?

2 个答案:

答案 0 :(得分:0)

您是否使用相同的IP进行不同的服务?

检查一下。 https://github.com/Azure/ACS/issues/102

答案 1 :(得分:0)

看来这个问题似乎仍然存在,对于任何陷入该问题的人来说,Azure负载平衡器资源本身似乎正在使用第一个配置的静态IP地址。

GitHub issue response

  

创建的第一个公共IP地址用于出口流量

Microsoft Docs

  

一旦创建了类型为LoadBalancer的Kubernetes服务,便会将代理节点添加到Azure负载平衡器池中。对于出站流,Azure会将其转换为负载平衡器上配置的第一个公共IP地址。

据我所知,一旦您配置了IP地址并配置了AKS负载平衡器以使用该IP地址,该IP就会被Azure中配置的负载平衡器资源获取。我最好的猜测是,当Kubernetes尝试使用相同的IP地址配置一个新的负载平衡器时,如果以前的Azure负载平衡器仍然存在,则IP配置将因为仍在使用而失败。

解决方法是提供一个额外的静态IP(一个专门用于Azure负载平衡器资源,一个用于实际AKS负载平衡器服务)以避免冲突。显然这并不理想,但可以解决问题...