首页 > 解决方案 > 使用带有 Traefik Ingress for MultiSite 的 Azure 应用程序网关出现随机 502 Bad gateway 错误

问题描述

我创建了一个 Azure 应用程序网关 WAF V2 层,它连接到 AKS 中的 Traefik 入口控制器,并将入口转发流量到 AKS 中的应用程序。指向 Treafik 入口私有 IP 的后端池点以及 Http 设置和侦听器已用于多站点。我也坐过测试成功的 HealthProbe。超时已增加到 180 秒。

向应用程序主机发送 get 请求可以正常工作几分钟,然后它开始在几秒钟内给出 502 bad gateway 响应,然后开始给出 200 ok 响应。所以你可以看到它并不稳定。

它给出 502 错误的那一刻,Backend-health 和 HealthProbe 工作正常。日志中没有太多信息,您可以在此处查看:

应用程序网关 (WAF) -> Traefik 入口控制器 -> 服务

Azure诊断 | 其中 ResourceProvider == "MICROSOFT.NETWORK" 和 Category 有 "ApplicationGatewayAccessLog" 和 httpStatus_d == 502

TimeGenerated [UTC]
2021-10-08T08:05:21.533Z
ResourceId
/SUBSCRIPTIONS/.../RESOURCEGROUPS/..../PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/MyAPPGATEWAY
Category
ApplicationGatewayAccessLog
ResourceGroup
RG-APP-SANDBOX
SubscriptionId
......
ResourceProvider
MICROSOFT.NETWORK
Resource
MyAPPGATEWAY
ResourceType
APPLICATIONGATEWAYS
OperationName
ApplicationGatewayAccess
requestUri_s
/
userAgent_s
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
ruleName_s
vnet-sandbox-rqrt-https
httpMethod_s
GET
instanceId_s
appgw_0
httpVersion_s
HTTP/1.1
clientIP_s
......
host_s
hellopython-aks.mydomain.io
sslEnabled_s
on
clientPort_d
52260
httpStatus_d
502
receivedBytes_d
495
sentBytes_d
366
timeTaken_d
0.004
SourceSystem
Azure
timeStamp_t [UTC]
2021-10-08T08:04:42Z
transactionId_g
.....
listenerName_s
vnet-sandbox-listener-https
backendPoolName_s
vnet-sandbox-bp
backendSettingName_s
vnet-sandbox-hts-https
originalRequestUriWithArgs_s
/
sslCipher_s
ECDHE-RSA-.....
sslProtocol_s
TLSv1.2
sslClientVerify_s
NONE
serverRouted_s
MyIngressPrivateIP:443
serverStatus_s
502
serverResponseLatency_s
0.004
originalHost_s
hellopython-aks.mydomain.io
Type
AzureDiagnostics
_ResourceId
/subscriptions/...../resourcegroups/...../providers/microsoft.network/applicationgateways/myappgateway

有谁知道为什么会发生这种情况以及我该如何解决?

标签: kubernetes-ingressazure-aksazure-application-gateway

解决方案


推荐阅读