深入理解Istio:云原生服务网格进阶实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.6 Envoy

Envoy是Istio服务网格中默认的Sidecar,Istio在Envoy的基础上按照 Envoy的xDS协议扩展了其控制平面。在讲解Envoy xDS协议之前还需要先熟悉下Envoy的基本术语。下面列举了Envoy中的基本术语及其数据结构解析。

•Downstream(下游):下游主机连接到Envoy,发送请求并接收响应,即发送请求的主机。

•Upstream(上游):上游主机接收来自Envoy的连接和请求,并返回响应,即接收请求的主机。

•Listener(监听器):监听器是命名网地址(例如,端口、UNIX Domain Socket等),下游客户端可以连接这些监听器。Envoy暴露一个或多个监听器给下游主机连接。

•Cluster(集群):集群是指Envoy连接的一组逻辑相同的上游主机。Envoy通过服务发现来发现集群的成员,并且可以通过主动健康检查确定集群成员的健康状态。Envoy通过负载均衡策略决定将请求路由到集群的哪个成员。

Envoy中可以设置多个Listener,每个Listener中又可以设置filterchain(过滤器链表),而且过滤器是可扩展的,这样就可以更方便地操作流量了,例如,设置加密、私有RPC等。

xDS协议是由Envoy提出的,目前是Istio中默认的Sidecar 代理。但是,只要实现了xDS协议,理论上就可以作为Istio中的Sidecar 代理,例如,蚂蚁集团开源的MOSN。