Kubernetes 是为每个 LoadBalancer 服务创建一个外部负载均衡器,还是只是重复使用同一个服务?

Does Kubernetes create an external load balancer for every LoadBalancer service, or does it just reuse the same one?

当您在 Kubernetes 中创建 LoadBalancer 类型的 Service 时,它会创建一个全新的外部负载均衡器,还是只为第一个 Service 类型 LoadBalancer 并为所有后续 Service 类型 LoadBalancer?

重新使用相同的负载均衡器

这个问题特别重要,因为为每个服务启动一个单独的负载均衡器对我来说成本过高。

如果特定于云提供商,我使用的是 Azure,但我很想知道其他云提供商是否有所不同。

在 Azure 上,我观察到 Kubernetes 不会为每个服务条目创建一个负载均衡器。事实上,它在 kubernetes 集群管理的 resource-group(MC_* 一个)

内的负载均衡器中创建了一个负载均衡规则

在 AWS 和 GCP 中,为服务的每个实例创建一个新的负载均衡器。

这是每个云提供商的具体情况。我对 on-prem VMware 解决方案的体验是,他们正在为每个 LB 类型服务创建一个专用的 LB 实例。说到重用 LB 资源,根据我的经验,您可以使用第 7 层 LB(即入口)而不是第 4 层 LB。 L4 负载平衡通常与提供商的底层基础设施相结合,其中 L7 负载平衡,根据您使用的解决方案,您可以选择 in-cluster LB(例如 contour)而不是提供商提供给您的那些。