使用内部负载均衡器的 aks Ngnix 入口控制器

时间:2021-05-03 10:41:16

标签: docker nginx kubernetes azure-aks

显示内部负载均衡器外部 IP 处于待处理状态,有人可以帮助我解决此问题

helm install nginx-ingress ingress-nginx/ingress-nginx --namespace=ingress-private --set rbac.create=true --set controller.service.loadBalancerIP="10.0.0.0" --set controller.replicaCount=2 --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux --set defaultBackend.nodeSelector."beta\.kubernetes\.io\/os"=linux --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"="true"
NAME: nginx-ingress
LAST DEPLOYED: Mon May  3 15:39:02 2021
NAMESPACE: ingress-private
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace ingress-private get services -o wide -w nginx-ingress-ingress-nginx-controller'
kubectl get svc -n ingress-private -w
NAME                                               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
nginx-ingress-ingress-nginx-controller             LoadBalancer   10.0.0.0    <pending>     80:32392/TCP,443:32499/TCP   3m2s
nginx-ingress-ingress-nginx-controller-admission   ClusterIP      10.0.0.223   <none>        443/TCP                      3m2s

2 个答案:

答案 0 :(得分:0)

根据 Azure docs,您不能使用 10.0.0.0 IP 地址。尝试使用其他地址。我假设您正在尝试执行此 scenario。检查服务详细信息以获取任何错误信息。

kubectl describe svc -n ingress-private nginx-ingress-ingress-nginx-controller

参考:

<块引用>

在这些子网内使用 IP 地址是否有任何限制?

是的。 Azure 在每个子网中保留 5 个 IP 地址。这些是 x.x.x.0-x.x.x.3 和子网的最后一个地址。 x.x.x.1-x.x.x.3 是 在每个子网中为 Azure 服务保留。

  • x.x.x.0:网络地址
  • x.x.x.1:Azure 为默认网关保留
  • x.x.x.2、x.x.x.3:由 Azure 保留以将 Azure DNS IP 映射到 VNet 空间
  • x.x.x.255:网络广播地址

答案 1 :(得分:0)

以下是服务详情

C:\Users\av13\Music\spoke-terraform-updated\kubernetes-nexus>kubectl describe svc -n ingress-private nginx-ingress-ingress-nginx-controller
Name:                     nginx-ingress-ingress-nginx-controller
Namespace:                ingress-private
Labels:                   app.kubernetes.io/component=controller
                          app.kubernetes.io/instance=nginx-ingress
                          app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=ingress-nginx
                          app.kubernetes.io/version=0.46.0
                          helm.sh/chart=ingress-nginx-3.30.0
Annotations:              meta.helm.sh/release-name: nginx-ingress
                          meta.helm.sh/release-namespace: ingress-private
                          service.beta.kubernetes.io/azure-load-balancer-internal: true
Selector:                 app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
Type:                     LoadBalancer
IP:                       10.0.188.67
IP:                       10.145.72.102
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  32392/TCP
Endpoints:                10.145.72.50:80,10.145.72.94:80
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  32499/TCP
Endpoints:                10.145.72.50:443,10.145.72.94:443
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age                  From                Message
  ----    ------                ----                 ----                -------
  Normal  EnsuringLoadBalancer  78s (x278 over 22h)  service-controller  Ensuring load balancer

外部 IP 仍处于待处理状态

C:\Users\av13\Music\spoke-terraform-updated\kubernetes-nexus>kubectl get svc -n ingress-private -w
NAME                                               TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
nginx-ingress-ingress-nginx-controller             LoadBalancer   10.0.188.67    <pending>     80:32392/TCP,443:32499/TCP   22h
nginx-ingress-ingress-nginx-controller-admission   ClusterIP      10.0.159.223   <none>        443/TCP                      22h