掌桥专利:专业的专利平台
掌桥专利
首页

网格代理扩展的方法和装置

文献发布时间:2023-06-19 16:09:34



技术领域

本公开涉及计算机技术领域,尤其涉及一种网格代理扩展的方法和装置。

背景技术

服务网格提供一个全托管式的服务网格平台,兼容社区开源服务网格,用于简化服务的治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安全以及网格可观测性能力,从而极大地减轻开发与运维的工作负担。

服务网格是用于控制和监控微服务应用程序中的内部服务到服务流量的软件基础结构层。它通常采取与应用程序代码一起部署,作为网络代理的"数据平面层"和与这些代理交互的"控制平面层"的形式。

发明内容

本公开提供一种网格代理扩展的方法和装置,用以提高网格代理扩展的准确性和可靠性。

第一方面,本公开实施例提供一种网格代理扩展的方法,所述方法包括:

获取用户发起的网格代理扩展请求,其中,所述网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据;

根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置;

根据所述网格代理扩展配置激活服务网格代理的扩展插件能力。

在本公开的一个实施例中,若所述网格代理扩展请求包括所述网格代理扩展参数,则所述获取用户发起的网格代理扩展请求,包括:

根据历史网格代理扩展需求生成针对所述历史网格代理扩展需求的网格代理扩展描述类目;

接收所述用户基于所述网格代理扩展描述类目输入的所述网格代理扩展参数。

在本公开的一个实施例中,所述根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置,包括:

根据所述网格实例概要对所述网格代理扩展参数进行分析,得到所述用户的当前网格代理扩展需求;

将所述当前网格代理扩展需求转换为网格代理扩展资源对象,并根据所述网格代理扩展资源对象、以及预设的与所述当前网格代理扩展需求绑定的应用服务实例的信息,转换得到所述网格代理扩展配置。

在本公开的一个实施例中,若所述网格代理扩展请求中包括所述扩展模板数据,则根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置,包括:

从预设的网格代理扩展模板集合中,提取与所述模板数据相对应的目标代理扩展模板内容,并根据所述目标代理扩展模板内容和所述网格实例概要生成所述网格代理扩展配置。

在本公开的一个实施例中,所述根据所述目标代理扩展模板内容和所述网格实例概要生成所述网格代理扩展配置,包括:

获取所述目标代理扩展模板内容中的扩展配置;

根据所述网格实例概要、所述扩展配置、以及预设的与所述网格代理扩展功能绑定的应用服务实例的信息生成代理扩展绑定,并根据所述代理扩展绑定生成所述网格代理扩展配置,其中,所述代理扩展绑定用于表征将所述扩展配置生效至所述服务网格代理。

在本公开的一个实施例中,所述根据所述代理扩展绑定生成所述网格代理扩展配置,包括:

将所述代理扩展绑定与预设的资源对象进行融合处理,得到融合资源对象,并根据所述融合资源对象生成所述网格代理扩展配置。

在本公开的一个实施例中,所述根据所述网格代理扩展配置激活服务网格代理的扩展插件能力,包括:

根据所述网格代理扩展配置生成代理扩展插件数据,并根据所述代理扩展插件数据激活所述服务网格代理的扩展插件能力。

在本公开的一个实施例中,代理扩展插件数据具有版本属性,不同版本的代理扩展插件数据用于激活不同的服务网格代理的扩展插件能力。

第二方面,本公开实施例提供一种网格代理配置扩展的装置,所述装置包括:

获取单元,用于获取用户发起的网格代理扩展请求,其中,所述网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据;

生成单元,用于根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置;

激活单元,用于根据所述网格代理扩展配置激活服务网格代理的扩展插件能力。

在本公开的一个实施例中,若所述网格代理扩展请求包括所述网格代理扩展参数,所述获取单元,包括:

第一生成子单元,用于根据历史网格代理扩展需求生成针对所述历史网格代理扩展需求的网格代理扩展描述类目;

接收子单元,用于接收所述用户基于所述网格代理扩展描述类目输入的所述网格代理扩展参数。

在本公开的一个实施例中,所述生成单元,包括:

分析子单元,用于根据所述网格实例概要对所述网格代理扩展参数进行分析,得到所述用户的当前网格代理扩展需求;

