如果我们使用 nginx 入口控制器,外部负载均衡器的作用是什么?

What is the role of an external Load Balancer if we are using nginx ingress controller?

我已经在 3 个节点的集群中部署了我的应用程序。现在为了使这个应用程序可以从外部访问,我遵循了 this documentation 并集成了 nginx ingress controller。

现在,当我检查 Google 的负载平衡器控制台时,我可以看到创建了一个新的负载平衡器并且一切正常。但奇怪的是我发现我的两个节点不健康,只有一个节点正在接受连接。然后我找到 this discussion 并了解到唯一的节点 运行 nginx ingress controller pod 对于负载均衡器来说是健康的。

现在我很难理解这个数据流和这里外部负载均衡器的使用。我们使用外部负载均衡器将负载均衡到多台机器。但是通过这种配置,外部负载均衡器将始终将流量转发到具有 nginx ingress controller pod 的节点。如果那是正确的,外部负载平衡在这里的作用是什么?

您可以在多个 kubernetes 节点上部署多个 Nginx 入口控制器 pods 副本以实现高可用性,以减少在一个 kubernetes 节点不可用时停机的可能性。 LoadBalancer 会将请求发送到这些 nginx 入口控制器之一 pods。从 nginx 入口控制器 pods 它将转发到任何后端 pods。外部负载均衡器的作用是将nginx ingress controllerpods暴露在集群外。因为不建议在生产中使用 NodePort,并且不能使用 ClusterIP 在集群外暴露 pods,因此 LoadBalancer 是可行的选择。