Azure AGIC YAML配置及502 Bad Gateway错误问题求助
AGIC 502错误解决方案
1. 替换废弃的Ingress API版本
你当前使用的extensions/v1beta1版本Ingress在Kubernetes v1.19及以上版本已正式废弃,新版AGIC不再支持该版本API,会导致配置无法正确同步到Azure Application Gateway。需替换为networking.k8s.io/v1版本,同时补充必填的pathType字段:
--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aspnetapp namespace: asp-test annotations: kubernetes.io/ingress.class: azure/application-gateway # 可选:显式指定健康探测路径,避免默认探测不符合应用要求 appgw.ingress.kubernetes.io/health-probe-path: "/" spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: aspnetapp-load port: number: 80
2. 调整Service类型为ClusterIP(推荐)
AGIC的工作逻辑是直接将流量路由到后端Pod,无需经过LoadBalancer类型Service的Azure负载均衡层,你可以将Service改为ClusterIP类型,减少不必要的网络跳转,避免LB层配置干扰AGIC路由识别:
apiVersion: v1 kind: Service metadata: name: aspnetapp-load namespace: asp-test labels: app: asp-frontend spec: type: ClusterIP ports: - port: 80 targetPort: 80 selector: app: asp-frontend
3. 验证配置同步状态
- 执行命令
kubectl describe ingress aspnetapp -n asp-test,查看Events字段确认是否存在配置同步失败的报错,若出现权限类报错,需确认AGIC托管身份具备对应Namespace下Services、Endpoints、Pods资源的读取权限。 - 登录Azure门户查看Application Gateway的后端池健康状态,若显示后端不健康,可根据实际情况调整健康探测的超时、重试阈值参数,确保探测请求可正常访问应用路径。
4. 多Ingress控制器场景适配
如果集群内部署了多个Ingress控制器,可显式指定IngressClass名称,避免配置被其他控制器接管。
内容的提问来源于stack exchange,提问作者Susheel Bhatt
相关产品推荐
相关产品推荐

