Istio架构

image.png

Istio的架构从逻辑上分成数据平面(Data Plane)和控制平面(Control Plane)。是否觉得似曾相识?没错,Kubernetes的架构也具有相似的结构,分为控制节点和计算节点。毫无疑问,这样的设计可以很好地解耦各个功能组件。

数据平面:由一组和业务服务成对出现的Sidecar代理(Envoy)构成,它的主要功能是接管服务的进出流量,传递并控制服务和Mixer组件的所有网络通信(Mixer是一个策略和遥测数据的收集器,稍后会介绍)。
控制平面:主要包括了Pilot、Mixer、Citadel和Galley共4个组件,主要功能是通过配置和管理Sidecar代理来进行流量控制,并配置Mixer去执行策略和收集遥测数据(Telemetry)。

2.3 Istio的核心控件

2.3.1 Envoy

从2.2节的架构图可以看出,Istio的数据平面就是指代理。Istio选择Envoy作为Sidecar代理,Envoy本质上是一个为面向服务的架构而设计的7层代理和通信总线。Envoy基于C++11开发而成,性能出色。除了具有强大的网络控制能力外,Envoy还可以将流量行为和数据提取出来发送给Mixer组件,用以进行监控。

Envoy在网络控制方面的主要功能如下。

  • HTTP 7层路由。
  • 支持gRPC、HTTP/2。
  • 服务发现和动态配置。
  • 健康检查。
  • 高级负载均衡。

我们知道,在Kubernetes环境中,同一个Pod内的不同容器间共享网络栈,这一特性使得Sidecar可以接管进出这些容器的网络流量,这就是Sidecar模式的实现基础。Envoy是目前Istio默认的数据平面,实际上因为Istio灵活的架构,完全可以选择其他兼容的产品作为Sidecar。目前很多服务网格产品都可以作为Istio的数据平面并提供集成。

2.3.2 Pilot

Pilot 是Istio实现流量管理的核心组件,它主要的作用是配置和管理Envoy代理。比如可以为代理之间设置特定的流量规则,或者配置超时、重试、熔断这样的弹性能力。Pilot会将控制流量行为的路由规则转换为Envoy的配置,并在运行时将它们广播到Envoy。另外,Pilot还能够把服务发现机制抽象出来并转换成API分发给Envoy,使得后者具有服务发现的能力。

简单来说,Pilot的主要任务有两个。

  • 从平台(如Kubernetes)获取服务信息,完成服务发现。
  • 获取Istio的各项配置,转换成Envoy代理可读的格式并分发。

图2-2展示了Pilot架构。Pilot维护了一套独立于平台的服务规则,并提供了一个平台适配器,以便接入各种不同的平台。Rules API对运维人员开放,使得他们可以设置想要的流量规则,Pilot会把这些配置好的规则通过Envoy API分发给Envoy代理,以使其执行指定的规则。

image.png

图2-2 Pilot架构

Pilot还公开了用于服务发现并且可以动态更新负载均衡和路由表的API。

2.3.3 Mixer

Mixer的主要功能是提供策略控制,并从Envoy代理收集遥测数据。每次网络通信时Envoy代理都会向Mixer发出预检要求,用来检测调用者的合法性。调用之后Envoy代理会发送遥测数据供Mixer收集。一般情况下Sidecar代理可以缓存这些数据,不需要频繁地调用Mixer。

适配器是Mixer的重要组成部分,它本质上是一个插件模型,每个插件叫作适配器。这项特性使得Mixer可以接入几乎任意的(只要定义好接口)后端基础设施。比如可以选择接入不同的日志收集器、监控工具和授权工具等;可以在运行时切换不同的适配器或者是打开(关闭)它们;还可以自定义适配器以满足特定需求。适配器极大地提高了Mixer的扩展性,它让Istio的功能拥有了更多可能性。图2-3展示了Mixer的架构图并展示了它和Envoy的交互方式。

image.png

图2-3 Mixer架构

2.3.4 Citadel

Citadel是与安全相关的组件,主要负责密钥和证书的管理。它可以提供服务间和终端用户的身份认证,还可以加密服务网格中的流量。在后面介绍安全主题的第8章中,我们会详细说明它是如何和其他组件协同工作的。

2.3.5 Galley

在2019年3月份发布的1.1版本中,Galley作为一个独立的组件被添加到了架构当中(在此之前的版本中Galley并未独立出现),它现在是Istio主要的配置管理组件,负责配置的获取、处理和分发。Galley使用了一种叫作MCP(Mesh Configuration Protocol,网格配置协议)的协议与其他组件进行通信。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容