转换子单元,用于将所述当前网格代理扩展需求转换为网格代理扩展资源对象,并根据所述网格代理扩展资源对象、以及预设的与所述当前网格代理扩展需求绑定的应用服务实例的信息,转换得到所述网格代理扩展配置。

在本公开的一个实施例中,若所述网格代理扩展请求中包括所述扩展模板数据,所述生成单元,包括:

提取子单元,用于从预设的网格代理扩展模板集合中,提取与所述模板数据相对应的目标代理扩展模板内容;

第二生成子单元,用于根据所述目标代理扩展模板内容和所述网格实例概要生成所述网格代理扩展配置。

在本公开的一个实施例中,所述第二生成子单元,包括:

获取模块,用于获取所述目标代理扩展模板内容中的扩展配置;

生成模块,用于根据所述网格实例概要、所述扩展配置、以及预设的与所述网格代理扩展功能绑定的应用服务实例的信息生成代理扩展绑定,并根据所述代理扩展绑定生成所述网格代理扩展配置,其中,所述代理扩展绑定用于表征将所述扩展配置生效至所述服务网格代理。

在本公开的一个实施例中,所述生成模块,包括:

融合子模块,用于将所述代理扩展绑定与预设的资源对象进行融合处理,得到融合资源对象;

生成子模块,用于根据所述融合资源对象生成所述网格代理扩展配置。

在本公开的一个实施例中,所述激活单元,包括:

第三生成子单元,用于根据所述网格代理扩展配置生成代理扩展插件数据;

激活子单元,用于根据所述代理扩展插件数据激活所述服务网格代理的扩展插件能力。

在本公开的一个实施例中,代理扩展插件数据具有版本属性,不同版本的代理扩展插件数据用于激活不同的服务网格代理的扩展插件能力。

第三方面,本公开实施例提供一种电子设备,包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使电子设备能够执行本公开第一方面中任一项所述的方法。

第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开第一方面中任一项所述的方法。

第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开第一方面中任一项所述的方法。

本公开实施例提供一种网格代理扩展的方法和装置,该方法包括:获取用户发起的网格代理扩展请求,其中,网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据,根据网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置,根据网格代理扩展配置激活服务网格代理的扩展插件能力,以实现网格代理扩展,在本实施例中,通过结合网格实例概要和网格代理扩展参数,或者结合网格实例概要和扩展模板数据,或者结合网格代理扩展参数、扩展模板数据以及网格实例概要实现网格代理扩展,可以实现网格代理扩展的灵活性、多样性以及可靠性的技术效果。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开一个实施例的服务网格的示意图;

图2为本公开实施例的网格代理的原理示意图;

图3为本公开一个实施例的网格代理扩展的方法的示意图;

图4为本公开另一实施例的网格代理扩展的方法的示意图;

图5为本公开另一实施例的网格代理扩展的方法的示意图;

图6为本公开另一实施例的服务网格的示意图;

图7为本公开一个实施例的网格代理配置扩展的装置的示意图;

图8为根据本公开另一实施例的网格代理配置扩展的装置的示意图;

图9为本公开实施例的电子设备的硬件结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1为本公开一个实施例的服务网格的示意图,该服务网格100主要用于方便多个微服务之间进行安全和可靠的通信,微服务是指将应用程序分解为多个较小的服务或者实例,并分布在不同的集群/机器上运行。

如图1所示,微服务包括应用服务实例A和应用服务实例B,应用服务实例A和应用服务实例B形成服务网格100的功能应用层。在一种实施方式中,应用服务实例A和B以容器/进程的形式运行在机器/工作负载容器组108、110(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 Calls,gRPC),远程字典服务(Remote Dictionary Server,Redis)等形式。

在一种实施方式中,可以通过为服务网格100中的代理(Envoy)编写自定义的过滤器(Filter)来实现扩展数据平面层的功能,服务网格代理配置可以是为了使服务网格正确地代理服务流量,实现服务互通和服务治理。网格代理103和网格代理105可以被配置成执行至少如下功能中的一种:服务发现(service discovery),健康检查(health checking),路由(Routing),负载均衡(Load Balancing),认证和授权(authentication andauthorization),以及可观测性(observability)。

