一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Istio的接口级别服务治理方法及相关装置与流程

2022-08-03 01:23:45 来源:中国专利 TAG:

基于istio的接口级别服务治理方法及相关装置
【技术领域】
1.本发明涉及信息技术领域,尤其涉及一种基于istio的接口级别服务治理方法及相关装置。


背景技术:

2.微服务应用和云原生容器技术的出现,由于以往的业务流程和流量治理规则耦合程度高的痛点,推动了人们对服务网格的需求。服务网格是服务之间通信的控制器,随着越来越多容器应用的开发和部署,企业可能会有成百上千或数万计的容器在运行,对于管理上述容器或服务之间的通信则成为了云原生技术的巨大挑战。为了解决上述通信问题,包括服务间的负载均衡、流量管理、路由、运行状况监视、安全策略及服务间身份验证,以istio为代表的服务网格应运而生。
3.在开源的istio方案中,实现了微服务级别的服务治理能力,其流量治理以基础设施的方式提供给用户非侵入的流量治理能力,用户只需关注自己的业务逻辑开发,无须关注服务访问管理。
4.但是上述istio流量治理的策略均是基于实例级别或者微服务级别的,无法对实例级别或者微服务实例中的某一个接口进行流量治理。示例地,若某一微服务实例是订单中心,其中存在多个接口,比如订单的查询、订单的下单等操作,当查询接口请求量较大时,导致其他接口查询缓慢,在istio中使用熔断或者降级的策略,那么该策略将应用于整个微服务实例的所有接口,导致微服务实例的所有接口均执行熔断或者降级,无法对微服务实现精细化服务治理。


技术实现要素:

