过滤机

如何高效地编写Envoy过滤器第1部分

发布时间:2022/5/7 14:54:51   
中科与白癜风患者心心相印 http://pf.39.net/bdfyy/bdfyc/140126/4333190.html

作者:VenilNoronha

Envoy是一个可编程的L3/L4和L7代理,支持当今的服务网格解决方案,包括Istio、AWSAppmesh、ConsulConnect等。Envoy的核心提供几个过滤器,提供了一组丰富的特性,用于观察、保护和将网络流量路由到微服务。在这一系列的文章中,我们将了解Envoy过滤器的基础知识,并学习如何通过实现定制过滤器来扩展Envoy以创建有用的特性!

介绍

Envoy提供一组API,允许用户和控制平面静态和动态地配置代理。通过配置侦听器(Listener),用户可以通过代理启用流量流,然后使用几个过滤器(Filter)增强数据流。使用这些过滤器的组合,Envoy可以测量、转换和执行更高阶的访问控制操作。

顾名思义,侦听器允许Envoy侦听配置地址上的网络流量。然后,每个侦听器定义一组位于数据路径中的过滤器,共同组成过滤器链(filterchain)。通过组合和安排一组过滤器,用户可以配置Envoy来转换协议消息、生成统计信息、执行RBAC等。Envoy提供了许多内置的过滤器,它还提供了API让你创建自己的过滤器!

过滤器的类型

Envoy目前提供了三种类型的过滤器,它们组成一个层次过滤器链。

侦听器过滤器(ListenerFilters)

网络过滤器(NetworkFilters)

HTTP过滤器(HTTPFilters)

侦听器过滤器

侦听器过滤器在初始(预)连接阶段访问原始数据并操作L4连接的元数据。例如,TLS检查器过滤器(TLSInspectorFilter)标识连接是否经过TLS加密,并解析与该连接关联的TLS元数据。

网络过滤器

网络过滤器访问和操作L4连接上的原始数据,即TCP数据包。例如,TCP代理过滤器(TCPProxyFilter)将客户端连接数据路由到上游主机,它还生成连接统计数据。

HTTP过滤器

HTTP过滤器在L7上运行,并由最终的网络过滤器(即HTTP连接管理器,HTTPConnectionManager)创建。这些过滤器访问和操作HTTP请求和响应。例如,gRPC-JSON转码器过滤器(gRPC-JSONTranscoderFilter)为gRPC后端提供了一个RESTAPI,并将请求和响应转换为相应的格式。

请注意,Envoy正在不断发展,我们正在增加对QUIC协议的支持。这意味着过滤器API现在正在增强,并将很快支持UDP过滤器!

Envoy过滤器的好处

如前所述,Envoy过滤器为用户提供了几个好处。

可以创建一个中间层,以便在与不兼容的服务器通信时优雅地处理客户端。

你可以以透明和一致的方式度量API和服务的使用情况。

代理可以执行协议转换,允许不同的协议互操作。

代理可以通过过滤器做出智能路由决策(例如速率限制)。

这些过滤器可以通过一个称为过滤器状态(FilterState)的机制彼此共享数据。通过共享状态,像MySQL过滤器这样的过滤器可以与另一个过滤器(像RBAC过滤器)共享所访问的资源和执行的操作有关的信息,从而提供高阶RBAC解决方案。请注意,当前版本的MySQL过滤器依赖于动态元数据(DynamicMetadata)来共享状态,现在不提倡使用动态元数据来共享状态,而是提倡使用过滤器状态。

总结

Envoy通过内置过滤器提供了丰富的特性,可以通过侦听器配置快速利用这些特性。过滤器链(filterchain)范式是一种强大的机制,Envoy允许用户通过扩展它的API来实现自己的过滤器。

在下一篇文章中,我们将了解Envoy的过滤器API,并学习如何创建自己的过滤器!

...

本文是与Envoy的高级维护人员HarveyTuch合作撰写的。想了解更多关于服务网格的内容,请到我的个人博客venilnoronha.io。

免责声明:我的帖子是我自己的,不一定代表VMware的立场、策略或观点。

点击文末阅读原文进入网页了解更多。

两分钟感受一下KubeCon+CloudNativeCon上海的现场气氛

KubeCon+CloudNativeCon+OpenSourceSummit

大会日期:年6月24至26日

活动邀请:门票有限,尽快报名

CNCF推出最终用户门票福利

CNCF邀请你加入最终用户社区

同场活动

AlibabaCloudHands-onlab:Kubernetes动手实践课堂

ApacheServiceCombMeetup中国峰会

中国原创CNCF项目社区沙龙

CloudNativeElite

CNCF最终用户合作伙伴峰会

持续交付峰会

DPDK中国峰会

Kubernetes贡献者峰会

Huawei–HuaweiLiteOS,丰富的端云协同能力

开放数据自主管理迷你峰会

开放异构计算框架介绍

ServerlessIsMoreCloudNativeMeetup

ServerlessIsMoreHands-onWorkshop

服务网格峰会

SOFAStack云原生工作坊

官方注册现已开通,票价如下(5月3日-6月6日):

标准注册:人民币(晚注册,即时可省!)

贵宾注册:人民币(晚注册,即时可省!)

个人或学术注册(仅邀请):人民币(晚注册,即时可省!需要发送电子邮件至events

cncf.io申请。请以英文书写,主题说明参加本次中国大会,内容说明申请个人注册,还是学术注册。申请获批准将收到邀请码。)

扫描

转载请注明:http://www.aideyishus.com/lkcf/180.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章