如图1所示,该服务网格100还包括控制平面层。其中,控制平面层可以是由一组在一个专用的命名空间中运行的服务,在机器/工作负载容器组(machine/Pod)102由托管控制面组件101来托管这些服务。如图1所示,托管控制面组件101与网格代理103和网格代理105进行双向通信。托管控制面组件101被配置成执行一些控制管理的功能。例如,托管控制面组件101接收网格代理103和网格代理105传送的遥测数据,可以进一步对这些遥测数据做聚合。这些服务,托管控制面组件101还可以提供面向用户的应用程序接口(API),以便较容易地操纵网络行为,以及向网格代理103和网格代理105提供配置数据等。

图2为本公开实施例的网格代理的原理示意图,以Envoy网格代理为例,如图2所示,被调用者下游(Downstream)主机请求连接到Envoy,监听器(Listener)用于绑定到IP地址/端口并接收来自下游主机的连接。通过配置监听器,用户可以启用通过Envoy的流量管理能力,然后使用多个过滤器增强数据流,多个过滤器构成了一个过滤器链(FilterChain)。下游主机的请求经过过滤器链处理之后,被映射到相应的Envoy连接到的逻辑上相同的一组上游主机集群(Cluster),上游主机集群的作用是负责连接到一组上游节点服务,并使用关联的负载均衡策略转发这些请求。

应该理解的是,上述示例只是用于示范性地说明网格代理的原理,而不能理解为对网格代理的限定。例如,上述下游主机在另一些实施例中也可以为上游主机,过滤器链中的过滤器数量可以更多,也可以更少,等等,此处不再一一列举。

在一些实施例中,为了实现对网格代理的扩展,可以采用添加过滤器的方式实现,如在上述实施例的过滤器链中插入更多的过滤器等,且可以通过人为的方式插入过滤器,以实现网格代理的扩展。

然而,过滤器的类型较多,且Envoy的原理是实现等较为复杂,若通过人为的方式实现网格代理的扩展,需要对Envoy有比较专业的了解。因此,采用该种方式实现网格代理的扩展,可能存在准确性偏低的技术问题。

为了避免上述技术问题,本公开的发明人经过创造性地劳动,得到了本公开的发明构思:结合网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据生成网格代理扩展配置,以实现网格代理的扩展。

下面,通过具体实施例对本公开的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图3为本公开一个实施例的网格代理扩展的方法的示意图,如图3所示,该方法包括:

S301:获取用户发起的网格代理扩展请求。其中,网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据。

示例性的,本实施例的执行主体可以为网格代理扩展的装置,该装置可以为服务器,也可以为计算机,也可以为终端设备,也可以为芯片,也可以为处理器等,本实施例不做限定。

网格代理扩展参数是指,为了实现网格代理扩展而在网格代理扩展请求中携带的参数,即可以理解为以通过配置参数的方式实现对网格代理的扩展。

扩展模板数据是指,为了实现网格代理扩展而在网格代理扩展请求中携带的逻辑代码,即可以理解为通过配置逻辑代码的方式实现对网格代理的扩展。

S302:根据网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置。

其中,网格实施概要用于表征网格实例的信息,如网格实例的版本等。

结合上述分析,一个示例中,可以结合网格代理扩展参数和网格实例概要生成网格代理扩展配置,另一个示例中,可以结合扩展模板数据和网格实例概要生成网格代理扩展配置,再一个示例中,可以结合网格代理扩展参数、扩展模板数据以及网格实例概要生成网格代理扩展配置。

S303:根据网格代理扩展配置激活服务网格代理的扩展插件能力,以实现网格代理扩展。

其中,服务网格代理可以为如上述实施例中的网格代理103和105。

基于上述分析可知,本公开实施例提供了一种网格代理扩展的方法,该方法包括:获取用户发起的网格代理扩展请求,其中,网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据,根据网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置,根据网格代理扩展配置激活服务网格代理的扩展插件能力,以实现网格代理扩展,在本实施例中,通过结合网格实例概要和网格代理扩展参数,或者结合网格实例概要和扩展模板数据,或者结合网格代理扩展参数、扩展模板数据以及网格实例概要实现网格代理扩展,可以实现网格代理扩展的灵活性、多样性以及可靠性的技术效果。

