You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Application Gateway Ingress Controller无法访问ClusterIP类型Service

解决Azure Application Gateway Ingress无法访问ClusterIP Service的思路

我之前也碰到过类似的Azure Application Gateway Ingress Controller(AGIC)访问ClusterIP服务的问题,结合实际排查经验,给你几个可行的解决思路:

  • 确认AGIC的部署与Ingress关联状态
    首先得确保AGIC本身在正常工作,并且正确识别了你的Ingress资源:

    • 检查AGIC Pod的运行状态:kubectl get pods -n kube-system(如果你的AGIC部署在其他命名空间,替换成对应的即可),确保Pod处于Running状态且没有异常重启。
    • 查看AGIC的日志,确认它是否在处理目标Ingress:kubectl logs <agic-pod-name> -n kube-system,搜索你的Ingress名称,看是否有类似Processing ingress <your-ingress-name>的日志条目。如果没有,大概率是Ingress没被AGIC纳入管理。
    • 登录Azure门户,查看对应的Application Gateway,检查后端池是否已经同步了目标Service的ClusterIP或端点Pod IP,路由规则是否正确关联了Ingress的路径。
  • 验证Ingress注解的完整性
    AGIC需要特定的注解才能正常工作,这是很多人容易忽略的点:

    • 必须添加kubernetes.io/ingress.class: azure/application-gateway注解!如果你的Ingress只配置了Nginx的注解或者没指定这个,AGIC完全不会处理这个Ingress资源——这也是为什么Nginx Ingress能访问,AGIC不行的常见原因。
    • 关于appgw.ingress.kubernetes.io/rewrite-target: /,要确保Ingress的路径配置和重写规则匹配。比如如果你的Ingress路径是/app/*(Prefix类型),重写到/后,AGIC会把/app/abc转换为/abc发送给后端服务。如果后端服务只响应根路径/,那可能需要调整路径配置为/app(Exact类型)或者检查服务的路由逻辑。
  • 检查服务与端点的可达性
    确认AGIC到目标Service的网络链路是通的:

    • 在AGIC Pod内直接访问Service的ClusterIP:kubectl exec -it <agic-pod-name> -n kube-system -- curl http://<service-cluster-ip>:<service-port>。如果能正常返回响应,说明AGIC到服务的网络没问题;如果不通,可能是网络策略限制了AGIC所在命名空间访问目标服务,或者Service的端口配置错误。
    • 检查Service对应的端点是否正常:kubectl get endpoints <your-service-name>,看ENDPOINTS列是否有Pod的IP地址。如果为空,说明Service没有关联到运行中的Pod,或者Pod的就绪探针失败导致未被纳入端点。
  • 排查路径匹配与路由规则冲突
    AGIC的路径匹配逻辑和Nginx存在差异,容易导致路由异常:

    • 注意pathType的设置:如果用Exact类型,AGIC只会精确匹配路径;用Prefix则会匹配所有以该路径开头的请求。比如Nginx的/app会匹配/app和/app/,但AGIC的Exact类型/app不会匹配/app/,这可能导致请求被拒绝。
    • 检查Azure Application Gateway的路由规则,确认目标路径的映射没有被其他Ingress的规则覆盖,优先级设置是否符合预期。
  • SSL/TLS配置排查(若使用HTTPS)
    如果你的Ingress配置了HTTPS,额外检查以下点:

    • 确认Azure Application Gateway上已正确上传并关联了SSL证书,Ingress的tls段配置的secretName对应的证书和AG上的一致。
    • 若启用了HTTP到HTTPS的重定向,检查appgw.ingress.kubernetes.io/ssl-redirect: "true"注解是否正确配置,且AG的监听端口(80和443)都已正常配置。

内容的提问来源于stack exchange,提问作者Anup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 18:17:38