day1
Service Mesh
Service Mesh 又称为服务网格,服务网格是一种处理服务间通信的基础设
施层。服务网格尤其适用于云原生场景下帮助应用程序在复杂的服务拓扑间可
靠地传递请求。在实际使用中,服务网格一般是通过一组轻量级网络代理来执
行治理逻辑的。轻量网络代理与应用程序部署在一起,但应用程序感知不到代
理的存在,还是使用原来的方式工作。
服务网格选择 Istio
Istio 解决了生产大规模集群的性能、资源利用率和可靠性问题,提供了众
多生产中实际应用的新特性,以及达到企业级可用的标准。 首先,在控制面上
,Istio 作为一种全新的设计,在功能、形态、架构和扩展性上提供了远超服务
网格的能力范围,它基于 xDS 协议提供了一套标准的控制面规范,向数据面传
递服务信息和治理规则。 然后,在数据面的竞争上,Istio 标准数据面 Envoy 是
使用 C++开发的,比用 Rust 开发的 Linkerd Proxy 更能满足服务网格中对透明代
理的轻量高性能要求。
Istio 工作机制
• 自动注入:创建应用程序时自动注入 Sidecar 代理(创建业务 app 容器的
同时创建 Sidecar 容器)
• 流量拦截:将进出 app 容器的流量拦截到 Sidecar 上
• 服务发现:服务发起方通过 Pilot 组件获取目标服务的实例地址列表
• 负载均衡:服务发现后根据配置的负载均衡策略选择服务实例,并连接
对应的实例地址
• 流量治理:将不同特征的流量分发到目标服务的 v1 或 v2 版本
评论0