负载平衡器-Kubernetes或Nginx或两者

负载平衡器-Kubernetes或Nginx或两者,nginx,kubernetes,Nginx,Kubernetes,Nginx默认支持“循环”负载平衡,如果我将kubernetes服务类型设置为“LoadBalancer”(我认为这是服务提供商的网络LB?类似),那么堆栈中不会有两个负载均衡器(理论上) 假设,我在nginx(web服务器)后面有一个web应用程序,所以我猜在这种情况下不会发生nginx-LB。但当它扩展到nginx后面的多个web应用程序时,它将开始负载平衡 最好的拓扑结构是什么,所有web应用程序都使用网络负载均衡器(硬件)还是在单个nginx之后使用多个web应用程序 1) 用于多个we

Nginx默认支持“循环”负载平衡,如果我将kubernetes服务类型设置为“LoadBalancer”(我认为这是服务提供商的网络LB?类似),那么堆栈中不会有两个负载均衡器(理论上)

假设,我在nginx(web服务器)后面有一个web应用程序,所以我猜在这种情况下不会发生nginx-LB。但当它扩展到nginx后面的多个web应用程序时,它将开始负载平衡

最好的拓扑结构是什么,所有web应用程序都使用网络负载均衡器(硬件)还是在单个nginx之后使用多个web应用程序

1) 用于多个web应用程序的单个nginx

|=>网络应用
网络LB nginx LB web应用程序
|=>网络应用
2) 让network LB作为web服务器为每个web应用程序执行平衡和nginx

                nginx-LB <==> web-app
network-LB <==> nginx-LB <==> web-app
                nginx-LB <==> web-app
nginx-LB网络应用
网络LB nginx LB web应用程序
nginx-LB网络应用

因此,一般的流程是将Nginx ingress而不是Nginx作为LB合并,因为Nginx ingress控制器针对这种路由进行了优化,并支持自动缩放,因此您不需要处理任何负载不足的情况

                                               |=> web-app
network-LB <==> nginx-controller (one or more) <==> web-app
                                               |=> web-app
|=>网络应用
网络LB nginx控制器(一个或多个)web应用
|=>网络应用
然而,您的nginx conroller有点神奇,它可以监视Web应用程序的端点,并在更改时更新配置,因此只需少跳一次(比正常路由更优化,需要先进行IP查找)。您可以阅读更多关于nginx入口的信息

                                               |=> web-app
network-LB <==> nginx-controller (one or more) <==> web-app
                                               |=> web-app