为了使读者更加深刻地理解本公开的实现原理,现结合图4,从根据网格代理扩展参数和网格实例概要的维度对本公开的网格代理扩展的方法进行详细地阐述。

如图4所示,该方法包括:

S401:根据历史网格代理扩展需求生成针对历史网格代理扩展需求的网格代理扩展描述类目。

应该理解的是,为了避免繁琐的陈述,关于本实施例与上述实施例相同的技术特征,本实施例不再赘述。

其中,网格代理扩展描述类目是指,为实现网格代理扩展的参数配置的项目,如本地速率限制器(LocalRateLimiter)、入口网关(ingressgateway)以及工作负载标签选择器(workloadSelector)等,此处不再一一列举。

S402:接收用户基于网格代理扩展描述类目输入的网格代理扩展参数。

示例性的,网格代理扩展的装置可以为用户提供云原生声明式API,以使得用户通过该API的方式输入的网格代理扩展参数。

例如,网格代理扩展的装置可以为客户端提供API,以输出网格代理扩展描述类目,用户可以填写网格代理扩展参数,相应的,网格代理扩展的装置接收网格代理扩展参数。

在本实施例中,通过基于网格代理扩展描述类目获取网格代理扩展参数,可以实现以灵活扩展的方式实现动态扩展机制,以满足不同网格代理扩展需求的网格代理扩展。

S403:根据预设的网格实例概要对网格代理扩展参数进行分析,得到用户的当前网格代理扩展需求。

S404:将当前网格代理扩展需求转换为网格代理扩展资源对象。其中,网格代理扩展资源对象用于表征过滤器的插入位置和数量等信息。

示例性的,根据网格实例概要对网格代理扩展参数的分析,可以知道与网格代理扩展参数对应的网格代理扩展需求(即当前网格代理扩展需求),在知道当前网格代理扩展需求之后,则可以对该当前网格代理扩展需求进行转换,以得到与该当前网格代理扩展需求对应的过滤器的扩展信息,如过滤器的插入位置和/或数量等。

S405:根据网格代理扩展资源对象、以及预设的与当前网格代理扩展需求绑定的应用服务实例的信息,转换得到网格代理扩展配置。

其中,不同的网格代理扩展需求对应的应用服务实例可能不同,即不同的应用服务实例基于其提供的应用服务,所支持的网格代理扩展可能不同。因此,在本实施例中,在本实施例中,可以结合与当前网格代理扩展需求绑定的应用服务实例的信息,转换得到网格代理扩展配置。

结合上述分析,在本实施例中,通过结合网格代理扩展资源对象得到网格代理扩展配置,可以避免相关技术中基于人为的方式确定网格代理扩展配置造成的准确性偏低等弊端,提高了网格代理扩展配置的准确性和可靠性。

S406:根据网格代理扩展配置生成代理扩展插件数据,并根据代理扩展插件数据激活服务网格代理的扩展插件能力,以实现网格代理扩展。

在一些实施例中,代理扩展插件数据具有版本属性,不同版本的代理扩展插件数据用于激活不同的服务网格代理的扩展插件能力。

为了使读者更加深刻地理解本公开的实现原理,现结合图5,从根据扩展模板数据和网格实例概要的维度对本公开的网格代理扩展的方法进行详细地阐述。

如图5所示,该方法包括:

S501:根据历史网格代理扩展需求生成针对历史网格代理扩展需求的网格代理扩展模板集合。其中,网格代理扩展模板集合中包括代理扩展模板。

为了避免繁琐的陈述,关于本实施例与上述实施例相同的技术特征,本实施例不再赘述。

在本实施例中,可以根据不同的历史网格代理扩展需求,生成与各历史网格代理扩展需求各自对应的代理扩展模板。

也就是说,对于实现同一种数据面扩展功能的网格代理扩展,可以提前针对不同版本的网格代理扩展准备不同的代理扩展模板。在应用代理扩展时,根据待应用扩展的服务网格代理的扩展功能需求等动态地决定应用哪种代理扩展模板。

S502:接收用户输入的表征网格代理扩展功能需求的扩展模板数据。

同理,用户可以通过该系统以云原生声明式API的方式输入扩展模板数据。

