istio架构【数据平面与控制平面】


架构综述

Istio在逻辑上分为数据平面(data plane)和控制平面(control plane)两部分:

  • 数据平面:由一系列以sidecar形式部署的智能代理(Envoy)组成。这些代理可以调节和控制微服务及混合器(Mixer)之间的所有网络通信
  • 控制平面:负责管理和配置代理来路由流量,除此之外控制平面还配置混合器(Mixer)以执行策略和收集遥测数据

istio 架构

数据平面

  • Envoy是以C++开发的高性能代理,用于接管服务网格中所有服务的所有inboundoutbound流量。 Istio实际上利用了很多Envoy已有的特性,例如:服务的动态发现、负载均衡、TSL终止、HTTP/2和gRPC代理、断路器、健康检查、基于百分比流量拆分的灰度发布、故障注入以及丰富的度量指标。
  • Envoy以sidecar部署,与对应的服务在同一个Kubernetes Pod中。这样的部署方式使得Istio可以将大量了关于流量行为的信号作为属性(Attribute)提取出来。这些属性可以被用来在混合器(Mixer)中执行策略决策,并发送给监控系统,以提供整个Service Mesh的行为信息。Sidecar模式允许我们将istio的功能添加到现有的部署中,而无需重构或重写现有的代码。

控制平面

  • Pilot为 Envoy sidecar 提供服务发现功能,为智能路由(例如 A/B 测试、金丝雀部署等)和弹性(超时、重试、熔断器等)提供流量管理功能。 将控制流量行为的高级路由规则转换为Envoy的相关配置,并在运行时将它们传播到sidecar。

  • Mixer分为PolicyTelemetry两个子模块。Policy用于向Envoy提供准入策略控制,黑白名单控制,速率限制等相关策略;Telemetry为Envoy提供了数据上报和日志搜集服务,以用于监控告警和日志查询。

  • Galley在Istio中,承担配置的导入、处理和分发任务,为Istio提供了配置管理服务,提供在k8s服务端验证Istio的CRD 资源的合法性的方法,是整个控制面的配置管理中心。

  • Citadel主要关注安全,为服务之间以及与终端用户提供认证、授权、凭据管理等功能。

类比

istio 架构


文章作者: wuzhiyong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 wuzhiyong !
评论
 上一篇
influxdb安装 influxdb安装
influxdb简介influxdb是一款常年在db-engine使用排名第一的时序数据库,提供存储管理、用户管理、http接口、各类语言API接口。 TSM时序数据使用类似 LSM Tree 的 TSM Tree (Time Series
2020-02-25
下一篇 
Service Mesh简介 Service Mesh简介
简介服务网格(Service mesh)是服务间通信的基础设施层。它对全局流量和通信进行监控和管理,提供包括可观察性、流量转移(用于灰度发布)、弹性能力(例如断路和重试/超时)等一系列功能,并为服务之间的通信提供双向 TLS 认证能力,让网
2020-01-15
  目录