无法通过自定义子域名访问AKS应用问题求助
问题排查与解决方案
1. 检查Ingress资源配置
你部署示例应用所用的aspnetapp.yaml中的Ingress资源大概率未配置host匹配规则,导致Application Gateway无法将域名请求转发到对应服务。
- 执行命令查看当前Ingress配置:
kubectl get ingress -o yaml - 若Ingress中无
spec.rules.host字段,需修改Ingress资源添加对应域名:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: aspnetapp-ingress annotations: kubernetes.io/ingress.class: azure/application-gateway spec: rules: - host: mtest.6pack.dev http: paths: - path: / pathType: Prefix backend: service: name: aspnetapp-service port: number: 80 - host: test2.6pack.dev http: paths: - path: / pathType: Prefix backend: service: name: aspnetapp-service port: number: 80 - 应用修改后的配置:
kubectl apply -f <修改后的yaml文件路径>
2. 验证Application Gateway路由配置
- 登录Azure门户,找到目标Application Gateway,检查路由规则是否将
mtest.6pack.dev/test2.6pack.dev绑定到对应HTTP设置和后端池。 - 确认HTTP设置中已开启“基于名称的多站点”转发逻辑,且后端池关联正确。
3. 排查HTTP/HTTPS访问差异
- 你当前用IP访问的是
http://20.93.56.72/,但直接输入域名时浏览器可能自动跳转HTTPS(如HSTS缓存)导致失败,尝试直接访问http://mtest.6pack.dev测试。 - 若需HTTPS访问,需在Application Gateway上配置SSL证书,并更新Ingress资源添加TLS段配置。
4. 清除本地DNS缓存
全球DNS解析正确不代表本地无旧缓存,执行对应命令清除:
- Windows:
ipconfig /flushdns - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:
sudo systemd-resolve --flush-caches
5. 检查网络安全规则
确保Application Gateway公网IP对应的NSG允许80/443端口入站流量,同时AKS集群节点NSG允许Application Gateway访问后端服务端口。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

