Azure aks节点停止到特定ip的出口流量



我们有一个托管在azure aks-kubernetes集群上的应用程序。它基本上是一个web应用程序,它使用java后端,并将nginx容器设置为反向代理来引导http流量。大多数流量被路由到后端服务,但我们将几个端点引导回应用程序的本地实例(使用公共域(。

这个设置在相当稳定的流量负载下运行了大约一周,然后突然停止了将流量代理到我们的预处理资源。我们最初认为有人更改了防火墙设置,但进一步的测试表明,问题仅限于托管nginx代理的单个节点。

我能够ssh进入节点,并尝试使用公共http地址访问我们的on-prem服务器失败。然而,我可以访问互联网上的任何其他网站,包括我们在其他ip地址上托管的网站。如果我ssh到另一个节点,我可以毫无问题地访问我们的预托管站点。我们的节点似乎正在阻止或被阻止访问我们的网站,但我们找不到任何负责的机制。目前尚未对防火墙或配置进行任何更改。Azure aks文档表示,http流量出口没有默认限制。有人遇到这个问题吗?

以下是我们的nginx配置中的一个块,它将请求代理到我们的本地实例:

location /civix/content/oic {
proxy_pass $on_prem_site;
proxy_set_header Host $server_name;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_intercept_errors on;
}

由于您可以从行为不端的节点连接到其他站点,我假设这不是解析DNS名称的问题,并且在成功查找DNS后,您根本无法连接到预处理应用程序。有关无法访问prem应用程序的任何其他详细信息都将有所帮助。

要获得即时反馈,请尝试关闭nginx中的proxy_intercept_errors设置,看看这是否能为您提供更多有用的信息。

检查预处理应用程序是否限制/阻止与故障节点出口相关的IP地址。如果您没有访问on-prem应用程序的权限,请尝试将ngingx代理服务移动到一个新节点(使用节点亲和性来针对一个"好"节点-https://learn.microsoft.com/en-us/azure/aks/operator-best-practices-advanced-scheduler#control-使用节点选择器和亲和性的pod调度(。

流量很可能会再次开始流动,这将在你解决prem应用程序一侧的阻塞问题时验证这一理论。

最新更新