如何将 Load Balancer-IP 分配给 NGINX 入口?

How to assign an Load Balancer-IP to NGINX ingress?

我已经使用 Rancher on DO(DigitalOcean) 平台创建了 K8S 集群,在后台,它创建了 VPS(Droplet) 来构建 K8S 集群。

顺便,我是如何在Rancher上创建的:

并选择了 DO 插件

在 DO 平台上,您有机会创建负载均衡器以添加到 K8S 集群,如 https://www.digitalocean.com/docs/kubernetes/how-to/add-load-balancers/ 中所述。

我已经通过 helm 在 K8S 上安装了 NGINX ingress:

helm install ingress-nginx ingress-nginx/ingress-nginx --namespace nginx --set controller.publishService.enabled=true

并且 NGINX 控制器服务的状态显示:

k get service -n nginx                                                                                               
NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.43.117.7    <pending>     80:31609/TCP,443:32247/TCP   103s
ingress-nginx-controller-admission   ClusterIP      10.43.55.223   <none>        443/TCP                      103s  

然后我创建了一个具有以下规则的负载均衡器:

之后我收到了一个IP地址。因此我的问题是,如何将 IP 分配给 ingress-nginx-controller?

LoadBalancer 类型的服务是您想要的声明,它应该会导致配置 DigitalOcean LB。实现这一愿望是云控制器的责任:订阅 LoadBalancer 类型的服务列表并使用云提供商的 API 来确保供应云提供商 LB 的代码。

https://github.com/digitalocean/digitalocean-cloud-controller-manager

您不应该自己手工制作 DigitialOcean LB。