繁体   English   中英

何时在 K8s 中使用外部 LoadBalancer?

[英]When to use external LoadBalancer in K8s?

解释我的困惑/缺乏理解

当阅读K8s 中的外部 LoadBalancer 时,这是一个云提供商独有的功能,我不太明白什么时候应该使用它,因为当创建一个部署时,K8s 将在该部署中的 Pod 上进行循环负载平衡。

因此,根据我目前的理解,所有需要做的就是制作一个 NodeIP,并且您拥有相当于外部负载均衡器的功能?

或者我应该将 LoadBalancer 类型视为 haproxy/nginx/Envoy,在那里可以做 SSL、反向代理和许多其他有用的事情?

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

问题

谁能解释何时以及为什么使用 LoadBalancer 而不仅仅是使用 NodeIP?

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

在大多数企业中,他们在封闭网络中的防火墙后面工作,不允许外部流量进出 http/https (80/443) 以外的任何端口。

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

有没有办法通过单端口访问在 kubernetes 中运行的所有这 10 个应用程序服务。 这就是入口 controller 出现的地方。

Ingress controller 允许单个 ip-port 通过 ingress 规则访问在 k8s 中运行的所有服务。 入口 controller 服务设置为负载均衡器,因此可以从公共互联网访问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM