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

AKS服务部署完成后无法访问已分配的External IP问题求助

AKS LoadBalancer Service无法访问排查 + App Gateway集成方案

一、先搞定当前LoadBalancer的访问问题

1. 确认Service和Pod是否连得上

跑这个命令查看Service的Endpoints状态:

kubectl describe service <你的服务名>

如果Endpoints字段为空,说明Pod的标签和Service的selector不匹配,先把标签对齐——用kubectl get pods --show-labels查看Pod的标签,再对比Service的selector配置。

2. 先测Pod本身能不能用

创建集群内临时Pod(比如busybox),进去测试Pod内部访问:

kubectl run -it --rm busybox --image=busybox:1.28 -- /bin/sh

在临时Pod内访问目标Pod的IP和端口:

wget -qO- <Pod的IP>:<容器端口>

如果连这个都访问失败,问题出在应用本身——比如容器内服务未启动、端口监听错误,先修复Pod内的应用。

3. 检查Azure负载均衡器的状态

登录Azure门户,找到AKS对应的负载均衡器(名称通常包含kubernetes):

  • 验证前端IP配置是否和Service的External IP一致;
  • 检查后端池是否包含AKS节点IP,以及健康探测状态是否正常。如果健康探测失败,LB会将节点从后端池移除,导致流量无法到达集群。
    • 若应用健康检查路径不是默认的/,需要在Service中配置readinessProbe和livenessProbe,或手动修改LB的健康探测规则。

4. 排查NSG和网络策略

AKS节点的NSG默认会放行LB流量,但自定义规则可能覆盖默认配置:

  • 找到节点所在的NSG,确认存在入站规则允许目标端口(如80/443)的流量,来源IP设为你的测试IP或0.0.0.0/0;
  • 若启用了Calico等网络插件,需检查Pod的网络策略,确认未拦截外部流量。

二、关于Ingress控制器的选择

你已经部署了Application Gateway,完全不需要单独部署普通Ingress控制器(如NGINX),直接使用**Application Gateway Ingress Controller (AGIC)**即可——这是Azure官方提供的集成组件,专门用于App Gateway与AKS的联动:

  • 无需在AKS内额外运行Ingress Pod,节省集群资源;
  • 直接复用App Gateway的WAF、SSL终止、路径路由等原生能力;
  • 在AKS中定义Ingress资源后,AGIC会自动将配置同步到App Gateway,无需手动修改Gateway规则。

用Terraform部署AGIC的关键步骤

  1. 确保AKS已启用OIDC issuer,且你配置的RBAC权限包含AGIC所需权限;
  2. 在Terraform的azurerm_kubernetes_cluster中添加addon_profile启用AGIC:
addon_profile {
  application_gateway {
    enabled = true
    gateway_id = azurerm_application_gateway.ag.id
  }
}
  1. 编写Ingress配置文件,指向你的aks-helloworld服务:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: helloworld-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: aks-helloworld-service
            port:
              number: 80
  1. 部署后,AGIC会自动配置App Gateway的路由规则,直接使用Gateway的公网IP即可访问应用。

总结

  • 先按上述步骤排查LoadBalancer的问题,重点关注Endpoints、Pod健康状态、LB配置和NSG规则;
  • 既然已使用App Gateway,优先选择AGIC,比单独部署Ingress控制器更省心,还能充分利用Gateway的原生功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:45:24