S503:从网格代理扩展模板集合中,提取与模板数据相对应的目标代理扩展模板内容,并根据目标代理扩展模板内容和网格实例概要生成网格代理扩展配置。

示例性的,网格代理扩展模板集合中包括不同的代理扩展模板,以用于实现不同的网格代理扩展的需求,当接收到用户输入的表征网格代理扩展功能需求的扩展模板数据时,可以从各代理扩展模板中,提取与网格代理扩展功能需求对应的代理扩展模板(即目标代理扩展模板),以基于该代理扩展模板的内容(即目标代理扩展模板内容)生成网格代理扩展配置。

结合上述分析,在本实施例中,可以根据扩展模板数据动态地提取与之对应的目标代理扩展模板内容,以便在结合目标代理扩展模板内容和网格实例概要生成网格代理扩展配置时,提高生成的网格代理扩展配置的灵活性、多样性以及可靠性的技术效果。

在一些实施例中,S503可以包括如下步骤:

第一步骤:获取目标代理扩展模板内容中的扩展配置。

其中,不同的代理扩展模板内容中包括不同的扩展配置,不同的扩展配置用于实现不同的网格代理扩展需求。

第二步骤:根据网格实例概要、扩展配置、以及预设的与网格代理扩展功能绑定的应用服务实例的信息生成代理扩展绑定。其中,代理扩展绑定用于表征将扩展配置生效至服务网格代理。

第三步骤:根据代理扩展绑定生成网格代理扩展配置。

在本实施例中,通过结合扩展配置生成网格代理扩展配置,以实现基于不同的网格代理扩展功能需求的生成不同的网格代理扩展配置,且将不同的扩展配置生效至不同的服务网格代理,从而提高生成网格代理扩展配置的准确性和可靠性。

在一些实施例中,第三步骤可以包括如下子步骤:

第一子步骤:将代理扩展绑定与预设的资源对象进行融合处理,得到融合资源对象。

其中,资源对象可以包括工作负载标签选择器和预设的网格代理扩展配置项等,此处不再一一列举。

第二子步骤:根据融合资源对象生成网格代理扩展配置。

S504:根据网格代理扩展配置生成代理扩展插件数据,并根据代理扩展插件数据激活服务网格代理的扩展插件能力,以实现网格代理扩展。

同理,代理扩展插件数据具有版本属性,不同版本的代理扩展插件数据用于激活不同的服务网格代理的扩展插件能力。

上述是实施例分别从结合网格实例概要和网格代理扩展参数的维度(为便于区分,称为第一维度),以及从结合网格实例概要和扩展模板数据的维度(同理,为便于区分,称为第二维度)对网格代理扩展的原理进行了详细地阐述,而当结合结合网格代理扩展参数、扩展模板数据以及网格实例概要实现网格代理扩展时,可以结合第一维度和第二维度实现网格代理扩展。示例性的,可以根据第一维度的网格代理扩展配置和第二维度的网格代理扩展配置实现网格代理扩展。如可以为通过选取交集的方式实现,也可以通过选取并集的方式实现,此处不再赘述。

且结合上述分析可知,从第一维度实现网格代理扩展相对更为“固化”,以面向某具体特定功能意图,即网格代理扩展描述类目更具有针对性和固定性,如针对本地速率限制器而输入的网格代理扩展参数,又如针对入口网关而输入的网格代理扩展参数,等等。而从第二维度实现网格代理扩展相对更为“动态化”,以面向动态机制,即扩展模板数据更具有灵活性和多样性,如用户可以基于不同的网格代理扩展需求输入不同的扩展模板数据。

现结合上述实施例的网格代理扩展的原理以及图1,对本实施例的服务网格进行详细阐述如下:

图6为本公开另一实施例的服务网格的示意图,本实施例的服务网格主要用于说明上述实施例的网格代理扩展的原理,如图6所示,服务网格600包括控制平面层、数据平面层以及功能应用层。

其中,控制平面层包括:网格代理扩展描述类目611、网格实例概要612、代理扩展控制器613、转换引擎614、网格代理扩展模板集合615、代理扩展模板服务引擎616、融合引擎617以及代理扩展配置生成器618。

数据平面层包括:代理插件更新器621、服务网格代理622以及服务网格代理623。其中,服务网格代理可以简称为图1对应的实施例所述的网格代理。

