如何修复 nginx 入口的“无法确保负载均衡器”错误
Posted
技术标签:
【中文标题】如何修复 nginx 入口的“无法确保负载均衡器”错误【英文标题】:How to fix "failed to ensure load balancer" error for nginx ingress 【发布时间】:2019-09-01 15:36:08 【问题描述】:在 Azure 上使用 helm 和静态 ip 设置新的 nginx-ingress 时,nginx 控制器永远不会获得分配的静态 IP。它总是说<pending>
。
我按如下方式安装helm chart -
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: write tcp4 127.0.0.1:57881->127.0.0.1:57886: wsasend: 已建立的连接被主机中的软件中止。
然后我执行kubectl get all -n <my-namespace>
并正确列出所有内容,只是外部 IP 为控制器的<pending>
。
然后我执行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:超时等待 条件。
谢谢你
【问题讨论】:
公网IP在哪个资源组? 【参考方案1】:对于您的问题,可能的原因是您的公共 IP 与 AKS 群集不在同一个资源组和区域中。请参阅Create an ingress controller with a static public IP address in Azure Kubernetes Service (AKS) 中的步骤。
您可以像这样通过 CLI 命令获取 AKS 组:
az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
当你的公网IP在不同的组和地区时,它会像你一样报超时错误。
【讨论】:
所以如果我运行 - az.cmd aks show --resource-group MC_prod_eba-next_prod-eba-next-k8s_westeurope --name ag-prod-eba-next-k8s-static-ip --查询 nodeResourceGroup -o tsv 错误:找不到资源组“MC_prod_eba-next_prod-eba-next-k8s_westeurope”下的资源“Microsoft.ContainerService/managedClusters/ag-prod-eba-next-k8s-static-ip”。 - 即使在 Azure 仪表板上明确指出静态 ip 在此资源组中,也会出现此错误。 我现在正在使用仪表板将静态 ip 资源移动到与集群相同的资源组。完成后,我将发布上述命令的详细信息。谢谢 @Koman 不,当您创建 AKS 时,会有两个组,一个用于您的 AKS,另一个用于 AKS 集群。 @Koman 看看question,它将帮助您了解这两个群体。 有趣。谢谢你。我认为问题可能出在我使用此命令创建静态 ip 时 - az.cmd network public-ip create --resource-group prod_eba-next --name ag-prod-eba-next-k8s-static-ip --分配方法静态。我认为我不应该使用 --resource-group 标志。正如您发布的链接所说,应将资源添加到自动生成的组中。现在将尝试重新创建。谢谢【参考方案2】:确保您的 ingress 位于节点资源组中,并且 ingress 的 sku 是 Basic 而不是 Standard
【讨论】:
以上是关于如何修复 nginx 入口的“无法确保负载均衡器”错误的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 WPF 错误:“程序不包含适合入口点的静态 'Main' 方法”?
如何禁用 nginx 入口控制器的自动 https 重定向?