解释我的困惑/缺乏理解

在阅读有关外部LoadBalancer in K8s(仅是云提供程序的功能)的信息时,我不太了解何时应使用它,因为当创建一个Deployment时,K8会在该Deployment中的Pod上进行Round Robin负载平衡。

因此,以我目前的理解,所有需要做的就是制作一个NodeIP,而您等效于一个外部负载均衡器?

还是我应该将LoadBalancer类型视为haproxy / nginx / Envoy,在其中可以执行SSL,反向代理和许多其他有用的事情?

我目前的猜测是,LoadBalancer的正确用法是添加许多NodeIP,但我找不到任何支持的方法。



谁能解释何时,为何使用LoadBalancer而不是仅使用NodeIP?

最佳答案

例如,您要在群集中部署多个应用程序,例如10个应用程序。
您想通过互联网访问这10个应用程序。一种方法是将这10个应用程序服务设置为节点端口,以便您可以从外部访问它们。为此,kubernetes在每个群集节点上打开10个节点端口。这是安全隐患。

在大多数在封闭网络中的防火墙后面工作的企业中,不允许http / https(80/443)以外的任何其他端口往返外部通信。

一种方法是将每个应用程序服务的服务类型设置为Loadbalancer。因此,要访问10个应用程序,您将配置10个负载均衡器以通过http / https端口访问应用程序服务器。由于负载均衡器是收费资源,因此从经济上讲,对于要通过itnernet访问的每个服务都只有一个负载均衡器是不可行的。

有没有一种方法可以通过单个端口访问在kubernetes中运行的所有这10个应用程序服务。这是入口控制器出现的地方。

入口控制器允许单个ip端口通过入口规则访问在k8s中运行的所有服务。入口控制器服务设置为负载均衡器,因此可以从公共Internet访问

08-25 07:04