AKS环境下Nginx Ingress配置Host规则失效求助
解决AKS环境Ingress配置Host后超时的问题
以下是针对性的排查和解决步骤:
验证DNS解析正确性
确认域名nginx-basic-auth-az-cli.demo.kagarlickij.com已正确指向Ingress Controller的公网IP:nslookup nginx-basic-auth-az-cli.demo.kagarlickij.com若解析错误,需调整DNS记录,指向通过
kubectl get svc -n ingress-nginx获取的Ingress Controller外部IP。检查Ingress Controller配置同步
查看Ingress Controller Pod日志,确认Host规则是否加载成功:kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --tail=50排查日志中是否存在配置加载失败的错误提示(如域名格式、权限问题)。
排查AKS网络策略与防火墙
- 临时禁用集群内的网络策略,测试是否是策略阻止了流量:
kubectl delete networkpolicy <目标策略名称> - 检查Azure防火墙或NSG(网络安全组)规则,确保允许80/443端口的入站流量,以及Ingress Controller到集群内部服务的通信。
- 临时禁用集群内的网络策略,测试是否是策略阻止了流量:
清理冗余Ingress注解
当前路径为/,无需正则重写注解,移除后可避免规则冲突:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hello-world-ingress annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" spec: ingressClassName: ingress-nginx rules: - host: nginx-basic-auth-az-cli.demo.kagarlickij.com http: paths: - path: / pathType: Prefix backend: service: name: aks-helloworld-one port: number: 80应用修改后的配置:
kubectl apply -f <Ingress配置文件路径>测试后端服务可达性
在Ingress Controller Pod内部测试能否访问后端服务:kubectl exec -n ingress-nginx -it <Ingress Controller Pod名称> -- curl http://aks-helloworld-one:80若无法访问,需检查后端Pod是否正常运行、端口配置是否正确。
验证版本兼容性
确认ingress-nginx v1.8.1与AKS v1.26.6的兼容性,必要时升级ingress-nginx到适配AKS 1.26的版本(如v1.9.x系列)。
内容的提问来源于stack exchange,提问作者kagarlickij
相关产品推荐
相关产品推荐

