服务网格的存在意义 -kelseyhightower


虽然您可以编写具有服务发现集成,TLS证书管理和生成Envoy配置的功能的xds控制平面,但是我不确定这是您最好的时间使用方式。如果您需要所有这些,那么只有在那时,您才能真正了解“服务网格”的存在意义。

如果您发现服务网格的东西都令人困惑,并且您真的想了解它,请从envoyproxy开始:了解Envoy的核心功能集以及如何手动配置它。从简单开始。了解如何像nginx一样将Envoy用作HTTP代理或负载平衡器。

Envoy最好的优点之一是:能够在服务器运行时动态配置它。您可以从远程服务器同步配置Envoy,而不必手动配置Envoy。

Envoy利用xds协议发现和流式传输配置,最好的部分是,它将热重载配置,而无需重新启动!

Envoy还支持自定义插件,指标以及许多您可能会发现有用的功能,例如速率限制和断路器,它们都可以集中配置,这就是使Envoy脱颖而出的原因。

Envoy在保护HTTP端点方面也设置了标准。Envoy使您可以轻松地集中管理TLS证书并轮流使用它们而无需重新启动。

虽然可以将Envoy用作HTTP代理或负载平衡器,但也可以像应用程序服务器一样使用它。考虑一下Apache和PHP。您可以在应用程序的前面运行Envoy并微调该服务的配置。这是服务网格背后的基本思想。

一旦您运行了少数几个Envoy代理,您将非常欣赏通过中央配置服务对其进行配置的能力。

那么,为什么仅使用Envoy时与谈论的诸如Istio之类的工具有什么关系?

有很多方法可以生成TLS证书,并且说实话,Envoy的原始配置有些冗长和令人生畏,而且您猜想它还为抽象留有空间。

整个服务网格还有另一个重要组成部分,那就是服务发现。如果您正在运行Kubernetes,则需要与其服务层集成。您可以使用DNS,但您知道DNS....

除了Kubernetes,您还拥有VM和其他服务发现工具,例如Consul和etcd。这是自定义xds控制平面进入的地方。他们知道如何与不同的服务发现工具集成并生成包含服务端点的Envoy配置。