Istio架构原理详解(图文全面总结)

Istio架构原理详解(图文全面总结)

Istio是下一代的微服务,也是云原生的核心基石,下面我就全面来详解Istio架构原理@mikechen

Istio

Istio是一个开源的服务网格(Service Mesh)解决方案,用于管理微服务架构中的服务通信、安全性、流量控制、和监控。

Istio主要是由: Google等公司共同开发的,是一个功能丰富、可扩展的服务网格产品,是下一代微服务的典型代表。

Istio架构原理详解(图文全面总结)

Istio可以控制和管理微服务之间的流量,并提供:灵活的路由规则、负载均衡、故障恢复等功能。

并且,Istio是一个与Kubernetes紧密结合的服务网格解决方案,它在云原生场景中发挥着重要的作用。

 

Istio架构

Istio的架构,主要包括:数据平面(Data Plane)、控制平面(Control Plane)..等组件。

如下图所示:

Istio架构原理详解(图文全面总结)

 

1、数据平面(Data Plane)

Istio的数据平面主要由:Envoy代理构成,Envoy是一个高性能的边缘和服务代理,负责实际处理和转发服务之间的流量。

在 Istio 中,Envoy 通常被用作 Sidecar 的实现,作为每个 Pod 的 Sidecar 部署。

Istio 中的服务实例就好比摩托车,而每个服务实例附加的 Sidecar ,就好比连接到摩托车的边车。

如下图所示:

Istio架构原理详解(图文全面总结)

边车:通常指的是附加在摩托车侧面的附加座位、或车篮,用于运输额外的乘客、或货物。

类似地,在 Istio 中,Sidecar 也是附加在主服务实例旁边的辅助容器,用于处理服务实例的流量、和执行各种功能。

比如,包含:执行流量管理、安全性、监控等…功能,类似于边车跟随摩托车,处理额外的乘客或货物。

1)流量管理

Sidecar 负责:处理 Pod 内服务之间的所有流量,拦截进出的请求,并根据 Istio 中定义的流量规则进行路由、负载均衡等操作。

2)安全性

Sidecar 提供了对 Pod 内服务通信的加密、认证和授权,它可以对请求进行认证,并在需要时执行流量加密,确保通信的安全性。

3)监控

Sidecar 生成详细的访问日志和指标数据,记录 Pod 内服务之间的流量信息,这些日志和指标可以用于监控和分析服务的运行状况,以及诊断和调试问题。

 

2、控制平面(Control Plane)

Istio :通过控制平面(Control Plane)、和代理(Proxy)之间的通信,来实现各种服务治理功能。

控制平面,负责管理整个服务网格的配置和策略,包括:流量管理、安全性、监控等方面的配置。

它由多个组件组成,如: Pilot、Citadel、Galley 和 Mixer。

  • Pilot:Pilot负责服务发现、流量管理和负载均衡,它从服务注册表中获取服务的位置信息,并生成Envoy的配置,以实现请求的路由和负载均衡。
  • Mixer:Mixer负责策略执行和监控收集,它可以执行访问控制、流量控制等策略,并收集和记录服务的指标和日志数据。
  • Citadel:Citadel负责安全认证和加密,它提供了服务之间的强制认证、流量加密等安全功能,保护服务之间的通信免受攻击和数据泄露的威胁。

总之,通过这些组件共同构成了 Istio 的控制平面,通过协同工作来配置、和管理数据平面中的 Envoy 代理,实现了对服务网格的集中化管理和控制。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    暂无讨论,说说你的看法吧