前言
这篇文章我看了之后非常想翻译,为什么呢?一方面我也在学习 Envoy,并且在公司的实际项目中使用 Envoy,另一方面,我确实也在设计一个控制管理端来统一管控多个集群的所有流量,没错我说的是所有的流量管控。目前这个管理系统在内部已经在逐步使用起来了。所以翻译这篇文章,即学习 Envoy 技术,也是想做一个参考,印证我的想法是不是 OK 的,取长补短。
指导在服务边缘构建控制面来管理 Envoy Proxy,让它作为服务网关或者在服务网格中使用
Envoy 已经成为了一个非常流行的网络组件了。Matt Klein 几年前写过一篇博文,就在讨论 Envoy 的动态配置 API 和它如何成为 Envoy 被采用越来越多的原因之一。他在博文中说这是“统一数据面板 API”(UDPA)。随着很多其它项目都采用 Envoy 作为其核心组件,可以毫不夸张的说 Envoy 不仅仅建立了标准 API,而且对于应用 7 层的网络解决方案来说:“Envoy 已经变成了在云原生架构下的统一数据平面”。
而且,由于 Envoy 的统一数据平面 API,我们可以看到业界开发了很多针对基于 Envoy 技术设施进行配置管理的管理系统。本文将会深入讨论为 Envoy 构建一个控制平面需要什么,大家可以通过这些信息来评估什么样的基础设施最适合你的组织和场景。因为这个是一个很大的话题,作者会出一个系列文章来对此进行详细说明(后面我也会挑一些我感兴趣的文章进行翻译学习)。
在 EnvoyCon/KubeCon 论坛有很多非常好的讨论,这里好多组织都分享了他们采用 Envoy 的经验,也包括了如何构建他们自己的控制平面。下面是一些他们为什么选择自建控制平面的原因:
现有的解决方案构建在不同的数据平面上,而且已经有了控制平面,需要在这里兼容 Envoy。
为不包含任何开源基础设施来构建,或者使用其它的 Envoy 控制平面(比如:VMs, AWS,ECS 等)。
不需要使用所有 Envoy 的特性,只是需要一部分。
为了更好适配自己的工作流和工作视图而需要为 Envoy 配置开发专属领域的 API 对象模型。
<