AmeshApache APISIX 的服务网格库

联合创作 · 2023-10-01

Amesh 是 Apache APISIX 的服务网格库。它适配了 xDS 协议,可以从如 Istio 的控制平面中接收数据,并生成 APISIX 所需的数据结构,使得 APISIX 能够在服务网格领域作为数据面发挥作用。

依靠 Amesh,APISIX 可以工作在服务网格模式下,不使用传统的 etcd 作为数据中心,而是使用 shdict 与 Amesh 库直接进行数据交换,避免了额外的性能损耗,使得大规模部署成为可能。

通过使用 Amesh,可以在服务网格领域获得 APISIX 具备的高性能、丰富的流量管理功能、易扩展性等多种好处。

Amesh 的架构

Amesh 通过适配 xDS 协议,可以让 APISIX 替代 Istio 所使用的 envoy 组件来接管集群流量。在实际使用中,APISIX 将作为 Pod 的 sidecar 接管网格内的所有流量。

Amesh的架构如图所示:

 

 

 

 

 

 

 

 

 

通过 xDS 协议,Amesh 可以将 Istio 作为控制面,从 Istio 侧获取配置信息,并将其转义为 APISIX 所需的配置。

网格内部的所有流量都将由 APISIX 接管。其中,APISIX 的配置中心被设置为 Amesh,这使得 APISIX 脱离 etcd 的依赖。Amesh 为 APISIX 提供了一种从 xDS 协议中获取配置信息的方式。

此外,Amesh 在 v0.2 中提供了额外的可选控制面组件:amesh-controller。Amesh controller 增加了 Amesh 专用的 CRD,来为 APISIX 配置一些 Istio 所不支持的额外功能。

带有 amesh-controller 的架构如图所示:

 

 

 

 

 

 

 

Amesh controller 是可选组件。在未安装时,Amesh 也能正常使用 Istio 的原生能力提供服务。在安装了 amesh-controller 之后,Amesh 能自动检测到控制面的加入,并动态地从中获取配置,而无需重启。

Amesh controller 为 Amesh 提供了 Istio 无法提供的 APISIX 特有功能。例如,在安装 amesh-controller 后,用户能为服务配置 APISIX 原生具备的海量插件。

浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报