当前服务网格基于Envoy构建数据面能力(包括sidecar、网关等),Envoy本身具备丰富的插件及扩展能力,当前服务网格提供基于自定义EnvoyFilter以及内置插件的扩展能力,满足大部分业务场景需求。
自定义EnvoyFilter
Envoy作为网格数据面,具备丰富的四层和七层插件,在Envoy中称为Filter;服务网格对Envoy的插件做了封装,提供了自定义的EnvoyFilter CRD。由于可以通过EnvoyFilter直接修改数据面配置,这种方式非常灵活,对使用者也有一定要求,需要对服务网格中Envoy的配置有所了解。
在服务网格中通过EnvoyFilterTemplate定义Envoy过滤器模板,再通过EnvoyFilterTemplateBinding将过滤器模板绑定到数据面上,实现EnvoyFilter的管理,具体参考后续的文档。
内置插件
除了通过自定义EnvoyFilter实现网格数据面扩展,服务网格还提供了一组内置插件,这些插件大多基于Envoy原生能力,直接开箱即用。遇到需要使用插件的场景时,建议先查看内置插件是否可以满足需求,如果不能满足再考虑自定义插件。