功能应用层包括:应用服务实例631和应用服务实例632。

结合上述分析,在一些实施例中,控制平面层可以基于网格代理扩展描述类目611接收用户输入的网格代理扩展参数。代理扩展控制器613可以根据网格实例概要612对网格代理扩展参数进行分析,以得到用户的网格代理扩展需求(即如图4对应的实施例所述的当前网格代理扩展需求),如用于实现网格代理扩展的过滤器的类型、数量以及过滤器的插入位置等。转换引擎614对网格代理扩展需求进行转换,得到网格代理扩展资源对象。代理扩展配置生成器618根据网格代理扩展资源对象生成网格代理扩展配置,并将网格代理扩展配置传输给数据平面层的代理插件更新器621。

代理插件更新器621根据网格代理扩展配置生成代理扩展插件数据,并根据代理扩展插件数据激活服务网格代理622和服务网格代理623各自的扩展插件能力。

功能应用层的应用服务实例631和应用服务实例632对扩展插件能力进行使用。如应用服务实例631对服务网格代理622的扩展插件能力进行使用,应用服务实例632对服务网格代理623的扩展插件能力进行使用。

在另一些实施例中,控制平面层可以基于API获取表征网格代理扩展功能需求的扩展模板数据。代理扩展模板服务引擎616根据扩展模板数据、网格实例概要612以及网格代理扩展模板集合615生成生成代理扩展绑定。

例如,以Envoy代理扩展模板为例,Envoy代理扩展绑定即将Envoy代理扩展模板中定义的Envoy代理参数应用至具体的工作负载(即应用服务实例,如图1对应的实施例所述的机器/工作负载容器组)。

Envoy代理扩展绑定可以包括两部分的内容,一部分为指定Envoy代理扩展绑定的具体Envoy代理扩展模板项部分,此部分可以通过名称(name)字段指定绑定的Envoy代理模板名称,还可以通过版本(Version)字段匹配Envoy代理扩展模板中对应具体Envoy代理版本的模板项。其中,Envoy代理扩展模板中包括不同的版本的模板,不同版本的模板通过版本字段进行区分。也就是说,代理扩展模板项包括两部分的内容,一部分为,代理版本,一部分为该版本的代理扩展模板的具体模板配置,即该版本的代理扩展模板的网格代理配置。

Envoy代理扩展绑定另一部分为工作负载(workloads),其中,工具负载可以包括一系列工作负载标签选择器,其中选择器(selector)字段可以用于指示工作负载标签选择器的具体内容,名称空间(namespace)字段可以用于表征工作负载标签选择器生效的命名空间,名称字段可以用于区分工作负载标签选择器所选择的Envoy代理(即网格代理)。

融合引擎617对代理扩展绑定与预设的资源对象(如工作负载资源信息等)进行融合处理,得到融合资源对象。代理扩展配置生成器618根据融合资源对象生成网格代理扩展配置,并将网格代理扩展配置传输给数据平面层的代理插件更新器621。

同理,代理插件更新器621根据网格代理扩展配置生成代理扩展插件数据,并根据代理扩展插件数据激活服务网格代理622和服务网格代理623各自的扩展插件能力。

功能应用层的应用服务实例631和应用服务实例632对扩展插件能力进行使用。如应用服务实例631对服务网格代理622的扩展插件能力进行使用,应用服务实例632对服务网格代理623的扩展插件能力进行使用。

示例性的,代理扩展绑定通过工作负载标签选择器中的绑定项将代理扩展模板绑定至入口网关服务的代理,生成的网格代理扩展配置中包含了该绑定项中指定的工作负载标签选择器。网格代理扩展配置的名称与命名空间则由代理扩展模板绑定的名称字段与命名空间字段进行确定。通过上述示例,入口网关服务的代理将能够实现添加请求头(X-Frame-Options)的网格代理扩展功能。

图7为本公开一个实施例的网格代理配置扩展的装置的示意图,如图7所示,网格代理配置扩展的装置700,包括:

获取单元701,用于获取用户发起的网格代理扩展请求,其中,所述网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据。

生成单元702,用于根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置。

激活单元703,用于根据所述网格代理扩展配置激活服务网格代理的扩展插件能力。

