AKS负载均衡器静态IP分配不起作用(保持待处理)

时间:2019-10-02 15:21:59

标签: azure kubernetes-helm kubernetes-ingress azure-aks azure-kubernetes

我在AKS集群上具有正确的工作设置,在该集群中,我遵循了MS文档到use a static IP to create an ingress controller。我现在只是尝试在同一集群的单独命名空间中创建类似的设置,但是新的负载均衡器EXTERNAL-IP仍然是<pending>

检查服务时,我看到:

  

警告CreatingLoadBalancerFailed 3m29s(x16超过53m)服务控制器失败创建负载均衡器时出错(将重试):无法确保服务的负载均衡器ingress-dev / dev-ingress-nginx-ingress-controller:等待该条件超时

我看到了How to fix "failed to ensure lb" error for Nginx ingress,但是所有资源(静态IP地址)都与群集位​​于相同的资源组和区域中。正在运行的LB的现有静态IP也已分配给相同的RG和群集。

3 个答案:

答案 0 :(得分:4)

我相当确定这是由于服务主体配置错误而引起的,您可以这样做:kubectl get events --all-namespaces,看看是否可以找到与入口服务相关的任何内容,这些内容会抱怨auth \凭据错误?或者,您也可以reset service principal credentials在AKS中,并确保以这种方式获得正确的凭据。

您需要确保的另一件事是,您正在使用的服务主体有权访问负载均衡器所在的资源组。创建群集时,默认情况下应该会发生这种情况,但是有人可能已经剥夺了这些权限

以防万一评论被删除:将AKS更新到较新版本可以解决此问题

答案 1 :(得分:1)

使用“ --sku标准”创建静态IP

STATICIP=$(az network public-ip create --resource-group <MC_your-RG> --name Your-public-ip-name --sku Standard --allocation-method static --query publicIp.ipAddress -o tsv)

现在:

helm install stable/nginx-ingress --name 
--namespace 
--set rbac.create=true 
--set controller.replicaCount=2 
--set controller.stats.enabled=true 
--set controller.metrics.enabled=true 
--set controller.nodeSelector."beta.kubernetes.io/os"=linux 
--set defaultBackend.nodeSelector."beta.kubernetes.io/os"=linux 
--set controller.service.externalTrafficPolicy="Local" 
--set controller.service.loadBalancerIP=${STATICIP}

答案 2 :(得分:0)

在创建kubernetes群集时,Azure会自动创建另一个资源组来保存实际为群集供电的VM。
我注意到,如果静态IP是在与虚拟机相同的资源组中创建的,则它开始工作。