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

AKS集群通过Ingress暴露应用时Ingress未分配地址的原因排查

AKS集群Ingress未分配地址的排查原因

针对你遇到的AKS中Ingress资源未获得分配地址的问题,结合你提供的配置,主要排查方向如下:

1. Ingress注解拼写错误

你的Ingress配置里的注解存在拼写错误:

kubernetes.io/ingress.class: addon-http-application-rounting

正确的注解值应为addon-http-application-routing(末尾的rounting拼写错误,应为routing)。这个错误会导致AKS的HTTP Application Routing控制器无法识别该Ingress资源,自然不会为其分配地址。

2. HTTP Application Routing插件未启用

AKS的addon-http-application-routing是可选插件,必须先在集群中启用,才会部署对应的Ingress Controller来处理Ingress资源。

  • 检查插件状态:
    az aks show -g <你的资源组名> -n <你的AKS集群名> --query addonProfiles.httpApplicationRouting.enabled
    
  • 如果返回false,执行以下命令启用插件:
    az aks enable-addons -g <你的资源组名> -n <你的AKS集群名> --addons http_application_routing
    

3. Ingress Controller Pod运行异常

启用插件后,对应的Ingress Controller Pod部署在kube-system命名空间下,需确认Pod是否正常运行:

kubectl get pods -n kube-system | grep http-application-routing

如果Pod处于CrashLoopBackOff、ImagePullBackOff等异常状态,需排查具体原因(如镜像拉取失败、节点资源不足等),只有控制器Pod正常运行,才能处理Ingress资源并分配地址。

4. Service未正确关联后端Pod

虽然你的Service和Deployment的标签匹配(app: dockerdemo),但仍需确认Service是否成功关联到运行中的Pod:

kubectl describe service dockerdemo-service

查看输出中的Endpoints字段,如果为空,说明没有Pod匹配Service的标签,或者Pod未正常运行。这种情况下,Ingress控制器可能不会为该Ingress分配地址,即使分配也无法正常转发流量。

5. 域名后缀不匹配(可选)

HTTP Application Routing插件会为集群创建一个专属的DNS区域,你配置的host后缀需要和插件提供的域名后缀一致。可以通过以下命令获取正确的后缀:

az aks show -g <你的资源组名> -n <你的AKS集群名> --query addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName

如果你的host后缀和该值不匹配,即使Ingress分配了地址,域名也无法解析,但这不是Ingress未分配地址的直接原因,可作为后续验证项。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:05:30