图8为根据本公开另一实施例的网格代理配置扩展的装置的示意图,如图8所示,网格代理配置扩展的装置800,包括:

获取单元801,用于获取用户发起的网格代理扩展请求,其中,所述网格代理扩展请求中包括网格代理扩展参数和/或表征网格代理扩展功能需求的扩展模板数据。

在一些实施例中,若所述网格代理扩展请求包括所述网格代理扩展参数,结合图8所示,获取单元801,包括:

第一生成子单元8011,用于根据历史网格代理扩展需求生成针对所述历史网格代理扩展需求的网格代理扩展描述类目。

接收子单元8012,用于接收所述用户基于所述网格代理扩展描述类目输入的所述网格代理扩展参数。

生成单元802,用于根据所述网格代理扩展请求和预先设置的网格实例概要,生成网格代理扩展配置。

结合图8所示,在一些实施例中,生成单元802,包括:

分析子单元8021,用于根据所述网格实例概要对所述网格代理扩展参数进行分析,得到所述用户的当前网格代理扩展需求。

转换子单元8022,用于将所述当前网格代理扩展需求转换为网格代理扩展资源对象,并根据所述网格代理扩展资源对象、以及预设的与所述当前网格代理扩展需求绑定的应用服务实例的信息,转换得到所述网格代理扩展配置。

在一些实施例中,若所述网格代理扩展请求中包括所述扩展模板数据,结合图8所示,生成单元802,包括:

提取子单元8023,用于从预设的网格代理扩展模板集合中,提取与所述模板数据相对应的目标代理扩展模板内容。

第二生成子单元8024,用于根据所述目标代理扩展模板内容和所述网格实例概要生成所述网格代理扩展配置。

在一些实施例中,第二生成子单元8024,包括:

获取模块,用于获取所述目标代理扩展模板内容中的扩展配置;

生成模块,用于根据所述网格实例概要、所述扩展配置、以及预设的与所述网格代理扩展功能绑定的应用服务实例的信息生成代理扩展绑定,并根据所述代理扩展绑定生成所述网格代理扩展配置,其中,所述代理扩展绑定用于表征将所述扩展配置生效至所述服务网格代理。

在一些实施例中,生成模块,包括:

融合子模块,用于将所述代理扩展绑定与预设的资源对象进行融合处理,得到融合资源对象。

生成子模块,用于根据所述融合资源对象生成所述网格代理扩展配置。

激活单元803,用于根据所述网格代理扩展配置激活服务网格代理的扩展插件能力。

结合图8所示,在一些实施例中,激活单元803,包括:

第三生成子单元8031,用于根据所述网格代理扩展配置生成代理扩展插件数据。

激活子单元8032,用于根据所述代理扩展插件数据激活所述服务网格代理的扩展插件能力。

在一些实施例中,代理扩展插件数据具有版本属性,不同版本的代理扩展插件数据用于激活不同的服务网格代理的扩展插件能力。

图9为本公开实施例提供的电子设备的硬件结构示意图。如图9所示,本公开实施例的电子设备900可以包括:至少一个处理器901(图9中仅示出了一个处理器);以及,与至少一个处理器通信连接的存储器902。其中,存储器902存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行,以使电子设备900能够执行前述任一方法实施例中的技术方案。

可选的,存储器902既可以是独立的,也可以跟处理器901集成在一起。

当存储器902是独立于处理器901之外的器件时,电子设备900还包括:总线903,用于连接存储器902和处理器901。

本公开实施例提供的电子设备可以执行前述任一方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。

本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序被处理器执行时用于实现前述任一方法实施例中的技术方案。

本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一方法实施例中的技术方案。

本公开实施例还提供了一种芯片,包括:处理模块与通信接口,该处理模块能执行前述方法实施例中的技术方案。

进一步地,该芯片还包括存储模块(如,存储器),存储模块用于存储指令,处理模块用于执行存储模块存储的指令,并且对存储模块中存储的指令的执行使得处理模块执行前述方法实施例中的技术方案。

应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本公开附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。

最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。

相关技术
  • 网格代理扩展的方法和装置
  • 一种服务网格中代理的扩展方法、系统及存储介质
技术分类

06120114721148