无法为AKS分配公共IP地址:永远待定

时间:2019-06-25 07:40:41

标签: azure azure-kubernetes

我为资源组分配了以下IP地址:

az network public-ip create --resource-group myResourceGroup --name ipName --allocation-method static

现在,我想将其分配给我的AKS,所以我只是如下更改了Yaml:

 apiVersion: v1
 kind: Service
 metadata:
 name: nginx
 spec:
   loadBalancerIP: xx.xx.xxx.xxx <--the ip generated before
   type: LoadBalancer
   ports:
   - port: 80
   selector:
    app: nginx-sgr

然后我跑:

kubectl apply -f mykube.yaml

但它似乎卡住了:

NAME        TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
nginx   LoadBalancer      10.0.77.234   <pending>     80:32320/TCP   79m

通过执行描述,我确实得到了以下信息:

Warning  CreatingLoadBalancerFailed  21m (x19 over 86m)  service-controller  Error creating 
load balancer (will retry): failed to ensure 
  load balancer for service default/nginx: user supplied IP Address 
  xx.xx.xxx.xxx was not found in resource group 
  MC_**myResourceGroup**_myAKSCluster_westeurope

请注意,似乎是在由我在第一个命令中指定的资源组(与kubernates相同)和其他信息组成的资源组中搜索...我在做什么错了?

1 个答案:

答案 0 :(得分:2)

据我所知,可能的原因是,如果在另一个组中创建公共IP,则需要为AKS分配创建公共IP的资源组的权限。有关更多详细信息,请参见Use a static IP address outside of the node resource group。并且您需要添加如下注释:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-resource-group: myResourceGroup
  name: azure-load-balancer
spec:
  loadBalancerIP: 40.121.183.52
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-load-balancer

或者您也可以在AKS群集节点组中创建公共IP。对于您来说,可以在您提供的错误中找到组名:MC_**myResourceGroup**_myAKSCluster_westeurope