Azure AKS搭配应用网关突发404错误排查求助
AKS+Application Gateway 突发全服务404问题排查与解决
可能的问题根源
- AGIC配置同步失效:App Gateway Ingress Controller(AGIC)负责将K8s Ingress配置同步到Azure Application Gateway,若同步过程中出现异常(如Pod崩溃、权限错误、配置解析失败),会导致App Gateway的路由规则与K8s内配置不一致,引发404。
- Application Gateway配置漂移:即使AGIC同步正常,Azure后台的隐性配置变更或缓存问题可能导致路由规则、后端映射关系失效,而健康探针仅检测后端可达性,不校验路由规则正确性。
- 不合理的资源限制配置:你的Deployment中设置了
cpu: '128'、memory: 512G的极端资源限制,远超常规节点的资源容量,可能导致Pod在现有集群中虽处于Running状态,但实际资源不足无法处理请求(新集群因无其他负载暂时能运行)。
解决方案
1. 排查AGIC同步状态
- 查看AGIC Pod日志,定位同步错误:
重点关注是否有kubectl logs -n kube-system $(kubectl get pods -n kube-system -l app=ingress-azure -o jsonpath='{.items[0].metadata.name}')failed to sync、permission denied等错误信息。 - 重启AGIC Pod强制重新同步:
kubectl delete pod -n kube-system $(kubectl get pods -n kube-system -l app=ingress-azure -o jsonpath='{.items[0].metadata.name}')
2. 校验Application Gateway配置
登录Azure门户,进入目标Application Gateway:
- 检查规则:确认每个路由规则的路径匹配、后端池关联是否与Ingress配置一致(比如路径是否为
/、后端池是否指向AKS对应的Pod IP集合)。 - 检查后端设置:确认路径匹配模式为
Prefix,与Ingress的pathType: Prefix对应。
3. 修正Deployment资源配置
将Deployment中的资源限制修改为合理值(示例):
resources: requests: cpu: '100m' memory: '256Mi' limits: cpu: '1' memory: '512Mi'
极端资源限制会导致Pod调度异常、资源竞争,甚至被Kubelet驱逐。
4. 其他排查点
- 确认DNS解析:检查
test.wbsoft.co.kr的A记录是否正确指向Application Gateway的公网IP。 - 检查网络策略:确认default命名空间未新增阻止Application Gateway流量的网络策略。
内容的提问来源于stack exchange,提问作者creating_styles
相关产品推荐
相关产品推荐

