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

非Helm方式为AKS集群中Nginx Ingress绑定静态公网IP

解决AKS中Nginx Ingress绑定静态公网IP后EXTERNAL-IP处于Pending状态的问题

核心检查项与修复步骤

1. 确认静态公网IP的属性匹配要求

  • 必须使用Standard SKU:AKS的Standard LoadBalancer只能绑定同SKU的静态IP,可通过以下命令确认:
    az network public-ip show --resource-group MC_myResourceGroup_myAKSCluster_eastus --name myAKSPublicIP --query "sku.name" -o tsv
    
  • 必须与AKS集群处于同一区域:执行下方命令检查IP区域是否和集群一致:
    az network public-ip show --resource-group MC_myResourceGroup_myAKSCluster_eastus --name myAKSPublicIP --query "location" -o tsv
    
  • 必须位于AKS的托管资源组(即MC_myResourceGroup_myAKSCluster_eastus):若IP在其他资源组,需额外添加注解service.beta.kubernetes.io/azure-load-balancer-resource-group: <目标资源组名>到Ingress Service。

2. 修正Ingress Service的配置

  • 定位Ingress Controller的Service(默认在ingress-nginx命名空间):
    kubectl get service -n ingress-nginx
    
  • 编辑该Service,确保配置正确:
    kubectl edit service ingress-nginx-controller -n ingress-nginx
    
    在metadata.annotations中添加/确认以下配置:
    service.beta.kubernetes.io/azure-load-balancer-ipv4: "你的静态IP地址"
    service.kubernetes.io/load-balancer-class: "standard"
    
    同时确认spec.type为LoadBalancer,无冲突配置项。

3. 确保AKS集群有绑定IP的权限

AKS的托管身份需要对托管资源组拥有Network Contributor权限,否则无法操作静态IP:

  • 获取AKS集群的托管身份ID:
    AKS_PRINCIPAL_ID=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query identity.principalId -o tsv)
    
  • 为托管身份添加权限:
    az role assignment create \
      --assignee $AKS_PRINCIPAL_ID \
      --scope /subscriptions/你的订阅ID/resourceGroups/MC_myResourceGroup_myAKSCluster_eastus \
      --role "Network Contributor"
    

4. 触发Service重新绑定

修改配置后,删除并重新创建Ingress Service以触发IP绑定:

kubectl delete service ingress-nginx-controller -n ingress-nginx
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml

或直接应用修改后的Service配置:

kubectl apply -f <你的修改后的Service yaml文件路径>

5. 排查绑定失败原因

若仍处于Pending状态,查看Service的事件日志获取具体错误:

kubectl describe service ingress-nginx-controller -n ingress-nginx

常见错误包括IP被其他资源占用、权限不足、SKU不匹配等,可根据日志针对性修复。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:50:09