Istio架构

Posted 儿童编程咨询

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Istio架构相关的知识,希望对你有一定的参考价值。

       一个istio服务网格在逻辑上分为数据平面和控制平面。

       数据平面由一组被部署为sidecar的智能代理构成,该代理调整和控制所有微服务之间的网络通信。

      控制平面负责管理和配置代理来实现路由通信,以及在运行时强制执行策略。

      下图显示了构成每个平面的不同组件: 

       Istio架构


Envoy 

       istio使用一个Envoy 代理的扩展版本,用C++开发一个高性能的代理,在服务网格里调解所有服务的入站和出站流量。istio利用Envoy 的许多内置功能,如动态服务发现、负载平衡、TLS协议终止,HTTP/2 & GRPC代理、断路器、健康检查、基于百分比流量分割的阶段展示,故障注入和丰富的度量。

        对于同Kubernetes pod中的相关服务,Envoy 被部署为一个sidecar。这让istio提取丰富的流量行为属性信息,反过来又可以用在Mixer中执行决策,并发送到监控系统,以提供关于整个网格行为的信息。sidecar代理模型还可以对现有的部署添加istio能力,而且不需要重构或重写代码。您可以阅读更多关于为什么我们在istio设计目标(下一节,敬请期待)中选择这种方法的原因。


Mixer

     Mixer负责在服务网格上强制执行访问控制和使用策略,并从Envoy 代理和其他服务收集遥测数据。这个代理提取请求级别属性,这些属性在被发送到Mixer进行评估。关于这个属性提取和策略评估的更多信息可以在Mixer配置(后续章节介绍)中找到。Mixer包括灵活的插件模型,该模型使Mixer与多种宿主环境和基础设施的后端通过接口连接,从这些细节里抽象出Envoy 代理和Istio管理的服务。


Pilot 

      Pilot 负责收集和验证配置和传播它的各种istio组件。它从Envoy Mixer抽象出特定于环境的实现细节,向用户提供与底层平台无关的用户服务的抽象表示。此外,流量管理规则(即通用的四层规则和7层HTTP / GRPC路由规则)可以通过Pilot在运行时编程实现。


Istio-Auth 

      Istio-Auth 使用成熟的带有内置的身份和凭证管理的TLS提供强大的service-to-service、终端用户的认证。在服务网格中它可以用来升级非加密流量,并提供给运维人员基于服务身份而不是网络控制的执行策略的能力。istio未来的版本将通过采用多种访问控制机制,包括属性和基于角色的访问控制以及授权挂钩,添加谁可以访问你的服务的API或资源的细粒度的访问控制和审计监督控制。

以上是关于Istio架构的主要内容,如果未能解决你的问题,请参考以下文章

云原生 | 从零开始学istio二Istio核心特性与架构

Istio的架构设计

Istio微服务治理网格基本使用以及与Kubernetes集成的架构

Service Mesh服务网格架构

Service Mesh 开源实现之 Istio 架构概览

ServiceMesh & Istio