【问题标题】:How to fix "failed to ensure load balancer" error for nginx ingress如何修复 nginx 入口的“无法确保负载均衡器”错误
【发布时间】: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 &lt;my-namespace&gt; 并正确列出所有内容,只是外部 IP 为控制器的&lt;pending&gt;

然后我执行kubectl describe -n &lt;my-namespace&gt; service/&lt;my-name&gt;-nginx-ingress-controller,此错误列在事件下 -

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

谢谢你

【问题讨论】:

  • 公网IP在哪个资源组?

标签: azure-aks


【解决方案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

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 2015-03-14
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2017-12-18
    • 2021-05-21
    • 2017-06-10
    相关资源
    最近更新 更多