Consul 负载均衡南北流量

Consul load balancing north south traffic

我正在尝试 运行 我在 consul 服务网格中的一些微服务。根据 consul 文档,很明显 consul 负责路由、负载平衡 和服务发现。但他们的文档还讨论了 3rd 方负载平衡器,如 NGINX、HAProxy 和 F5。

https://learn.hashicorp.com/collections/consul/load-balancing

如果 consul 负责负载均衡,那么这些负载均衡器的目的是什么。

我的假设,

  1. 这些负载均衡器是为了取代consul内置的负载均衡技术,但是LB仍然使用consul服务发现数据。 (为什么有人需要这个!!!)

  2. Consul 只为东西向流量提供负载均衡(在服务网格内)。为了负载平衡南北流量(互联网流量),我们需要外部负载平衡器。

请告诉我哪个假设是正确的

我咨询了我的一位同事(完全披露:我在 F5 工作),他提到虽然使用外部服务进行负载平衡不是技术要求,但许多组织已经有了基础设施,以及随之而来的运营要求、政策和程序。

有关 Consul 如何与 F5 BIG-IP 等边缘服务协同工作的一些示例,这里有几篇您可能会感兴趣的文章,它们可以为您的问题提供上下文。

Consul 服务网格默认使用 Envoy 代理来实现网格内连接的东西向和南北向负载平衡。东西向流量通过 Sidecar 代理进行路由,而南北向连接则通过配置为充当 ingress gateway.

的 Envoy 实例进行路由。

除了 Consul 的原生 Envoy 入口外,Consul 还支持与其他 proxies and API gateways 的集成。如果您需要本机入口产品中不可用的功能,则可以使用这些。

第三方代理利用 Consul 的服务目录使用来自 Consul 的端点信息填充其 backend/upstream 成员池。这允许代理始终拥有数据中心中健康和可用服务的最新列表,并且无需在 adding/removing 服务端点时手动重新配置南北代理。

一些网关,例如 Ambassador, F5, and (soon) Traefik (see PR https://github.com/traefik/traefik/pull/7407) go a step further by integrating with the service mesh (see Connect custom proxy integration),以便它们可以在连接到后端服务时使用 mTLS。