CN115185611A - 服务网格代理配置动态加载的方法、装置、***及设备 - Google Patents
服务网格代理配置动态加载的方法、装置、***及设备 Download PDFInfo
- Publication number
- CN115185611A CN115185611A CN202210899901.3A CN202210899901A CN115185611A CN 115185611 A CN115185611 A CN 115185611A CN 202210899901 A CN202210899901 A CN 202210899901A CN 115185611 A CN115185611 A CN 115185611A
- Authority
- CN
- China
- Prior art keywords
- workload
- service grid
- feature
- information
- agent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种服务网格代理配置动态加载的方法、装置、***及设备。本申请的方法,服务网格代理配置动态加载的方法、装置及设备,通过在服务网格的控制面配置代理动态加载描述信息,实现自定义服务网格中工作负载所需感知的特征来源,在加载服务网格代理配置时,根据工作负载所需感知的特征来源可以动态地获取工作负载所在节点的资源特征信息,根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中,将服务网格代理配置动态更新到工作负载对应的服务网格代理中,实现了基于资源特征感知的服务网格代理配置的动态加载功能。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种服务网格代理配置动态加载的方法、装置、***及设备。
背景技术
服务网格(Service Mesh)是指用于微服务应用管理的可配置的基础架构层,可以提供诸如服务发现、负载均衡、加密、身份鉴定、授权、支持熔断器模式以及其他一系列功能。为例保证服务网格的功能,通常会通过服务网格代理配置,由控制面向每个服务网格代理下发配置数据,以使服务网格可以正确代理服务流量,进而实现服务互通、服务治理。
当前服务网格代理配置支持两种加载方式,一种是相关技术人员在控制面手动配置全局的静态的服务网格代理配置;另一种是通过在服务网格代理所在的机器/工作负载容器组启动之前,通过配置注释的方式对服务网格代理对应工作负载进行手动配置。无论上述哪种加载方式,都只能在机器启动时加载静态的服务网格代理配置,无法实现服务网格代理配置的动态加载。
发明内容
本申请提供一种服务网格代理配置动态加载的方法、装置、***及设备,用以解决无法实现服务网格代理配置的动态加载的问题。
一方面,本申请提供一种服务网格代理配置动态加载的方法,包括:
根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
另一方面,本申请提供一种服务网格代理配置动态加载的装置,包括:
特征来源确定模块,用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
特征获取模块,用于根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
动态加载模块,用于根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
动态更新模块,用于将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
另一方面,本申请提供一种服务网格代理配置动态加载的***,所述服务网格包括控制面层、数据面层和功能应用层,所述功能应用功能层运行有工作负载,所述数据面层运行有工作负载对应的服务网格代理,所述工作负载与对应的服务网格代理之间具有双向通信链路,不同的服务网格代理之间具有双向通信链路;
所述***包括:位于控制面层的配置模块和特征来源确定模块,位于数据面层的特征获取模块、动态加载模块和动态更新模块;
其中,所述配置模块用于配置代理动态加载描述信息,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源;
所述特征来源确定模块用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
所述特征获取模块用于根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
所述动态加载模块用于根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
所述动态更新模块用于将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
另一方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述所述的服务网格代理配置动态加载的方法。
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述所述的服务网格代理配置动态加载的方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述所述的服务网格代理配置动态加载的方法。
本申请提供的服务网格代理配置动态加载的方法、装置、***及设备,通过配置代理动态加载描述信息,自定义服务网格中工作负载所需感知的特征来源,根据工作负载所需感知的特征来源可以动态地获取工作负载所在节点的资源特征信息,根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中,将服务网格代理配置动态更新到工作负载对应的服务网格代理中,实现了基于资源特征感知的服务网格代理配置的动态加载功能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种服务网格的示意图;
图2为本申请一示例实施例提供的服务网格代理配置动态加载的方法流程图;
图3为本申请一示例实施例提供的获取节点的资源特征信息的框架图;
图4为本申请一示例实施例提供的服务网格代理配置动态加载的框架图;
图5为本申请另一示例实施例提供的服务网格代理配置动态加载的方法流程图;
图6为本申请一示例实施例提供的服务网格代理配置动态加载的装置的结构示意图;
图7为本申请一示例实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
服务网格:是指用于微服务应用管理的可配置的基础架构层,常用于描述构成应用程序的服务(如微服务)以及各个服务之间的交互。服务网格一般由控制面和数据面组成。其中,控制面是一组在一个专用的命名空间中运行的服务,这些服务用于完成一些控制管理功能,如聚合遥测数据、提供面向用户的应用程序接口(Application ProgrammingInterface,简称API)、向数据面提供控制数据等;而数据面是由一系列运行在每个服务实例旁边的透明代理构成。
服务网格代理:用于对要发送到服务网格或者服务网格发出的请求进行转发,服务网格中每个微服务所对应的请求都会经过服务网格代理。
服务网格代理配置:服务网格代理配置是指为了让服务网格正确代理服务流量,实现服务互通、服务治理,由控制面向每个服务网格代理下发的配置数据。
示例性地,图1为本申请提供的一种服务网格的示意图。如图1所示,该服务网格100主要用于方便多个微服务之间进行安全和可靠的通信,微服务是指将应用程序分解为多个较小的服务或者实例,并分布在不同的集群/机器上运行。
如图1所示,微服务包括应用服务实例A和应用服务实例B,应用服务实例A和应用服务实例B形成服务网格100的功能应用层。在一种实施方式中,应用服务实例A和B以容器/进程的形式运行在机器/工作负载容器组(machine/Pod)。示例性地,应用服务实例A可以是商品查询服务,应用服务实例B可以是商品下单服务。
如图1所示,应用服务实例A和服务网格代理(sidecar)103共存于机器/工作负载容器组114,应用服务实例B和服务网格代理105共存于机器/工作负载容器116。服务网格代理103和105形成服务网格100的数据面层(data plane)。其中,服务网格代理103和105分别以容器/进程104、106的形式运行,并且服务网格代理103和应用服务实例A之间可以双向通信,服务网格代理105和应用服务实例B之间可以双向通信。此外,服务网格代理103和服务网格代理105之间还可以双向通信。
示例性地,应用服务实例A的所有流量都通过服务网格代理103被路由到合适的目的地,应用服务实例B的所有网络流量都通过服务网格代理105被路由到合适的目的地。需要说明的是,在此提及的网络流量包括但不限于超文本传输协议(Hyper Text TransferProtocol,简称HTTP)、表述性状态传递(Representational State Transfer,简称REST)、远程过程调用(Remote Procedure Call,简称RPC,如g RPC)、远程字典服务(RemoteDictionary Server,简称Redis)等形式。
示例性地,可以通过为服务网格100中的代理(Envoy)编写自定义的过滤器(Filter)来实现扩展数据面层的功能,服务网格代理配置可以使服务网格正确地代理服务流量,实现服务互通和服务治理。服务网格代理103和服务网格代理105可以被配置成执行至少如下功能中的一种:服务发现(service discovery),健康检查(health checking),路由(Routing),负载均衡(Load Balancing),认证和授权(authentication andauthorization),以及可观测性(observability)。
如图1所示,该服务网格100还包括控制面层。其中,控制面层可以是由一组在一个专用的命名空间中运行的服务,在机器/工作负载容器组102由托管控制面组件101来托管这些服务。如图1所示,托管控制面组件101与网格代理103和网格代理105进行双向通信。托管控制面组件101被配置成执行一些控制管理的功能。例如,托管控制面组件101接收服务网格代理103和服务网格代理105传送的遥测数据,可以进一步对这些遥测数据做聚合。这些服务,托管控制面组件101还可以提供面向用户的应用程序接口(API),以便较容易地操纵网络行为,以及向服务网格代理103和服务网格代理105提供配置数据等。
当前服务网格代理配置支持两种加载方式,一种是相关技术人员在控制面手动配置全局的静态的服务网格代理配置;另一种是通过在服务网格代理所在的机器/工作负载容器组启动之前,通过配置注释的方式对服务网格代理对应工作负载进行手动配置。无论上述哪种加载方式,都只能在机器启动时加载静态的服务网格代理配置,无法实现服务网格代理配置的动态加载。
本申请提供一种服务网格代理配置动态加载的方法,用于实现上述服务网格中服务网格代理配置的动态加载。本申请提供的服务网格代理配置动态加载的方法的执行主体可以是用于实现服务网格中服务网格代理配置的加载的电子设备,该电子设备可以是服务器,如一台或多条服务器、服务器集群、云计算平台等,或者该电子设备还可以是终端设备,如台式计算机、便携式计算机、平板电脑、账上电脑等。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一示例实施例提供的服务网格代理配置动态加载的方法流程图。如图2所示,该方法具体步骤如下:
步骤S201、根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源。
其中,代理动态加载描述信息为用户配置的信息,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源。工作负载是指在服务网格中运行的应用程序,与应用程序服务实例对应,每一工作负载具有对应的服务网格代理。
工作负载所需感知的特征来源是在加载工作负载对应服务网格代理配置的过程中用户期待工作负载感知的特征来源,用于指示需要获取工作负载所在节点的资源特征信息来源于节点的那些资源,例如CPU、内存、网络设备、操作***内核、存储设备、***部件互连(Peripheral Component Interconnect,简称PCI)设备等。
本实施例中,不同的工作负载所需感知的特征来源可以不同,具体可以由用户(可以是服务网格的运维人员、使用者、管理人员等相关技术人员)根据工作负载的实际应用场景和功能进行配置和调整。
例如,如果用户比较关注工作负载C所在节点的CPU支持的指令集,则用户可以配置工作负载C对应特征来源包括CPU特征,具体可以包括CPUID指令等。
例如,如果用户比较关注工作负载D的操作***内核版本,希望工作负载D运行在指定内核版本上,则用户可以配置工作负载D对应特征来源包括操作***内核特征,具体包括操作***内核版本信息。
步骤S202、根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息。
在确定服务网格中工作负载所需感知的特征来源之后,根据每一工作负载所需感知的特征来源,获取每一工作负载所在节点的该工作负载对应特征来源的资源特征信息。
例如,对于工作负载C,如果工作负载C对应的特征来源指示工作负载C所在节点的资源特征信息来源于CPU、内存、网络设备和操作***内核,那么获取工作负载C所在节点的CPU特征、内存特征、网络特征、操作***内核特征。
例如,对于工作负载D,如果工作负载C对应的特征来源指示工作负载D所在节点的资源特征信息来源于CPU、内存、PCI设备,那么获取工作负载D所在节点的CPU特征、内存特征、PCI设备特征。
另外,每一特征来源的资源特征信息具体包括哪些信息,可以根据具体应用场景在***中进行统一配置,此处不做具体限定。
步骤S203、根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中。
在获取到工作负载所在节点的资源特征信息之后,根据工作负载所在节点的每一项资源特征信息,生成对应的配置信息,将工作负载所在节点的各项资源特征信息加载到工作负载对应的服务网格代理配置中,从而将获取到的资源特征信息动态地加载到服务网格代理配置中。
步骤S204、将服务网格代理配置动态更新到工作负载对应的服务网格代理中。
在将工作负载所在节点的资源特征信息对应的配置信息加载到工作负载对应的服务网格代理配置中之后,将服务网格代理配置动态更新到工作负载对应的服务网格代理中,实现服务网格代理配置的动态加载配置。
本实施例中,通过配置代理动态加载描述信息,自定义服务网格中工作负载所需感知的特征来源,根据工作负载所需感知的特征来源可以动态地获取工作负载所在节点的资源特征信息,根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中,将服务网格代理配置动态更新到工作负载对应的服务网格代理中,实现了基于资源特征感知的服务网格代理配置的动态加载功能。
一种可选实施例中,用户可以在服务网格的控制面配置代理动态加载描述信息,其中,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源,使得用户可以自行定义服务网格代理所需的代理动态加载描述信息,来指定动态加载服务网格代理配置所需的特征来源范围,从而为自动感知和获取各服务网格代理配置的动态加载所需的资源特征信息提供特征来源范围,避免不必要的特征信息的加载,从而提高服务网格代理配置动态加载方法的灵活性和效率。
示例性地,以基于微服务框架Kubernetes搭建的某云原生应用为例,针对该云原生应用中某一微服务的工作负载,可以以声明式应用程序编程接口(Application ProgramInterface,简称API)的方式定义代理动态加载描述信息,以便于与用户自定义各个工作负载的代理动态加载描述信息。
例如,以服务网格的数据面集群可以是Kubernetes集群为例,用户可以以云原生声明式API的方式定义如下代理动态加载描述信息:
示例性地,若自定义上述工作负载“myworkload”对应的特征来源范围包括预设的所有特征来源,那么代理动态加载描述信息中可以替换如下内容:
scope://自定义的特征来源范围
-all//包含预设的所有特征来源
另外,在其他实施例中,用户还可以以现有的在控制面配置工作负载对应的一项或多项配置信息的方法实现,此处不再赘述。
一种可选实施例中,可以根据设置的特征来源,获取服务网格中节点的所有特征来源的资源特征信息,并将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中。
可选地,设置的特征来源包括至少一项内置特征。示例性地,预先设置的内置来源特征可以包括如下至少一种:
CPU特征、内存特征、网络特征、操作***内核特征、存储特征、***部件互连设备特征。
示例性地,CPU特征可以包括CPU的型号、所支持的扩展指令集等。
示例性地,内存特征可以包括输入内存管理单元是否受主机硬件平台支持、输出内存管理单元是否受主机硬件平台支持、输入内存管理单元是否在主机操作***的内核中启用、输出内存管理单元是否在主机操作***的内核中启用等。
示例性地,网络特征可以包括:是否存在特定功能的网络接口卡(NetworkInterface Card,简称NIC)等。其中特定功能可以根据实际应用场景进行设置和调整,此处不做具体限定。
示例性地,操作***内核特征可以包括:主机操作***的内核版本等。不同内核版本的操作***可以响应一些特定的工作负载的依赖。
示例性地,存储特征可以包括:是否存在特定的存储特性,例如内存型、物理介质型、访问速度快、访问速度慢且容量大等。其中特定的存储特征可以根据实际应用场景的需要进行设置和调整,此处不做具体限定。
示例性地,***部件互连设备特征可以包括是否存在兼容的PCT设备等。
通过设置种类丰富且全面的内置特征,使得用户可以基于设置的内置特征来自定义工作负载对应的代理动态加载描述信息,来实现各服务网格代理配置的动态加载所需的资源特征信息的特征来源范围的灵活配置,从而可以针对不同的工作负载获取自定义的特征来源的资源特征信息,从而提高服务网格代理配置动态加载方法的灵活性,并且可以避免不必要的特征信息的加载。
随着后续技术的演进,节点可以选用的硬件资源可能发生变化,节点的资源特征信息的来源也可能发生变化。可选地,设置的特征来源还可以包括自定义特征,用户可以自定义一种或多种自定义的特征来源,称为自定义特征,并自定义获取自定义特征的途径和结果等,从而支持特征来源的扩展,提高服务网格代理配置动态加载方法的灵活性和扩展性。
示例性地,如图3所示,本实施例提供一种用于获取分析节点特征信息的引擎30,包括内置特征引擎31和自定义特征引擎32。其中内置特征引擎31根据特征来源的不同可以包括以下几种不同的引擎:
CPU特征引擎311主要用于确定CPU功能的CPUID指令,包括型号和对指令集扩展的支持,从而可以从CPUID信息中获得的所有CPU特性,包括:CPU的型号、CPU所支持的扩展指令集等。
内存特征引擎312主要用于检测节点上是否存在特定的内存特征,包括检测输入内存管理单元/输出内存管理单元是否受主机硬件平台支持、检测输入内存管理单元/输出内存管理单元是否在主机操作***的内核中启用等。
网络特征引擎313主要用于检测节点上是否存在特定的网络特征,包括检测是否存在特定功能的网络接口卡(NIC)等。
内核特征引擎314主要用于检测底层主机操作***的内核版本,以响应一些特定的工作负载的依赖。
存储特征引擎315主要用于检测节点上是否存在特定的存储特征,包括:是否存在特定的存储特性,例如内存型、物理介质型、访问速度快、访问速度慢且容量大等。
PCI设备特征引擎316主要用于检测是否存在兼容的PCI硬件设备等。
自定义特征引擎32用于用户自定义所使用的特征来源及获取特征的途径、结果等,并根据自定义获取特征的途径、结果,检测自定义的特征来源的资源特征信息。
通过实时地或定期地获取服务网格中节点的所有特征来源的资源特征信息,并将服务网格中节点的所有特征来源的资源特征信息序列化更新到特征存储库中,在实现服务网格代理配置动态加载时,可以从特征存储库中查询(动态感知)工作负载所在节点的工作负载所需感知的特征来源的资源特征信息,提高资源特征信息获取的效率,从而提高服务网格代理配置动态加载的效率。
可选地,在获取服务网格中节点的所有特征来源的资源特征信息之后,可以对服务网格中节点的所有特征来源的资源特征信息进行聚集分析,得到聚集分析数据;将聚集分析数据序列化存储到特征存储库中,以提高特征存储库的检索效率,从而提高服务网格代理配置动态加载的效率。
示例性地,对服务网格中节点的所有特征来源的资源特征信息进行聚集分析,可以是根据特征来源对资源特征进行归类、排序等处理后,序列化存储到特征存储库中。另外,还可以采用对数据库中的数据进行聚集分析以加快数据库的检索效率的方法实现,此处不再赘述。
进一步地,上述步骤S202中,根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息,具体可以采用如下方式实现:
根据工作负载所需感知的特征来源,定期地查询特征存储库,以获取工作负载所在节点的工作负载所需感知的特征来源的资源特征信息。
通过定期地查询特征存仓库,可以动态地感知工作负载对应特征来源的最新的资源特征信息,并基于工作负载对应特征来源的最新的资源特征信息实现服务网格代理配置动态加载。
图4为本申请一示例实施例提供的服务网格代理配置动态加载的框架图。如图4所示,服务网格控制面401是本实施例提供的一种托管模式下的服务网格控制面组件集合。托管模式是表示这些服务网格的组件运行于独立的一个服务器运行时,而不是运行于某个数据面的集群中。云厂商往往会以这种托管模式支持服务网格能力,以降低用户的运维复杂度和成本。服务网格托管控制面401负责管理与配置服务网格数据面405下的服务网格数据面集群以及运行于其中的工作负载406及其服务网格代理407。
相对应地,服务网格数据面405包括了对多个服务网格数据面集群的逻辑划分,由服务网格托管控制面401统一进行管理。例如,服务网格数据面集群可以是Kubernetes集群,包括多个节点415等。
图5为本申请另一示例实施例提供的服务网格代理配置动态加载的方法流程图。基于图4所示的框架,如图5所示,该方法具体步骤如下:
步骤S501、配置代理动态加载描述信息。
该步骤中,用户可以在服务网格的控制面401配置代理动态加载描述信息402。
其中,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源,使得用户可以自行定义服务网格代理所需的代理动态加载描述信息,来指定动态加载服务网格代理配置所需的特征来源范围,从而为自动感知和获取各服务网格代理配置的动态加载所需的资源特征信息提供特征来源范围,避免不必要的特征信息的加载,从而提高服务网格代理配置动态加载方法的灵活性和效率。
示例性地,用户可以以云原生声明式API的方式定义代理动态加载描述信息。
步骤S502、根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源。
本实施例中,不同的工作负载可以对应不同的特征来源,具体可以由用户(可以是服务网格的运维人员、使用者、管理人员等相关技术人员)根据工作负载的实际应用场景和功能进行配置和调整。
该步骤中,通过工作负载选择器403,可以对用户配置的代理动态加载描述信息进行解析,确定代理动态加载描述的生效范围,也即代理动态加载描述作用于哪些工作负载,并确定工作负载所需感知的特征来源。
示例性地,以服务网格的数据面集群可以是Kubernetes集群为例,用户可以以云原生声明式API的方式定义如下代理动态加载描述信息:
基于该代理动态加载描述信息,通过解析“workloadSelector”部分,可以确定该代理动态加载描述信息作用于名称为“myworkload”的工作负载,通过解析“scope”部分可以确定名称为“myworkload”的工作负载所需感知的特征来源包括:CPU特征、内存特征和网络特征。
步骤S503、根据设置的特征来源,获取服务网格中节点的所有特征来源的资源特征信息。
本实施例中,还可以根据设置的特征来源,实时地获取服务网格中节点的所有特征来源的资源特征信息。
示例性地,可以通过如图3所示的用于获取分析节点特征信息的内置特征引擎31和自定义特征引擎32来获取服务网格中节点415的所有特征来源的资源特征信息。
步骤S504、将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中。
在获取到服务网格中节点415的所有特征来源的资源特征信息之后,还可以通过特征信息聚集器412,将获取到的资源特征信息进行聚集分析,并序列化存储到特征存储库404中。
步骤S505、根据工作负载所需感知的特征来源,定期地查询特征存储库,以获取工作负载所在节点的工作负载所需感知的特征来源的资源特征信息。
本实施例中,每一个工作负载都存在一个对应的服务网格代理。该步骤中,通过数据面的特征获取器410定期地查询特征存储库404,并根据工作负载所需感知的特征来源获取工作负载所需感知的特征来源的资源特征信息。
步骤S506、根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中。
该步骤中,通过动态加载器411根据工作负载406所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置409中。
示例性地,如果工作负载所在的节点支持AVX-512指令集,允许动态配置私钥提供者,那么工作负载对应服务网格代理配置可以动态调整为包含如下配置信息:
另外,如果工作负载所在的节点不支持AVX-512指令集,那么工作负载对应服务网格代理配置可以动态更新为包含如下默认配置:
tls_certificates:
certificate_chain:{'filename':'/path/cert.pem'}//证书存放路径
private_key:{'filename':'/path/key.pem'}//私钥存放路径
步骤S507、将服务网格代理配置动态更新到工作负载对应的服务网格代理中。
该步骤中,通过配置更新器408将服务网格代理配置409动态更新到工作负载406对应的服务网格代理407中,从而实现服务网格代理配置的动态加载功能。
本实施例提供了一种获取资源特征信息的具体实现方式,通过内置特征引擎和自定义特征引擎获取节点的资源特征信息,并进行聚集分析后序列化存储到特征存储库中,服务网格代理配置动态加载时可以基于特征存储库感知工作负载所在节点的对应特征来源的资源特征信息。本实施例提供了一种基于节点特征感知实现用户自定义的服务网格代理配置动态加载机制,用户可以自行定义服务网格代理所需的动态加载描述,指定所需的特征来源范围,支持动态加载器获取工作负载所在节点的对应特征来源的资源特征信息加载到网格代理配置中,以此实现服务网格代理配置的动态加载功能。
本申请提供一种服务网格代理配置动态加载的***,该***基于图1所示的服务网格,服务网格包括控制面层、数据面层和功能应用层,功能应用功能层运行有工作负载,数据面层运行有工作负载对应的服务网格代理,工作负载与对应的服务网格代理之间具有双向通信链路,不同的服务网格代理之间具有双向通信链路。
该***包括:位于控制面层的配置模块和特征来源确定模块,位于数据面层的特征获取模块、动态加载模块和动态更新模块。
其中,配置模块用于配置代理动态加载描述信息,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源。
特征来源确定模块用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源。
特征获取模块用于根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息。
动态加载模块用于根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中。
动态更新模块用于将服务网格代理配置动态更新到工作负载对应的服务网格代理中。
示例性地,该***可以基于图4所示的***框架,通过控制面层的配置模块配置代理动态加载描述信息402,将图4所示的工作负载选择器403作为特征来源确定模块,根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源。将图4所示的特征获取器410作为特征获取模块,根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息。将图4所示的动态加载器411作为动态加载模块,根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中。通过动态更新模块更新服务网格代理配置409。
另外,该***还可以包括特征引擎(包括如图4所示的内置特征引擎31和/或自定义特征引擎32)和特征信息聚集器(如图4所示特征信息聚集器410)。
其中,特征引擎用于在根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息之前,根据设置的特征来源,获取服务网格中节点的所有特征来源的资源特征信息。
特征信息聚集器用于将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中。
可选地,特征信息聚集器还用于将服务网格中节点的所有特征来源的资源特征信息进行聚集分析,得到聚集分析数据;将聚集分析数据序列化存储到特征存储库(如图4所示的特征存储库404)中。
图6为本申请一示例实施例提供的服务网格代理配置动态加载的装置的结构示意图,本实施例提供的装置应用于上述提及的用于实现服务网格中服务网格代理配置的加载的电子设备,如图6所示,服务网格代理配置动态加载的装置60包括:特征来源确定模块61、特征获取模块62、动态加载模块63和动态更新模块64。
具体地,特征来源确定模块61用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源。
特征获取模块62用于根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息。
动态加载模块63用于根据工作负载所在节点的资源特征信息,生成资源特征信息对应的配置信息,并将配置信息加载到工作负载对应的服务网格代理配置中。
动态更新模块64用于将服务网格代理配置动态更新到工作负载对应的服务网格代理中。
本实施例提供的装置具体可以用于执行上述图2对应方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
一种可选实施例中,服务网格代理配置动态加载的装置60还包括:特征引擎和特征信息聚集器。
特征引擎,用于在根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息之前,根据设置的特征来源,获取服务网格中节点的所有特征来源的资源特征信息。
特征信息聚集器,用于将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中。
一种可选实施例中,在实现将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中时,特征信息聚集器还用于:
将服务网格中节点的所有特征来源的资源特征信息进行聚集分析,得到聚集分析数据;将聚集分析数据序列化存储到特征存储库中。
一种可选实施例中,设置的特征来源包括内置特征和自定义特征,内置特征包括以下至少一项:
CPU特征、内存特征、网络特征、操作***内核特征、存储特征、***部件互连设备特征。
一种可选实施例中,在实现根据工作负载所需感知的特征来源,获取工作负载所在节点的资源特征信息时,特征获取模块62还用于:
根据工作负载所需感知的特征来源,定期地查询特征存储库,以获取工作负载所在节点的工作负载所需感知的特征来源的资源特征信息。
一种可选实施例中,服务网格代理配置动态加载的装置60还包括:
配置模块,用于配置代理动态加载描述信息,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源。
一种可选实施例中,在实现配置代理动态加载描述信息时,配置模块还用于:
以声明式API的方式定义代理动态加载描述信息。
本实施例提供的装置具体可以用于执行上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
图7为本申请一示例实施例提供的电子设备的结构示意图。如图7所示,该电子设备70包括:处理器701,以及与处理器701通信连接的存储器702,存储器702存储计算机执行指令。
其中,处理器执行存储器存储的计算机执行指令,以实现上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。“多个”的含义是两个以上,除非另有明确具体的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种服务网格代理配置动态加载的方法,其特征在于,包括:
根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息之前,还包括:
根据设置的特征来源,获取服务网格中节点的所有特征来源的资源特征信息;
将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中。
3.根据权利要求2所述的方法,其特征在于,所述将服务网格中节点的所有特征来源的资源特征信息序列化存储到特征存储库中,包括:
将服务网格中节点的所有特征来源的资源特征信息进行聚集分析,得到聚集分析数据;
将所述聚集分析数据序列化存储到特征存储库中。
4.根据权利要求2所述的方法,其特征在于,所述设置的特征来源包括内置特征和自定义特征,所述内置特征包括以下至少一项:
CPU特征、内存特征、网络特征、操作***内核特征、存储特征、***部件互连设备特征。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息,包括:
根据所述工作负载所需感知的特征来源,定期地查询所述特征存储库,以获取所述工作负载所在节点的所述工作负载所需感知的特征来源的资源特征信息。
6.根据权利要求1-4中任一项所述的方法,其特征在于,还包括:
配置所述代理动态加载描述信息,所述代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源。
7.根据权利要求6所述的方法,其特征在于,所述配置所述代理动态加载描述信息,包括:
以声明式API的方式定义所述代理动态加载描述信息。
8.一种服务网格代理配置动态加载的装置,其特征在于,包括:
特征来源确定模块,用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
特征获取模块,用于根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
动态加载模块,用于根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
动态更新模块,用于将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
9.一种服务网格代理配置动态加载的***,其特征在于,所述服务网格包括控制面层、数据面层和功能应用层,所述功能应用功能层运行有工作负载,所述数据面层运行有工作负载对应的服务网格代理,所述工作负载与对应的服务网格代理之间具有双向通信链路,不同的服务网格代理之间具有双向通信链路;
所述***包括:位于控制面层的配置模块和特征来源确定模块,位于数据面层的特征获取模块、动态加载模块和动态更新模块;
其中,所述配置模块用于配置代理动态加载描述信息,代理动态加载描述信息中定义了服务网格中至少一个工作负载所需感知的特征来源;
所述特征来源确定模块用于根据配置的代理动态加载描述信息,确定服务网格中工作负载所需感知的特征来源;
所述特征获取模块用于根据所述工作负载所需感知的特征来源,获取所述工作负载所在节点的资源特征信息;
所述动态加载模块用于根据所述工作负载所在节点的资源特征信息,生成所述资源特征信息对应的配置信息,并将所述配置信息加载到所述工作负载对应的服务网格代理配置中;
所述动态更新模块用于将所述服务网格代理配置动态更新到所述工作负载对应的服务网格代理中。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899901.3A CN115185611A (zh) | 2022-07-28 | 2022-07-28 | 服务网格代理配置动态加载的方法、装置、***及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210899901.3A CN115185611A (zh) | 2022-07-28 | 2022-07-28 | 服务网格代理配置动态加载的方法、装置、***及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185611A true CN115185611A (zh) | 2022-10-14 |
Family
ID=83521737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210899901.3A Pending CN115185611A (zh) | 2022-07-28 | 2022-07-28 | 服务网格代理配置动态加载的方法、装置、***及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185611A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378944A (zh) * | 2022-10-21 | 2022-11-22 | 阿里巴巴(中国)有限公司 | 一种网络***及服务网格配置方法、存储介质和电子设备 |
-
2022
- 2022-07-28 CN CN202210899901.3A patent/CN115185611A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378944A (zh) * | 2022-10-21 | 2022-11-22 | 阿里巴巴(中国)有限公司 | 一种网络***及服务网格配置方法、存储介质和电子设备 |
CN115378944B (zh) * | 2022-10-21 | 2023-03-31 | 阿里巴巴(中国)有限公司 | 一种网络***及服务网格配置方法、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10198162B2 (en) | Method for installing or upgrading an application | |
US7779091B2 (en) | Method and system for providing virtualized application workspaces | |
CN112119374A (zh) | 使用替代服务器名称选择性地提供相互传输层安全 | |
US10216527B2 (en) | Automated software configuration management | |
US20140047227A1 (en) | System and method for configuring boot-time parameters of nodes of a cloud computing system | |
US20140047341A1 (en) | System and method for configuring cloud computing systems | |
US20140047095A1 (en) | System and method for tuning a cloud computing system | |
US20140047272A1 (en) | System and method for configuring a cloud computing system with a synthetic test workload | |
US20220188170A1 (en) | Multi-Tenant Control Plane Management on Computing Platform | |
WO2016159949A1 (en) | Application analyzer for cloud computing | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
Baresi et al. | Microservices: The evolution and extinction of web services? | |
US20200042356A1 (en) | System and Method for Resource Management | |
Kjorveziroski et al. | Kubernetes distributions for the edge: serverless performance evaluation | |
CN110546615B (zh) | 超动态java管理扩展 | |
CN115185611A (zh) | 服务网格代理配置动态加载的方法、装置、***及设备 | |
CN113934512A (zh) | 负载均衡实现方法、装置、设备及存储介质 | |
US11831485B2 (en) | Providing selective peer-to-peer monitoring using MBeans | |
US11777810B2 (en) | Status sharing in a resilience framework | |
US20210224102A1 (en) | Characterizing operation of software applications having large number of components | |
CN110247802B (zh) | 针对云服务单机环境的资源配置方法及装置 | |
Di Martino et al. | A comparison of two different approaches to cloud monitoring | |
Kaya | An optimal application partitioning and computational offloading framework for mobile cloud computing | |
Nilsson et al. | The AutoSPADA Platform: User-Friendly Edge Computing for Distributed Learning and Data Analytics in Connected Vehicles | |
Araújo | Data Analytics in Iot Faas with Dataflasks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |