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

AKS集群Nginx Ingress Controller无法访问端点问题排查

AKS集群中Nginx Ingress Controller无法访问Ingress端点的排查与解决

问题描述

我在AKS集群中安装了Nginx Ingress Controller,但无法访问应用暴露的Ingress端点。初步发现Ingress端点被分配了某个节点的外部IP,而Ingress Controller Service的IP却不同,请问哪里操作出错了?

相关kubectl命令输出

查看Ingress Pod状态

$ kubectl get pods --all-namespaces | grep ingress
kube-system  ingress-nginx-58ftggg-4xc56   1/1 Running

查看默认命名空间下的Service

$ kubectl get svc
kubernetes  CLUSTERIP  172.16.0.1    <none>(ExternalIP)  443/TCP

查看Ingress资源

$ kubectl get ingress
vault-ingress-documentation 10.145.13.456

描述Ingress资源详情

$ kubectl describe ingress vault-ingress-documentation
Name:vault-ingress-documentation
Namespace:corebanking
Address:10.145.13.456
Default backend:default-http-backend:80 (<error:default-http-backend:80 not found)

查看kube-system命名空间下的Ingress Service

$ kubectl get services -n kube-system | grep ingress
ingress-nginx Loadbalancer 172.16.160.33 10.145.13.456 80:30389/TCP,443:31812/TCP

问题分析与解决步骤

  1. 先澄清IP误解
    从输出看,ingress-nginx LoadBalancer Service的ExternalIP就是10.145.13.456,和Ingress资源的Address完全一致——这个IP是AKS为LoadBalancer类型Service分配的公网/内网IP,并非节点IP,你之前的判断有误。

  2. 核心故障点:Ingress配置缺失或错误

    • 从kubectl describe ingress的输出能看到default-http-backend:80 not found,说明当前Ingress没有配置有效的后端规则,也找不到兜底的默认后端。
    • 你的vault-ingress-documentation大概率没有配置正确的rules字段,导致Ingress不知道该把流量转发到哪个应用Service。
  3. 具体修复操作

    • 补全Ingress规则配置:编辑你的Ingress YAML,添加指向应用Service的规则,示例如下:
      spec:
        rules:
        - host: vault.your-domain.com # 可以用自定义域名,或者直接用IP访问时省略host
          http:
            paths:
            - path: /
              pathType: Prefix
              backend:
                service:
                  name: vault-service # 替换成你的应用Service名称
                  port:
                    number: 80 # 替换成应用Service的端口
      
    • 确认应用Service状态:在corebanking命名空间下执行kubectl get svc,检查对应的应用Service是否存在、端口是否正确、是否有Endpoints绑定。
    • 处理默认后端问题:如果不需要兜底后端,确保Ingress有明确的规则即可;如果需要,可安装官方的default-http-backend,或者检查Nginx Ingress Controller是否自带了默认后端Service(部分版本会在kube-system下创建ingress-nginx-defaultbackend)。
    • 查看Ingress Controller日志排查:
      kubectl logs -n kube-system ingress-nginx-58ftggg-4xc56
      
      日志里会显示规则加载是否成功、是否有流量转发错误。
    • 验证网络权限:确认AKS对应的网络安全组(NSG)已经开放80/443端口,允许外部流量访问LoadBalancer的IP;同时检查集群内部的网络策略是否阻断了Ingress到应用Service的流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:25:49