首页 > 解决方案 > 使用静态 IP 部署 Azure kubernetes 入口时出错

问题描述

好人让我们看看是否有人可以帮助我。我在 1.13 版中配置了 Azure Kubernetes (AKS) 我正在尝试使用静态 IP 创建一个 Ingress,但这对我来说是不可能的。

我正在使用 kubectl create -f static-ip-svc.yaml

#File

apiVersion: v1

kind: Service

metadata:

  name: nginx-ingress-lb

  labels:

    app.kubernetes.io/name: ingress-nginx

    app.kubernetes.io/part-of: ingress-nginx

spec:

  externalTrafficPolicy: Local

  type: LoadBalancer

  loadBalancerIP: 40.121.219.126

  ports:

  - port: 80

    name: http

    targetPort: 80

  - port: 443

    name: https

    targetPort: 443

  selector:

    # Selects nginx-ingress-controller pods

    app.kubernetes.io/name: ingress-nginx

    app.kubernetes.io/part-of: ingress-nginx

并显示错误:

Type Reason Age From
Message ---- ------ ---- ---- -------- Normal EnsuringLoadBalancer 8s (x4 over 43s) service-controller Ensuring load balancer Warning CreatingLoadBalancerFailed 7s (x4 over 43s)服务控制器创建负载均衡器时出错(将重试):无法确保服务默认的负载均衡器/nginx-ingress-lb:等待条件超时

标签: azurekubernetesnginx-ingress

解决方案


对你来说,要创建一个静态 IP 的 Ingress,有两种方法可以实现。但首先,您需要了解 Azure Kubernetes 服务及其基础结构的资源组信息。

信息是为什么使用 AKS 创建两个资源组?它解释说有两个资源组,一个用于 Azure Kubernetes 服务本身,另一个用于其基础结构。因此有两种方法可以使用静态 IP 创建 Ingress。

这里有两种方式:

  1. 使用在名为 的组中创建的静态 IP MC_xxxx_xxxx_location

  2. 使用在除该组之外的另一个组中创建的静态 IP MC_xxxx_xxxx_location。这样,您需要为 AKS 的服务主体分配足够的权限,至少是“网络参与者”。

您可以在此处获得有关“将静态公共 IP 地址与 Azure Kubernetes 服务 (AKS) 负载平衡器一起使用”的更多详细信息。我认为您使用的是第二种方式,但您没有分配足够的权限以致出现错误。检查步骤并按照步骤重试。


推荐阅读