5.针对现有技术存在的不足,本技术的目的在于提供基于istio的接口级别服务治理方法及相关装置,实现对微服务的精细化治理,提升治理的灵活性。
6.为实现上述目的,本发明提供了如下技术方案:
7.第一方面,提供一种基于istio的接口级别服务治理方法,以不同底层平台和istio服务网格作为基础架构,其特征在于,包括:
8.获取所述istio服务网格中各个envoy代理,将每一所述envoy代理分别与业务应用部署于同一pod容器中,同一类的所述pod容器对应抽象出一个微服务;
9.通过pilot组件对多个所述底层平台进行服务发现和流量规则发现;
10.所述istio服务网格中改进后的xds协议包括所有接口服务信息的function发现服务,通过function发现服务以将服务信息和流量规则下发至所有所述envoy代理中,以对微服务的接口服务实现流量治理。
11.本发明进一步设置为:所述底层平台包括有kubernetes、mesos和cloudfoundry中一个或多个。
12.本发明进一步设置为:所述通过pilot组件对多个所述底层平台进行服务发现和
流量规则发现,具体步骤包括:
13.通过平台适配器监听所述底层平台以获得服务信息和流量规则,以将服务信息和流量规则转换为istio抽象模型可理解的格式;
14.基于所述envoy代理的订阅,通过改进后的xds协议将服务信息和流量规则分发至所有所述envoy代理中。
15.本发明进一步设置为:所述通过改进后的xds协议以将服务信息和流量规则下发至所有所述envoy代理,具体步骤包括:
16.所述pilot组件响应于所述envoy代理发起的discoveryrequest类型的请求进行动态加载配置,配置加载成功则进行ack,否则进行nack。
17.本发明进一步设置为:所述改进后的xds协议包括所有接口服务信息的function发现服务,其中调用微服务的接口服务具体步骤包括:
18.通过所述改进后的xds协议以将服务信息和流量规则下发至所有所述envoy代理;其中,与调用微服务对应的所述envoy代理检查所述底层平台中是否配置有目标微服务的接口信息;
19.若是所述底层平台不存在所述目标微服务的接口信息,则流量被拦截;
20.若是所述底层平台存在所述目标微服务的接口信息,则流量放行到达所述目标微服务的目标pod容器中。
21.本发明进一步设置为:所述与调用微服务对应的所述envoy代理检查所述底层平台中是否配置有目标微服务的接口信息,具体步骤包括:
22.通过控制配置开关的启闭可决定所述pilot组件是否对所述目标微服务下的所有接口进行配置目标接口服务信息;
23.若所述配置开关处于开启状态则对所述目标微服务下的所有接口进行配置目标接口服务信息,否则不对所述目标微服务下的所有接口进行配置目标接口服务信息。
24.本发明进一步设置为:所述function发现服务的接口服务信息包括有接口名称和接口所归属的微服务名称。
25.第二方面,提供一种基于istio的接口级别服务治理装置,其特征在于,包括:
26.部署模块,用于获取所述istio服务网格中各个envoy代理,将每一所述envoy代理分别与业务应用部署于同一pod容器中,同一类的所述pod容器对应抽象出一个微服务;
27.发现模块,用于通过pilot组件对多个所述底层平台进行服务发现和流量规则发现;
28.分发模块,用于所述istio服务网格中的改进后的xds协议包括所有接口服务信息的function发现服务,通过function发现服务以将服务信息和流量规则下发至所有所述envoy代理中,以对微服务的接口服务实现流量治理。
29.第三方面,提供一种终端设备,其特征在于,其包括存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-7任意一项所述的基于istio的接口级别服务治理方法。
30.第四方面,提供一种可读计算机介质,其特征在于,包括一个或多个应用程序中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,
所述一个或多个应用程序被配置为用于执行根据权利要求1-7任意一项所述的基于istio的接口级别服务治理方法。
31.与现有技术相比,本发明具备如下优点:
32.1.通过将同一类的每一pod容器、微服务的接口服务和envoy代理之间一一对应,并在标准的改进后的xds协议上新增了function发现服务,当启用设于微服务的配置开关,将目标接口服务信息配置于function发现服务,以实现对接口级别的流量治理,克服了在istio服务网格中采用熔断或降级的策略将导致微服务的所有接口均发现熔断或者降级的缺点,可在对微服务的接口服务配置各种熔断或者降级的策略,将同一微服务的不同接口服务之间的相互影响减小到可接受的范围之中,实现对微服务的更为精细化治理;
33.2.通过在微服务上设有配置开关,通过控制配置开关的启闭,实现对function发现服务工作的控制,当关闭设于微服务的配置开关,envoy代理中止将目标接口服务信息配置于function发现服务,则function发现服务停止工作,进而实现粗粒度和细粒度服务治理模式的切换,提升流量治理的灵活性。
【附图说明】
34.图1为本实施例的服务治理的方法流程图;
35.图2为本实施例的pilot组件的构架图;
36.图3为本实施例的改进后的xds协议的分发流程图。
【具体实施方式】
37.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
38.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
39.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
40.本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示
器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
41.如图1和图2所示,本发明公开的一种基于istio的接口级别服务治理方法,以不同底层平台和istio服务网格作为基础架构,包括:
42.通过pilot组件对多个所述底层平台进行服务发现和流量规则发现;
43.s1、获取istio服务网格中各个envoy代理,将每一envoy代理分别与业务应用部署于同一pod容器中,同一类的pod容器对应抽象出一个微服务;
44.具体地,底层平台包括有kubernetes、mesos和cloudfoundry中一个或多个;而istio服务网格提供一种简单的方式为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,而无需对服务的代码做任何改动,相比于微服务的sdk方式,istio服务网格以一种更轻便、透明的方式向用户提供上述功能,用户也可采用任意语言和框架进行开发,用户仅需专注于自身的业务,无需嵌入任何治理逻辑,即可以实现对微服务的服务治理。也就是说,istio服务网格以基础设施的方式提供给用户非侵入的流量治理能力。
45.istio服务网格包括有控制面和数据面,数据面则由envoy代理构成,提供服务发现、用于智能路由的流量管理以及弹性功能。其中,envoy代理是采用c 开发的高性能代理,用于调解服务网格中所有服务的入站和出站流量。在istio服务网格中,envoy代理被用作服务网格中的边车代理。在本实施例中,与对应的微服务的接口服务部署在同一个底层平台的最小单元中。
46.s2、通过pilot组件对多个底层平台进行服务发现和流量规则发现;
47.具体地,控制面包括有pilot组件、galley组件以及citadel组件,控制面用于管理并配置代理以进行路由,pilot组件从底层平台监控获取信息和流量规则并将其转换成istio的服务发现模型;同时,pilot组件更重要的功能是向数据面下发规则,包括virtualservice、destinationrule、gateway、serviceentry等流量治理规则,pilot组件负责将各种规则转换成envoy代理可识别的格式,通过标准的改进后的xds协议发送给所有envoy代理,指导所有envoy代理完成动作,以此管理高级路由和故障处理的流量,如a/b测试和金丝雀部署。在通信上,envoy通过grpc流式订阅pilot的配置资源。
48.galley组件并非直接向数据面提供业务能力,而是在控制面上向其他组件提供支持。galley组件作为负责配置管理的组件,验证配置信息的格式和内容的正确性,并将配置信息提供给管理面的pilot组件和mixer组件服务使用,实现其他istio组件仅需和galley组件交互,从而实现与底层平台解耦。
49.citadel组件是istio服务网格的核心安全组件,提供了自动生成、分发、轮换与撤
销秘钥和证书功能。
50.s3、istio服务网格中的改进后的xds协议包括所有接口服务信息的function发现服务,通过function发现服务以将服务信息和流量规则下发至所有envoy代理中,以对微服务的接口服务实现流量治理。
51.具体地,改进后的xds协议位于pilot组件构架的最上层,将pilot组件的流量治理能力暴露给客户端。pilot组件通过xds服务器提供服务发现接口xds api,xds服务器接收并维护envoy代理的连接,并基于客户端订阅的资源名称进行相应改进后的xds协议配置的分发。改进后的xds协议是envoy代理动态获取配置的传输协议,也是istio服务网格与envoy代理连接的桥梁。
52.确认目标微服务,从所述目标微服务中选取目标pod容器;
53.与所述目标pod容器对应的所述envoy代理拦截所述目标pod容器的流量以确认其是否配置有目标接口服务信息;
54.确认配置有目标接口服务信息则放行,否则继续拦截
55.其中,改进后的xds协议是一类发现服务的总称,包含listener发现服务、route发现服务、cluster发现服务、endpoint发现服务以及secret发现服务,envoy代理通过改进后的xds协议可动态获取listener、route、cluster以及endpoint的配置。
56.listener发现服务,用于控制envoy代理启动端口监听,并配置l3或l4层过滤器,l3为网络层,l4为传输层,在网络连接到达后,由l3层过滤器堆栈开始处理。envoy代理根据listener发现服务的配置执行不同的代理任务,其中代理任务包括有限流、客户端认证、http连接管理和tcp代理。
57.route发现服务,用于envoy代理的http连接管理器动态获取路由配置。路由配置包含http头部修改、virtual hosts及virtual hosts定义的各个路由条目。
58.cluster发现服务,用于动态获取cluster信息,envoy代理一般从listener发现服务或route发现服务中抽象出上游cluster,作为流量转发目标。
59.endpoint发现服务,cluster成员叫作endpoint,对于每个cluster,envoy代理均通过eds api动态获取endpoint。之所以将endpoint发现服务作为优选的服务发现机制,相对于与通过dns解析的负载均衡器进行路由,envoy代理可明确知道每个上游主机的信息,从而做出更加智能的负载均衡决策。
60.在本实施例中,在改进后的xds协议中新增function发现服务,function发现服务是endpoint中每个接口的信息,function发现服务的接口服务信息包括有接口名称和接口所归属的微服务名称。因此,function发现服务中的属性可用于接口级别的熔断、降级和限流。
61.可选地,在s2步骤中,通过控制面对多个底层平台进行服务发现和流量规则发现,具体步骤包括:
62.通过平台适配器监听底层平台以获得服务信息和流量规则,以将服务信息和流量规则转换为istio抽象模型可理解的格式;
63.部署抽象聚合层于平台适配器和改进后的xds协议之间,抽象聚合层可让pilot组件支持基于多个不同的底层平台进行服务发现和流量规则发现,抽象聚合层通过聚合不同平台的服务、配置规则对外提供统一的接口,进而使得pilot组件无需关心底层平台的差
异,以达到解耦底层平台和改进后的xds协议的作用;
64.基于envoy代理的订阅,通过改进后的xds协议将服务信息和流量规则分发至所有envoy代理中。
65.具体地,pilot组件包括有平台适配器、抽象聚合层和改进后的xds协议。其中,平台适配器负责监听底层平台,并完成从底层平台特有的服务模型到istio规范模型的转换,示例地,如下所述:
66.服务模型的转换:将kubernetes、consul等不同底层平台的服务模型转换为istio规范的服务模型。
67.服务实例的转换:比如将kubernetes endpoint资源转换为istio规范的服务实例模型。
68.istio中的配置模型的转换:将kubernetes平台非结构化的custom resource配置规则转换virtualservice、gateway、serviceentry、destinationrule等api,以及将kubernetes ingress资源转换为istio gateway资源。
69.可选地,如图3所示,在s3中,通过改进后的xds协议以将服务信息和流量规则下发至所有envoy代理,具体步骤包括:
70.pilot组件响应于envoy代理发起的discoveryrequest类型的请求进行动态加载配置,配置加载成功则进行ack,否则进行nack;
71.具体地,envoy代理向pilot组件发起discoveryrequest类型的请求;改进后的xds协议的服务器根据请求生成相应discoveryresponse类型的响应;envoy代理接收discoveryresponse类型的响应以进行动态加载配置,若是配置加载成功则进行ack,否则进行nack。
72.在本实施例中,当底层平台采用为kubernetes时,istio服务网格可通过yaml文件的形式快速部署于kubernetes上;其中服务发现由istio服务网格的pilot组件所负责,服务注册机制则由kubernetes负责提供;
73.kubernetes是自动化容器操作的开源平台,在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。在kubernetes的基础架构上的最小单元为pod容器,同一类的pod容器抽象出一个微服务,同一类的每一pod容器、微服务的接口服务和envoy代理之间一一对应。
74.具体地,在s3中,其中调用微服务的接口服务具体步骤包括:
75.通过进后的xds协议以将服务信息和流量规则下发至所有envoy代理;其中,与调用微服务对应的envoy代理检查所述底层平台中是否配置有目标微服务的接口信息;
76.若是底层平台不存在目标微服务的接口信息,则流量被拦截;
77.若是底层平台存在所述目标微服务的接口信息,则流量放行到达所述目标微服务的目标pod容器中。
78.示例地,在调用微服务的接口服务a时,比如http://servicea:8080/list,获取目标接口服务所处的目标pod容器,目标pod容器中的envoy代理拦截其流量以确认其是否配置有目标接口服务信息,以实现对接口级别的服务流量治理,服务流量治理包括有灰度发布等,其中,灰度发布是指在黑与白之间,可平滑过渡的一种发布方式。在其上可以进行a/btesting,即让一部分用户继续用产品特性a,一部分用户开始用产品特性b,若是用户b没
有反对意见,则逐步扩大范围,将所有用户都迁移到产品特性b上,以保证整体系统的稳定,在初始灰度的时候可发现、调整问题,以保证其影响度。
79.具体地,如在两个微服务之间进行调用,servicea调用serviceb,servicea调用serviceb的一个接口,如果serviceb服务开启了接口服务治理的开关,那么servicea调用serviceb的流量首先会被servicea的envoy代理进行拦截,由于流量治理规则是全量下发,所以servicea的envoy代理中也下发的流量规则,servicea的envoy代理检查底层平台的集群中是否配置了serviceb的接口信息,若是无配置,流量不会发到serviceb的envoy代理以及目标pod容器中;若是存在配置,则找到serviceb,然后流量达到目标pod容器中。
80.通过控制配置开关的启闭可决定pilot组件是否对目标微服务下的所有接口进行配置目标接口服务信息,实现对接口级别的流量治理,克服了在istio服务网格中采用熔断或降级的策略将导致微服务的所有接口均发现熔断或者降级的缺点,可在对微服务的接口服务配置各种熔断或者降级的策略,将同一微服务的不同接口服务之间的相互影响减小到可接受的范围之中,实现对微服务的更为精细化治理;
81.若配置开关处于开启状态则对目标微服务下的所有接口进行配置目标接口服务信息,否则不对目标微服务下的所有接口进行配置目标接口服务信息,实现粗粒度和细粒度服务治理模式的切换,提升系统的灵活性。
82.在本实施例中提供一种基于istio的接口级别服务治理装置,包括:
83.部署模块,用于获取istio服务网格中各个envoy代理,将每一envoy代理分别与业务应用部署于同一pod容器中,同一类的pod容器对应抽象出一个微服务;
84.发现模块,用于通过pilot组件对多个底层平台进行服务发现和流量规则发现;
85.分发模块,用于istio服务网格中的改进后的xds协议包括所有接口服务信息的function发现服务,通过function发现服务以将服务信息和流量规则下发至所有envoy代理中,以对微服务的接口服务实现流量治理。
86.本发明实施例提供一种终端设备,该终端设备可以是计算机设备。本技术中的终端设备可以包括一个或多个如下部件:处理器、存储器以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述应用于终端设备的方法实施例中所描述的方法。
87.处理器可以包括一个或者多个处理核。处理器利用各种接口和线路连接整个终端设备内的各个部分,通过运行或执行存储在存储器内的指令、程序、代码集或指令集,以及调用存储在存储器内的数据,执行终端设备的各种功能和处理数据。可选地,处理器可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmablelogicarray,pl a)中的至少一种硬件形式来实现。处理器可集成中央处理器(centralprocessing unit,cpu)、埋点数据的上报验证器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器中,单独通过一块通信芯片进行实现。
88.存储器可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器可用于存储指令、程序、代码、代码集或指令集。存储器可包
括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备在使用中所创建的数据等。
89.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述应用于终端设备的方法实施例中所描述的方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read-only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmable read-only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
90.综上,本技术提供的基于istio的接口级别服务治理方法及相关装置具有如下有益效果:
91.本技术通过将同一类的每一pod容器、微服务的接口服务和envoy代理之间一一对应,并在标准的改进后的xds协议上新增了function发现服务,当启用设于微服务的配置开关,将目标接口服务信息配置于function发现服务,以实现对接口级别的流量治理,克服了在istio服务网格中采用熔断或降级的策略将导致微服务的所有接口均发现熔断或者降级的缺点,可在对微服务的接口服务配置各种熔断或者降级的策略,将同一微服务的不同接口服务之间的相互影响减小到可接受的范围之中,实现对微服务的更为精细化治理。
92.本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
93.以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献