Istio最全详解(图文全面总结)

来源:mikechen的互联网架构


Istio是下一代的微服务,也是云原生的核心基石,重要性不言而喻,下面我就全面来详解Istio





Istio

Istio是由 Google、IBM、Lyft 公司共同开发的,是服务网格Service Mesh的一种实现,是下一代微服务的典型代表。

Istio最初由这些公司共同发布,目的是为了解决微服务架构中复杂的服务间通信、安全性、监控和管理等问题。

  1. 流量管理: Istio 可以帮助管理服务之间的流量,包括:流量路由、负载均衡、故障注入...等。

  2. 安全性: 包括服务间的:身份认证、流量加密、访问控制、安全策略等,保护服务不受恶意攻击。

  3. 监控: 除此之外,Istio 支持对服务的实时监控和可观察性,提供了丰富的指标、日志和跟踪信息。

  4. 故障排除: Istio 还可以帮助用户,识别和解决微服务架构中的故障,包括:请求超时、异常请求...等。


Istio原理

Istio的核心原理,是通过在微服务之间插入一个智能的代理(称为 Sidecar),来管理和控制服务之间的通信。

整体设计,如下图所示:

Sidecar因为类似,连接到摩托车的边车,如下图所示:

所以,Sidecar,也叫边车模式。

在微服务架构中,Sidecar 模式是指将额外的辅助容器,通常是代理、或附加功能。

这个辅助容器与主容器紧密耦合,类似于辅助交通工具(边车)与主要交通工具(车辆)之间的关系,因此被称为 Sidecar边车。

Sidecar 通过拦截进出服务的所有流量,从而,实现了对流量的监控、路由、负载均衡、安全性、故障注入等功能。


Istio架构

Istio的架构,由两部分组成:数据平面、和控制平面。

如下图所示:

1、数据平面(Data Plane)

数据平面(Data Plane),是 Istio 中负责处理实际请求流量的部分,它由每个微服务实例中运行的 代理(Sidecar)组成。

负责拦截所有进出服务的流量,并根据控制平面的指令执行流量,比如:管理、安全策略、监控等功能。

2、控制平面(Control Plane)

控制平面是 Istio 中用于配置和管理数据平面的部分,包括了一系列的组件,如:Pilot、Citadel、Galley 和 Mixer。

1)Pilot

Pilot 是 Istio 控制平面的核心组件之一,负责服务发现和流量路由。

它从服务注册中心(如:Kubernetes 中的 kube-proxy )中获取服务的信息,并根据用户定义的路由规则。

2)Citadel

Citadel 是 Istio 中负责证书和身份管理的组件,它为服务发放证书,用于对服务之间的通信进行加密,并提供了服务身份认证和授权功能。

3)Galley

Galley 是 Istio 中的配置验证和转换组件,它负责验证用户提交的配置文件的合法性。

以上



请使用浏览器的分享功能分享到微信等