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

AKS集群Ingress无外部IP分配问题及端到端部署求助

问题排查与端到端示例方案

一、Ingress无EXTERNAL IP的常见原因及排查步骤

1. 核心逻辑澄清

Ingress资源本身不会直接分配公网IP,它的EXTERNAL IP实际来自Ingress Controller对应的LoadBalancer类型Service。先排查Ingress Controller的Service状态:

  • 查看Ingress Controller Pod状态:
    kubectl get pods -n ingress-basic
    
    确保所有Pod处于Running状态,无CrashLoop或Pending情况。
  • 查看Ingress Controller的Service:
    kubectl get svc -n ingress-basic
    
    如果该Service的EXTERNAL-IP为空或处于pending,则问题根源在这个Service,而非Ingress资源本身。

2. 权限与网络配置检查

  • AKS权限验证:用Terraform部署AKS时,需确保集群的托管标识(或服务主体)拥有Network Contributor权限,用于在节点资源组(MC_开头的自动生成组)中创建负载均衡器。检查Terraform配置中是否包含权限绑定的资源(比如azurerm_role_assignment)。
  • 网络模式验证:
    • 若用Azure CNI,确认子网剩余IP足够分配给LB和Pod;
    • 若用Kubenet,确认节点子网的路由表配置正确,无阻止LB创建的规则。
  • 节点资源组检查:登录Azure门户查看MC_开头的节点资源组,确认是否有新的负载均衡器被创建。若没有,说明Ingress Controller的Service未触发LB创建,大概率是权限不足。

3. Ingress资源配置验证

检查Ingress资源的spec.ingressClassName字段,需与部署的Ingress Controller的类名匹配(比如Nginx Ingress Controller默认类名为nginx)。若未指定该字段,集群可能没有默认Ingress Controller,导致Ingress资源无法关联到后端控制器。

二、端到端AKS集群(含负载均衡+DNS)示例结构

一个完整的示例包含Terraform基础设施定义和Kubernetes应用配置两部分:

1. Terraform部分(基础设施)

  • 定义AKS集群:启用托管标识,配置网络(推荐用现有VNet/子网),并为托管标识分配Network Contributor权限到VNet资源组;
  • 可选:创建Azure DNS Zone(用于后续绑定公网IP);
  • 输出AKS的kubeconfig配置,方便连接集群。

2. Kubernetes部分(应用)

  • 部署Nginx Ingress Controller:创建LoadBalancer类型的Service,可通过annotations指定LB SKU(比如service.beta.kubernetes.io/azure-load-balancer-sku: standard);
  • 部署示例应用(如Hello World):创建Deployment和ClusterIP类型的Service;
  • 部署Ingress资源:关联示例应用的Service,配置Host规则(比如hello.example.com);
  • 可选:部署external-dns组件,自动将Ingress Controller的LB公网IP同步到Azure DNS Zone,实现域名自动解析。

三、常见错误总结

  • 遗漏Ingress Controller的LoadBalancer Service配置,或Service的annotations错误导致LB创建失败;
  • AKS托管标识/服务主体权限不足,无法在节点资源组创建负载均衡器;
  • Ingress资源未指定正确的ingressClassName,无法关联到后端控制器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:53:29