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的路径。
- 检查AGIC Pod的运行状态:
验证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 Pod内直接访问Service的ClusterIP:
排查路径匹配与路由规则冲突
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)都已正常配置。
- 确认Azure Application Gateway上已正确上传并关联了SSL证书,Ingress的
内容的提问来源于stack exchange,提问作者Anup
相关产品推荐
相关产品推荐

