首页 > 其他分享 >Istio架构设计有4大关键目标

Istio架构设计有4大关键目标

时间:2022-11-01 17:55:39浏览次数:61  
标签:架构设计 服务 策略 代理 Istio 关键 sidecar

 

Istio作为服务网格技术的代表作,通过sidecar代理拦截了微服务之间的所有网络通信,用统一方式实现服务之间的负载均衡、访问控制、速率限制等功能。应用无须了解底层服务访问细节,sidecar和应用可以独立升级,实现了应用逻辑与服务治理能力的解耦。Istio架构设计有4个关键目标,即:最大化透明度、可扩展性、可移植性、策略一致性。

一、Istio架构

Istio架构示意图,逻辑上分为数据平面和控制平面。

 图1 Istio架构

数据平面由一组以sidecar方式部署的智能代理(Envoy)组成。这些代理可以调节和控制微服务及Mixer之间所有网络通信。

控制平面通过负责管理和配置代理来路由流量∶

●Pilot∶负责流量管理。

●Mixer∶负责提供策略控制和遥测收集。

●Citadel∶负责提供通信的安全保护。

 

二、Istio架构设计的关键目标

Istio 架构设计中有几个关键目标,这些目标对于系统能够应对大规模流量和提供高性能服务处理至关重要。

(一)最大化透明度

若想Istio被采纳,应该让运维和开发人员只需付出很少代价就可以从中受益。为此, Istio 将自身自动注入到服务间所有网络路径中。Istio使用sidecar代理来捕获流量,并且在尽可能的地方自动编程网络层,将流量路由到这些代理,而无须对已部署的应用程序代码进行任何改动。在Kubernetes中,代理被注入到Pod中,通过编写iptables规则来捕获流量。注入 sidecar代理到 Pod 中并且修改路由规则后, Istio 就能够调解所有流量。这个原则也适用于性能。当lstio应用于部署时,运维人员可以发现,为提供这些功能而增加的资源开销很小。所有组件和API在设计时都必须考虑性能和规模。

(二)可扩展性

随着运维人员和开发人员越来越依赖Istio提供的功能,系统必然和需求一起成长。虽然我们期望自己继续添加新功能,但是预计最大的需求是扩展策略系统、集成其他策略和控制来源,并将网格行为信号传播到其他系统进行分析。策略运行时支持标准扩展机制以便插入到其他服务中。此外,它允许扩展词汇表,以允许基于网格生成的新信号来执行策略。

(三)可移植性

使用 lstio 的生态系统将在很多维度上有差异。lstio必须能够以最小的代价运行在任何云或预置环境中。将基于Istio的服务移植到新环境应该是轻而易举的,而使用Istio将一个服务同时部署到多个环境中也是可行的。

(四)策略一致性

在服务间的API调用中,策略的应用使得可以对网格间行为进行全面控制,但对于无须在API级别表达的资源来说,对资源应用策略也同样重要。例如,将配额应用到机器学习训练任务消耗的CPU数量上,比将配额应用到启动这个工作的调用上更为有用。因此,策略系统需要从代理中独立出来作为独特的服务来维护,并应具有自己的API。

标签:架构设计,服务,策略,代理,Istio,关键,sidecar
From: https://www.cnblogs.com/tiduyun/p/16848610.html

相关文章

  • Istio egress gateway
    EgressGateway逻辑示意图EgressGateway配置要点各SidecarEnvoy上访问特定外部主机的流量,要路由至EgressGatewayEgressGateway要将相应的流量路由至相应的外部......
  • 理解vim工作的几个关键字
    理解vim工作的几个关键字下面我们再来认识一下vim,理清下面的vim的几个名词,这样方便我们以后更好的去使用和进阶vim:缓冲区(Buffer),窗口(Window),标签(Tab),标记......
  • Istio workloadEntry实例
    服务说明在网格外部运行有nginx服务,有两个实例Nginx2001:监听地址为172.29.1.201:8091,Nginx版本为1.20Nginx2002:监听地址为172.29.1.202:8091,Nginx版本为1.20N......
  • Istio ServiceEntry实例
    服务说明在网格外部运行有nginx服务,有两个实例Nginx2001:监听地址为172.29.1.201:8091,Nginx版本为1.20Nginx2002:监听地址为172.29.1.202:8091,Nginx版本为1.20N......
  • Java多线程-线程关键字(二)
    Java中和线程相关的关键字就两:volatile和synchronized。volatile以前用得较少,以后会用得更少(后面解释)。它是一种非常轻量级的同步机制,它的三大特性是:1、保证可见性,即强制......
  • C++:44---关键字virtual、override、final
    一、虚函数概念:在函数前面加virtual,就是虚函数虚函数的一些概念:只有成员函数才可定义为虚函数,友元/全局/static/构造函数都不可以虚函数需要在函数名前加上关键字virtual成......
  • Istio 流量拦截
    Sidecar代理方式简介Kubernetes平台上,EnvoySidecar容器与application容器于同一个Pod中共存,它们共享NETWORK、UTS和IPC等名称空间,因此也共用同一个网络协议栈;EnvoySideca......
  • 当前SAT主要关键技术及其相关文献2022-11-1
    摘录自:TasniemNasserAl-Yahya, MohamedElBachirMenai, HassanMathkour:Boosting the Performance of CDCL-Based SAT Solvers by Exploiting Backbon......
  • 深入理解 virtual 关键字
      引言为什么会写这篇文章?主要是因为项目中的代码大量使用了带virtual关键字的类,想通过本文浅谈一下。virtual并没有什么超能力可以化腐朽为神奇,它有其存在的理由,但......
  • java 中的final关键字
    final关键字是最终的意思,可以修饰类、变量、方法,在使用时具有如下特点:1.被final修饰的类,不能被继承权限修饰符finalclass类名{}2.被final修饰的方法,不能被重写(覆......