首页 > 解决方案 > 如何修复 nginx 入口的“无法确保负载均衡器”错误

问题描述

在 Azure 上使用 helm 和静态 ip 设置新的 nginx-ingress 时,nginx 控制器永远不会获得分配的静态 IP。它总是说<pending>

我按如下方式安装掌舵图 -

helm install stable/nginx-ingress --name <my-name> --namespace <my-namespace> --set controller.replicaCount=2 --set controller.service.loadBalancerIP="<static-ip-address>"

它说它安装正确,但也列出了一个错误

E0411 06:44:17.063913 13264 portforward.go:303] 从远程流复制到本地连接时出错:从 tcp4 127.0.0.1:57881->127.0.0.1:57886 读取:写入 tcp4 127.0.0.1:57881->127.0.0.1: 57886:wsasend:已建立的连接被主机中的软件中止。

然后我做了一个kubectl get all -n <my-namespace>,一切都正确列出了与<pending>控制器一样的外部IP。

然后我做了一个kubectl describe -n <my-namespace> service/<my-name>-nginx-ingress-controller,这个错误列在事件下 -

警告 CreatingLoadBalancerFailed 11s (x4 over 47s) service-controller 创建负载均衡器时出错(将重试):无法确保服务 my-namespace/my-name-nginx-ingress-controller 的负载均衡器:等待条件超时。

非常感谢你

标签: azure-aks

解决方案


对于您的问题,可能的原因是您的公共 IP 与 AKS 群集不在同一个资源组和区域中。请参阅在 Azure Kubernetes 服务 (AKS) 中使用静态公共 IP 地址创建入口控制器中的步骤。

您可以通过 CLI 命令获取 AKS 组,如下所示:

az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv

当您的公共 IP 在不同的组和区域中时,它会像您一样给出超时错误。


推荐阅读