CN117130720A - 基于容器集群管理系统的资源分配方法及相关设备 - Google Patents
基于容器集群管理系统的资源分配方法及相关设备 Download PDFInfo
- Publication number
- CN117130720A CN117130720A CN202210585319.XA CN202210585319A CN117130720A CN 117130720 A CN117130720 A CN 117130720A CN 202210585319 A CN202210585319 A CN 202210585319A CN 117130720 A CN117130720 A CN 117130720A
- Authority
- CN
- China
- Prior art keywords
- request
- management system
- resource
- cluster management
- protocol conversion
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013468 resource allocation Methods 0.000 title claims abstract description 34
- 238000006243 chemical reaction Methods 0.000 claims abstract description 218
- 238000012217 deletion Methods 0.000 claims description 24
- 230000037430 deletion Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000002955 isolation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种基于容器集群管理系统的资源分配方法及相关设备。其中,方法包括:通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求;利用前端容器集群管理系统在接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至后端容器集群管理系统;利用后端容器集群管理系统根据协议转换后的请求中用户的唯一标识确定资源范围,在资源范围中确定与协议转换后的请求对应的数据内容,将数据内容与协议转换后的请求进行关联形成请求结果,将请求结果经过前端容器集群管理系统发送至终端设备。这种资源分配方式简单方便,能够在节省成本的同时提高资源分配的效率。
Description
技术领域
本申请涉及数据资源分配技术领域,尤其涉及一种基于容器集群管理系统的资源分配方法及相关设备。
背景技术
现有技术中,多租户是一种常见的软件思想架构设计,核心思想在多用户环境下实现资源共享,并保证各租户间的隔离性和安全性。
对于计算资源、网络资源和存储资源等资源进行分配的过程中一般采用Kubernetes(容器集群管理系统)集群进行资源分配。传统的Kubernetes资源分配方式,为了保证各个租户之间的资源不会冲突相互影响,采用每个租户拥有独立的Kubernetes,利用各个独立的Kubernetes进行多租户资源分配。
但是,传统的资源分配方案需要为每个租户构建一个Kubernetes,需要的成本较高、创建的效率较低。
发明内容
有鉴于此,本申请的目的在于提出一种基于容器集群管理系统的资源分配方法及相关设备以解决或部分解决上述技术问题。
基于上述目的,本申请的第一方面提供了一种基于容器集群管理系统的资源分配方法,所述容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统;
所述方法包括:
通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识;
利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
在一些实施例中,所述请求接收接口包括下列至少之一:
命名空间资源接口,用于接收命名空间的内置资源的数据请求;
集群范围资源接口,用于接收非命名空间的内置资源的数据请求;
自定义资源接口,用于接收自定义资源的数据请求。
在一些实施例中,所述利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述命名空间资源接口,定位所述数据请求中所述命名空间资源接口对应的命名空间数据段;
通过前端容器集群管理系统将所述用户的唯一标识,与所述命名空间数据段进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述集群范围资源接口,定位所述数据请求中所述集群范围资源接口对应的命名数据段;
通过前端容器集群管理系统将所述用户的唯一标识,与所述命名数据段进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述自定义资源接口,定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段;
通过前端容器集群管理系统将所述用户的唯一标识,与所述自定义数据段和所述分组数据段均进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,所述定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段,包括:
响应于确定所述自定义资源接口的类型为自定义命名空间资源接口,定位所述数据请求中自定义命名空间资源接口对应的命名空间元数据段和分组数据段;
响应于确定所述自定义资源接口的类型为自定义集群范围资源接口,定位所述数据请求中自定义集群范围资源接口对应的命名元数据段和分组数据段。
在一些实施例中,所述将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,包括:
利用所述前端容器集群管理系统将所述请求结果中的协议转换后的请求的用户的唯一标识删除,将所述标识删除后的请求结果发送至所述终端设备。
在一些实施例中,所述数据请求包括下列至少之一:
创建类型请求、查询类型请求、更新类型请求和删除类型请求。
在一些实施例中,所述利用所述前端容器集群管理系统在所述接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为创建类型请求或更新类型请求,其中,所述创建类型请求或更新类型请求中包括:统一资源定位符和数据内容,所述数据内容中包括:与创建类型请求对应的创建数据、或与更新类型请求对应的更新数据;
通过所述前端容器集群管理系统在所述统一资源定位符和所述数据内容的对应请求接收接口的接口标识中,均添加所述用户的唯一标识,得到统一资源定位符协议转换请求和数据内容协议转换请求作为协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定与所述协议转换后的请求对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围内进行资源创建或资源更新,并将资源创建或资源更新后的数据信息作为所述数据内容。
在一些实施例中,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为查询类型请求,其中,所述查询类型请求中包括统一资源定位符;
通过所述前端容器集群管理系统在统一资源定位符的对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中查询至少一个资源数据信息,并将查询到的至少一个资源数据信息作为所述数据内容。
在一些实施例中,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为删除类型请求,其中,所述删除类型请求中包括统一资源定位符;
通过所述前端容器集群管理系统在统一资源定位符对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中确定对应的删除资源数据并将其删除,生成删除后的数据信息,将所述删除后的数据信息作为所述数据内容。
基于同一个发明构思,本申请的第二方面提出了一种基于容器集群管理系统的资源分配装置,其中,所述容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统,所述装置包括:
请求接收模块,被配置为通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识;
协议转换模块,被配置为利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
请求处理模块,被配置为利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
基于同一个发明构思,本申请的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
基于同一个发明构思,本申请的第四方面提出了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述的方法。
从上面所述可以看出,本申请提供的基于容器集群管理系统的资源分配方法及相关设备,能够通过前端容器集群管理系统在数据请求中对应请求接收接口的接口标识中添加用户的唯一标识,进而完成协议转换,这种协议转换方式在保证各个终端设备的租户资源的安全性的同时,还能够兼容容器集群管理系统的原生API;然后前端容器集群管理系统将协议转换后的请求发送至后端容器集群管理系统,利用后端容器集群管理系统根据用户的唯一标识确定对应的资源范围,从该资源范围中再确定与请求对应的数据内容,将其反馈给终端设备。这种资源分配方式简单方便,能够在节省成本的同时提高资源分配的效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的应用场景示意图;
图2A为本申请实施例的容器集群管理系统的结构示意图;
图2B为本申请实施例的基于容器集群管理系统的资源分配方法的流程图;
图2C为本申请实施例的以Pod这种命名空间资源接口为例的协议转换示意图;
图2D为本申请实施例的以Kubernetes PV这种集群范围资源接口为例的协议转换示意图;
图2E为本申请实施例的以自定义资源接口为CRD为例的协议转换示意图;
图3为本申请实施例的基于容器集群管理系统的资源分配装置的结构框图;
图4为本申请实施例的电子设备的结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
基于上述背景技术的描述,相关技术中还存在如下的情况:
云计算(英语:cloud computing)是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备,使用服务商提供的电脑基建作计算和资源。云计算通过资源的共享以达成规模经济,同时具备优秀的弹性能力,越来越多大大小小的公司在计算的基础上构建其IT设施。Kubernetes容器集群管理系统(简称K8S)是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源项目。在云计算提供诸多产品服务中,Kubernetes作为必不可缺核心的技术,扮演着“平台即服务(Platform as a Service)”的核心基座角色,是非常多产品服务的基础。
多租户是一种常见的软件思想架构设计,核心思想在多用户环境下实现资源共享,并保证各租户间的隔离性和安全性。Kubernetes多租户是指在一个或者多个K8S集群环境,为多个租户提供K8S服务,在实现服务架构和资源共享的同时保证安全和隔离,并具备极低的资源和运维成本、高效的租户生命周期管理能力等等。在建设多租户的能力,在满足功能的前提下坚持如下原则:
低成本:提供轻量级、低成本的租户管理能力。
兼容性:保持应用程序接口的兼容性。
无侵入:避免侵入Kubernetes,保持方案的简洁性。
安全性:保证租户之间的隔离性和安全。
伴随云计算和Kubernetes的发展和推广,诞生多个租户共享Kubernetes集群的需求,涌现多种方案,可分为如下三类。
Namespace as a Service(命名空间作为服务资源,NaaS)
多个租户共享一个Kubernetes集群,每个租户被限定在对应的Kubernetes命名空间(namespace),通过借助原生的隔离性来实现租户负载的隔离,同时共享资源。此条件下租户一般只能使用本命名空间下的资源,通常不具备访问全局性的权限,因此功能受限。优点是租户间可共享同一Kubernetes和计算资源池,具备资源和运维成本低、管理高效等特点。
Cluster as a Service(集群作为服务资源,CaaS)
每个租户对应一个独立的Kubernetes集群和计算资源,即一个Kubernetes集群只被一个租户使用。租户间完全隔离,互相不干扰,安全性和隔离性得到绝对的保障;缺点为每个租户的管理成本和资源成本较高。
Control planes as a Service(控制阶层作为服务资源,CPaaS)
每个租户拥有独立的Kubernetes(又称为virtual cluster,虚拟集群),通过共享计算资源池的形式实现多租户能力。典型的代表是Virtual Cluster项目,在一个称为supercluster(超星系团)的Kubernetes集群上容器化部署virtual cluster,各个virtualcluster共享supercluster的计算资源,从而实现多租户能力。
总结:
经过分析,发现上述多租户方案各有侧重的特点,是功能、成本、效率和安全的权衡,如下表1。
表1
基于上述描述的情况,下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
本申请提供了一种基于容器集群管理系统的资源分配方法及相关设备,通过前端容器集群管理系统在数据请求中对应请求接收接口的接口标识中添加用户的唯一标识,进而完成协议转换,这种协议转换方式在保证各个终端设备的租户资源的安全性的同时,还能够兼容容器集群管理系统的原生API;然后前端容器集群管理系统将协议转换后的请求发送至后端容器集群管理系统,利用后端容器集群管理系统根据用户的唯一标识确定对应的资源范围,从该资源范围中再确定与请求对应的数据内容,将其反馈给终端设备。这种资源分配方式简单方便,能够在节省成本的同时提高资源分配的效率。。
参考图1,其为本申请实施例提供的基于容器集群管理系统的资源分配方法的应用场景示意图。该应用场景包括终端设备101、服务器102、和数据存储系统103。其中,终端设备101、服务器102以及数据存储系统103之间均可通过有线或无线的通信网络连接。终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备视、个人数字助理(personal digital assistant,PDA)或其它能够实现上述功能的电子设备等。服务器102和数据存储系统103均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端设备101的使用者是租户,若有多个租户,就会对应有多个终端设备101,在服务器102上部署容器集群管理系统,租户通过终端设备101发送数据请求,通过容器集群管理系统接收该数据请求,并在数据请求中对应请求接收接口的接口标识中添加用户的唯一标识,进而完成协议转换根据用户的唯一标识确定对应的资源范围,从该资源范围中再确定与请求对应的数据内容,将其反馈给终端设备101。数据存储系统103为服务器102的工作运行提供数据存储支持,例如用于存储能够实现上述资源分配过程的程序代码。
下面结合图1的应用场景,来描述根据本申请示例性实施方式的基于容器集群管理系统的资源分配方法。需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
本申请实施例提供了一种基于容器集群管理系统的资源分配方法,其中该方法所用的容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统。
其中,如图2A所示,前端容器集群管理系统包括:无状态服务和键值数据库,具备良好的横向扩展能力。无状态服务:提供租户管理功能;提供访问统一入口,将来自租户的终端设备的请求经过协议转换后转发至后端容器集群管理系统,能够提供租户隔离限流等安全功能。无状态服务可以部署多份,具备高可靠、横向扩展的特点。键值数据库:用于存储租户的信息,包括基本信息、资源配额、安全配置等等,部署上全局唯一,具备高可靠和扩展能力。
后端容器集群管理系统能够根据请求与计算/存储/网络资源池进行交互,完成对资源数据的处理过程,再将处理结果通过前端容器集群管理系统反馈给租户的终端设备。
如图2B所示,该方法包括:
步骤200,对容器集群管理系统进行安全处理。安全处理包括:安全认证、流量管理和配额管理。
安全认证:
支持多种安全认证方式,兼容Kubernetes证书(X509)和Service Account(服务账户,SA)证书两种类型的凭据。这两种凭据均属于PKI(Public key infra,公钥基础设施)认证,只需要和Kubernetes Master(容器集群管理系统的控制模块)共用相同的CA(数字证书)即可实现凭据的认证功能,并提取出租户信息。
对于管理员通过终端设备签发的X509证书,每当创建租户时,会把租户名信息隐藏加入所签发的证书。这样每当收到租户通过终端设备发来的数据请求时,首先认证数据请求中携带的证书的有效性,进而解析证书中租户名字段,判断租户的真实性,认证通过后再进行后续的协议转换处理。
对于租户通过终端设备签发的Service Account(SA)证书,由于该证书包含namespace(命名空间)字段,故租户签发的SA同样包含了租户信息,首先认证数据请求中携带的证书的有效性,进而解析证书中租户名字段,判断租户的真实性,认证通过后再进行后续的协议转换处理。
流量管理:
能够基于流量管理方法实现对租户(即租户所用的终端设备的对应客户端账户)的流控管理。流量管理方式包括:租户流量隔离,即租户互不干扰,恶意租户(短时间内发送大量API请求)不会影响其他租户;租户流量加权,即允许管理员通过相应的终端设备为不同租户设置不同权重,允许高优租户发送更多并发请求。
管理员通过使用相应的终端设备创建租户时在max-requests-inflight字段设置来自该租户请求的最大并发数,对应模块会统计当前租户的并发数,每当收到来自某个租户通过终端设备发来的请求时,会查看该租户下当前的并发数。如果并发数超过上限,则拒绝该请求;否则给予放行。
配额管理:
实时统计租户的配额,包括常见的CPU、内场、Pod数量等资源;通过内置准入逻辑实时控制租户的资源不超出预设。
上述中安全认证和流量管理需要在实施下述实施例的后续步骤之前完成,对于配额管理会在下述实施例的后续所有步骤过程中一直存在,进而保证进行资源分配过程中始终保证资源在可控范围内,进而保证整体资源的安全运行。
步骤201,通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识。
具体实施时,多个租户可以分别通过各自的终端设备向前端容器集群管理系统发送数据请求。这样前端容器集群管理系统接收到的数据请求可能存在多个,但是这多个请求分别对应需要的计算/存储/网络资源可能会混乱,因此需要通过后续的步骤进行隔离分配。
在一些实施例中,所述数据请求包括下列至少之一:创建类型请求、查询类型请求、更新类型请求和删除类型请求。
根据创建类型请求创建租户:管理员创建租户,设置租户的名字、安全配置、其它配置等。管理员完成租户创建后,本方案继而为租户生成证书。
根据更新类型请求更新租户:管理员更新租户,修改安全配置、其它配置等等。
根据删除类型请求删除租户:管理员删除租户,包括租户的基本信息、租户在后端Kubernetes集群拥有的资源等。
根据查询类型请求查询租户:管理员查询租户的基本信息,包括租户的名字、安全配置、租户证书和其它配置等。管理将租户的证书颁发给租户,租户凭借证书在Kubernetes增删改查资源。
在一些实施例中,所述查询类型请求包括下列至少之一:
查询/监听一个选定资源、罗列/监听一个选定命名空间资源接口的所有资源、和罗列/监听选定租户的所有资源。
在一些实施例中,所述删除类型请求包括:删除一个选定资源或删除多个选定资源。
得到数据请求后,进行协议转换前,会先认证终端设备对应的租户凭据的有效性,进而从租户凭据对应的证书中解析出租户身份信息,满足之前步骤200预设的条件下,开始后续的协议转换过程。
步骤202,利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统。
具体实施时,数据请求中可以直接携带终端设备的用户(租户)的唯一标识(例如,租户名字)。并且在数据请求中会有对应资源的接口标识,也就是相应资源的对应字符段,一类资源可能存在一个或多个字符段。将用户的唯一标识添加到该接口标识中,避免各个租户的数据请求混淆发生冲突,进而能够更加快速准确的为数据请求分配相应的资源进行处理。
在一些实施例中,所述请求接收接口包括下列至少之一:
命名空间资源接口,用于接收命名空间的内置资源的数据请求;
集群范围资源接口,用于接收非命名空间的内置资源的数据请求;
自定义资源接口,用于接收自定义资源的数据请求。
还有其他资源接口,用于接收除上述三种之外的其他资源的数据请求。
具体实施时,上述中的请求接收接口指的是Kubernetes原生API接口,可分为上述几类。每类接口对应接收处理不同租户通过终端设备发来的数据请求。
在一些实施例中,针对命名空间资源接口,步骤202包括:
步骤202A1,利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述命名空间资源接口,定位所述数据请求中所述命名空间资源接口对应的命名空间数据段。
步骤202A2,通过前端容器集群管理系统将所述用户的唯一标识,与所述命名空间数据段进行关联标记,得到协议转换后的请求。
具体实施时,针对命名空间资源对应的数据请求通过命名空间资源接口接收,命名空间资源(Namespace scope resource):表示命名空间下的内置资源,命名空间资源为资源名称提供了一个范围,同一个命名空间资源下不允许资源重名,不同命名空间资源下允许资源重名,每个命名空间资源下的资源都包括其所属namespace的名称。对于这类资源,name和namespace在数据请求HTTP URL(统一资源定位符)和HTTP Body(数据内容)分别有如下关键体现:
HTTP URL:URL格式为/prefix/namespace/{namespace}/resource/{name},两个“{}”分别表示namespace和name对应的键值。
HTTP Body:包含namespace和name两个键值。
命名空间资源接口对应的命名空间数据段就是namespace。
Kubernetes中的命名空间资源接口有40多种,如图2C所示是以Pod这种命名空间资源接口为例的协议转换示意图,其他种类的命名空间资源接口的协议转换过程与Pod同理。由图可知,租户foofoo和租户barbar将对应的Pod类型的请求(请求中包括:name:a和namespace:a)进行协议转换,将租户名“foofoo”以及“barbar”作为对应namespace字段的前缀进行添加完成协议转换,两个租户协议转换后的请求就为Pod{name:a;namespace:foofoo-a}以及Pod{name:a;namespace:barbar-a}。
由于数据请求分为上述4种请求,针对每种请求对应的命名空间资源接口的协议转换过程为:
创建类型请求(POST):收到数据请求包括HTTP URL(统一资源定位符)和HTTPBody(数据内容)后,在HTTP URL和HTTP Body的namespace字段添加用户的唯一标识(例如,租户名字),然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源创建。HTTP Body中包括与创建类型请求对应的创建数据。
查询类型请求(GET)
查询/监听某个资源:收到数据请求后,在HTTP URL的namespace字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源查询。
罗列/监听某个命名空间资源下的所有资源:收到数据请求后,在HTTP URL的namespace字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源查询。
罗列/监听租户的所有资源:收到数据请求后,在HTTP URL的namespace字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,Kubernetes查询Kubernetes所有该类命名空间资源的资源,根据HTTP URL中namespace的用户的唯一标识匹配本租户的所有此类资源完成资源查询。
更新类型请求(PUT):收到数据请求后,在HTTP URL和HTTP Body的namespace字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源更新。HTTP Body中包括与更新类型请求对应的更新数据。
删除类型请求(DELETE)
删除某个资源:收到数据请求后,在HTTP URL的namespace字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes完成资源删除。
删除某些资源:收到数据请求后,在HTTP URL的namespace字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes,根据删除匹配条件向后端Kubernetes集群查询匹配的资源,对于属于本租户的资源,逐个向后端Kubernetes发送删除此资源的请求。
在一些实施例中,针对集群范围资源接口对应的步骤202包括:
步骤202B1,利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述集群范围资源接口,定位所述数据请求中所述集群范围资源接口对应的命名数据段。
步骤202B2,通过前端容器集群管理系统将所述用户的唯一标识,与所述命名数据段进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
具体实施时,针对集群范围资源(Cluster scope resource)对应的数据请求通过集群范围资源接口接收,集群范围资源属于对于非命名空间资源的Kubernetes内置资源,要求集群范围的资源名称是全局唯一的,对应的数据请求包括HTTP URL和HTTP Body:
HTTP URL:URL格式为/prefix/resource/{name},此“{}”表示name对应的值。
HTTP Body:包含name键值,包含相应请求的数据。
集群范围资源接口对应的命名数据段就是name。
Kubernetes约有20多种集群范围资源接口,在数据请求中集群范围资源接口对应的name字段前缀关联用户的唯一标识(例如,租户名字)实现此类资源的多租户能力。
如图2D所示以Kubernetes PV这种集群范围资源接口阐述协议转换的概览。租户foofoo和租户barbar将对应的PV类型的请求(请求中包括:name:a)进行协议转换,将租户名“foofoo”以及“barbar”作为对应name字段的前缀进行添加完成协议转换,两个租户协议转换后的请求就为PV{name:foofoo-a}以及PV{name:barbar-a}。
由于数据请求分为上述4种请求,针对每种请求对应的集群范围资源接口的协议转换过程为:
创建类型请求(POST):收到数据请求(包括HTTP URL和HTTP Body)后,在HTTP URL和HTTP Body的name字段添加用户的唯一标识(例如,租户名字),然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源创建。HTTP Body中包括与创建类型请求对应的创建数据。
查询类型请求(GET)
查询/监听某个资源:收到数据请求后,在HTTP URL的name字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes完成资源查询,通过后端Kubernetes完成资源查询。
罗列/监听租户的所有资源:收到数据请求后,在HTTP URL的name字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,Kubernetes查询Kubernetes所有该类命名空间资源的资源,根据HTTP URL中name字段中的用户的唯一标识匹配本租户的所有此类资源完成资源查询。
更新类型请求(PUT):收到数据请求后,在HTTP URL和HTTP Body的name字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源更新。HTTP Body中包括与更新类型请求对应的更新数据。
删除类型请求(DELETE)
删除某个资源:收到数据请求后,在HTTP URL的name字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes完成资源删除。
删除某些资源:收到数据请求后,在HTTP URL的name字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes,根据删除匹配条件向后端Kubernetes集群查询匹配的资源,对于属于本租户的资源,逐个向后端Kubernetes发送删除此资源的请求。
在一些实施例中,针对自定义资源接口,步骤202包括:
步骤202C1,利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述自定义资源接口,定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段。
其中,针对自定义资源对应的数据请求通过自定义资源资源接口接收,自定义资源接口的类型可以是用户从自定义命名空间资源和自定义集群范围资源中指定其中一个类型。
在一些实施例中,响应于确定所述自定义资源接口的类型为自定义命名空间资源接口,定位所述数据请求中自定义命名空间资源接口对应的命名空间元数据段和分组数据段;响应于确定所述自定义资源接口的类型为自定义集群范围资源接口,定位所述数据请求中自定义集群范围资源接口对应的命名元数据段和分组数据段。
步骤202C2,通过前端容器集群管理系统将所述用户的唯一标识,与所述自定义数据段和所述分组数据段均进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
具体实施时,自定义资源接口(Custom resource):非内置资源,由用户自定义的资源,扩展Kubernetes的功能支持与之相匹配的业务场景。Custom resource既可以属于namespace scope(命名空间资源),也可属于cluster scope(集群范围资源)。
对应的数据请求HTTP URL和HTTP Body中设置自定义数据段和分组数据段(group)。其中,自定义数据段中如果是命名空间资源就是namespace(即,命名空间元数据段),如果是集群范围资源就是name(即命名元数据段)。
自定义资源接口的name或者namespace由group+plural组成,选择在group前缀关联用户的唯一标识,则对应自定义数据段(name或者namespace)和分组数据段(group)均前缀关联用户的唯一标识。
如图2E所示以自定义资源接口为自定义集群范围资源接口(Custom ResourceDefinition,CRD)为例阐述协议转换的概览。租户foofoo和租户barbar将对应的CRD类型的请求(请求中包括:name:a.demo.com;group:demo.com;plural:a)进行协议转换,将租户名“foofoo”以及“barbar”作为前缀添加在“demo.com”中完成协议转换,两个租户协议转换后的请求就为CRD{name:a.foofoo-demo.com;group:foofoo-demo.com;plural:a}以及CRD{name:a.barbar-demo.com;group:barbar-demo.com;plural:a}。
针对自定义资源接口的协议转换过程分为两种情况:
第一种:如果自定义资源接口的类型为自定义命名空间资源接口,针对上述中的4中数据请求,对应的协议转换过程如下:
创建类型请求(POST):收到数据请求(包括HTTP URL和HTTP Body)后,在HTTP URL和HTTP Body的namespace和group字段添加用户的唯一标识(例如,租户名字),然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源创建。HTTP Body中包括与创建类型请求对应的创建数据。
查询类型请求(GET)
查询/监听某个资源:收到数据请求后,在HTTP URL的namespace和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes完成资源查询,通过后端Kubernetes完成资源查询。
罗列/监听租户的所有资源:收到数据请求后,在HTTP URL的namespace和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,Kubernetes查询Kubernetes所有该类命名空间资源的资源,根据HTTP URL中namespace和group字段中的用户的唯一标识匹配本租户的所有此类资源完成资源查询。
更新类型请求(PUT):收到数据请求后,在HTTP URL和HTTP Body的namespace和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源更新。HTTP Body中包括与更新类型请求对应的更新数据。
删除类型请求(DELETE)
删除某个资源:收到数据请求后,在HTTP URL的namespace和group字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes完成资源删除。
删除某些资源:收到数据请求后,在HTTP URL的namespace和group字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes,根据删除匹配条件向后端Kubernetes集群查询匹配的资源,对于属于本租户的资源,逐个向后端Kubernetes发送删除此资源的请求。
第二种:如果自定义资源接口的类型为自定义集群范围资源接口,针对上述中的4中数据请求,对应的协议转换过程如下:
创建类型请求(POST):收到数据请求(包括HTTP URL和HTTP Body)后,在HTTP URL和HTTP Body的name和group字段添加用户的唯一标识(例如,租户名字),然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源创建。HTTP Body中包括与创建类型请求对应的创建数据。
查询类型请求(GET)
查询/监听某个资源:收到数据请求后,在HTTP URL的name和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes完成资源查询,通过后端Kubernetes完成资源查询。
罗列/监听租户的所有资源:收到数据请求后,在HTTP URL的name和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,Kubernetes查询Kubernetes所有该类命名空间资源的资源,根据HTTP URL中name和group字段中的用户的唯一标识匹配本租户的所有此类资源完成资源查询。
更新类型请求(PUT):收到数据请求后,在HTTP URL和HTTP Body的name和group字段添加用户的唯一标识,然后将协议转换后的请求转至后端Kubernetes,通过后端Kubernetes完成资源更新。HTTP Body中包括与更新类型请求对应的更新数据。
删除类型请求(DELETE)
删除某个资源:收到数据请求后,在HTTP URL的name和group字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes完成资源删除。
删除某些资源:收到数据请求后,在HTTP URL的name和group字段添加用户的唯一标识,然后将将协议转换后的请求转发至Kubernetes,根据删除匹配条件向后端Kubernetes集群查询匹配的资源,对于属于本租户的资源,逐个向后端Kubernetes发送删除此资源的请求。
针对其他资源
除了上述各个核心资源以外,Kubernetes还有一部分其它资源API,主要包括集群状态、日志、文档等等,这些资源特性一致,无租户属性需求,因此协议转换针对此类处理仅做透明代理处理,即对其他资源对应的API接口传来的数据请求不进行协议转换直接传送。
步骤203,利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。该资源范围为对应用户提供对应的数据处理资源、流量资源、存储资源等。
在一些实施例中,对于步骤203中将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,包括:
利用所述前端容器集群管理系统将所述请求结果中的协议转换后的请求的用户的唯一标识删除,将所述标识删除后的请求结果发送至所述终端设备。
具体实施时,针对上述4种类型的数据请求进行协议转换后,也对应有4种协议转换后的请求。
(1)对于创建类型请求对应的协议转换后的请求,后端容器集群管理系统能够根据该请求中用户的唯一标识确定资源范围,在所述资源范围中根据该请求中的数据(例如创建的名称、对应匹配的资源数量、以及一些配置信息等)进行资源创建。将创建后的数据加入协议转换后的请求(例如,HTTP Body)中形成请求结果,通过前端容器集群管理系统将相应用户的唯一标识删除后返给对应的终端设备。
(2)对于查询类型请求对应的协议转换后的请求,后端容器集群管理系统能够根据该请求中用户的唯一标识确定资源范围,在所述资源范围中根据该请求中对应需要查询的任务,查找相应的资源数据,将查到的资源数据加入协议转换后的请求中形成请求结果,通过前端容器集群管理系统将相应用户的唯一标识删除后返给对应的终端设备。
(3)对于更新类型请求对应的协议转换后的请求,后端容器集群管理系统能够根据该请求中用户的唯一标识确定资源范围,在所述资源范围中根据该请求中对应更新资源的数据(例如,将A更新为B),进行资源更新,将更新后的结果数据加入协议转换后的请求中形成请求结果,通过前端容器集群管理系统将相应用户的唯一标识删除后返给对应的终端设备。
(4)对于删除类型请求对应的协议转换后的请求,后端容器集群管理系统能够根据该请求中用户的唯一标识确定资源范围,在所述资源范围中根据该请求中对应删除资源的数据(例如,删除A),将需要删除的资源删除,将删除后的结果数据加入协议转换后的请求中形成请求结果。如果该请求是删除多个选定资源,会对应有多个删除请求。各个删除请求对应携带相应的删除结果,全部删除完成后,将聚合所有的携带删除结果的删除请求,将其作为请求结果。通过前端容器集群管理系统将相应用户的唯一标识删除后返给对应的终端设备。
基于上述描述的实施例的方案,与相关技术中的NaaS、CaaS、CPaaS对应的各个性能方向的分析如下表2:
表2
由上表2可知本方案能够达到的效果如下:
1、通用性
上述实施例的方案能够对Kubernetes无侵入,可广泛用于云计算中的公有云、私有云和混合云等多种Kubernetes场景。
2、低成本
使得多租户的资源分配速度更快,达到轻量级的能力,同时具备管理海量租户、秒级管理租户生命周期能力,从而达到极低的运维和资源成本。
3、安全性
在控制面和数据多租户基础上,增强认证、流量管理、配额管理能力,从而具备资源分配环境的安全性。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例的基于容器集群管理系统的资源分配方法相对应的,本申请还提供了一种基于容器集群管理系统的资源分配装置。资源分配装置上设置的容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统
参考图3,该装置包括:
请求接收模块31,被配置为通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识;
协议转换模块32,被配置为利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
请求处理模块33,被配置为利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
在一些实施例中,所述请求接收接口包括下列至少之一:
命名空间资源接口,用于接收命名空间的内置资源的数据请求;
集群范围资源接口,用于接收非命名空间的内置资源的数据请求;
自定义资源接口,用于接收自定义资源的数据请求。
在一些实施例中,协议转换模块32包括:命名空间资源接口协议转换单元,被配置为:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述命名空间资源接口,定位所述数据请求中所述命名空间资源接口对应的命名空间数据段;通过前端容器集群管理系统将所述用户的唯一标识,与所述命名空间数据段进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,协议转换模块32包括:集群范围资源接口协议转换单元,被配置为:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述集群范围资源接口,定位所述数据请求中所述集群范围资源接口对应的命名数据段;通过前端容器集群管理系统将所述用户的唯一标识,与所述命名数据段进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,协议转换模块32包括:自定义资源接口协议转换单元,被配置为:
利用前端容器集群管理系统确定所述数据请求对应请求接收接口为所述自定义资源接口,定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段;通过前端容器集群管理系统将所述用户的唯一标识,与所述自定义数据段和所述分组数据段均进行关联标记,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统。
在一些实施例中,自定义资源接口协议转换单元,还被配置为:
响应于确定所述自定义资源接口的类型为自定义命名空间资源接口,定位所述数据请求中自定义命名空间资源接口对应的命名空间元数据段和分组数据段;响应于确定所述自定义资源接口的类型为自定义集群范围资源接口,定位所述数据请求中自定义集群范围资源接口对应的命名元数据段和分组数据段。
在一些实施例中,请求处理模块33包括用户的唯一标识删除单元,被配置为:
利用所述前端容器集群管理系统将所述请求结果中的协议转换后的请求的用户的唯一标识删除,将所述标识删除后的请求结果发送至所述终端设备。
在一些实施例中,所述数据请求包括下列至少之一:
创建类型请求、查询类型请求、更新类型请求和删除类型请求。
在一些实施例中,协议转换模块32包括:创建类型请求或更新类型请求协议转换单元,被配置为:
响应于利用所述前端容器集群管理系统确定所述数据请求为创建类型请求或更新类型请求,其中,所述创建类型请求或更新类型请求中包括:统一资源定位符和数据内容,所述数据内容中包括:与创建类型请求对应的创建数据、或与更新类型请求对应的更新数据;通过所述前端容器集群管理系统在所述统一资源定位符和所述数据内容的对应请求接收接口的接口标识中,均添加所述用户的唯一标识,得到统一资源定位符协议转换请求和数据内容协议转换请求作为协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
请求处理模块33包括:数据内容确定单元,被配置为:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围内进行资源创建或资源更新,并将资源创建或资源更新后的数据信息作为所述数据内容。
在一些实施例中,协议转换模块32包括:查询类型请求协议转换单元,被配置为:
响应于利用所述前端容器集群管理系统确定所述数据请求为查询类型请求,其中,所述查询类型请求中包括统一资源定位符;通过所述前端容器集群管理系统在统一资源定位符的对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
数据内容确定单元,还被配置为:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中查询至少一个资源数据信息,并将查询到的至少一个资源数据信息作为所述数据内容。
在一些实施例中,所述查询类型请求包括下列至少之一:
查询/监听一个选定资源、罗列/监听一个选定命名空间资源接口的所有资源、和罗列/监听选定租户的所有资源。
在一些实施例中,协议转换模块32包括:删除类型请求协议转换单元,被配置为:
响应于利用所述前端容器集群管理系统确定所述数据请求为删除类型请求,其中,所述删除类型请求中包括统一资源定位符;通过所述前端容器集群管理系统在统一资源定位符对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
数据内容确定单元,还被配置为:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中确定对应的删除资源数据并将其删除,生成删除后的数据信息,将所述删除后的数据信息作为所述数据内容。
在一些实施例中,所述删除类型请求包括:删除一个选定资源或删除多个选定资源。
基于同一发明构思,与上述任意实施例的方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于容器集群管理系统的资源分配方法或篇章纠错方法,并且具有相应的基于容器集群管理系统的资源分配方法或篇章纠错方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种基于容器集群管理系统的资源分配方法,其特征在于,所述容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统;
所述方法包括:
通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识;
利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
2.根据权利要求1所述的方法,其特征在于,所述请求接收接口包括下列至少之一:
命名空间资源接口,用于接收命名空间的内置资源的数据请求;
集群范围资源接口,用于接收非命名空间的内置资源的数据请求;
自定义资源接口,用于接收自定义资源的数据请求。
3.根据权利要求2所述的方法,其特征在于,所述利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用所述前端容器集群管理系统确定所述数据请求对应请求接收接口为所述命名空间资源接口,定位所述数据请求中所述命名空间资源接口对应的命名空间数据段;
通过所述前端容器集群管理系统将所述用户的唯一标识,与所述命名空间数据段进行关联标记,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统。
4.根据权利要求2所述的方法,其特征在于,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用所述前端容器集群管理系统确定所述数据请求对应请求接收接口为所述集群范围资源接口,定位所述数据请求中所述集群范围资源接口对应的命名数据段;
通过所述前端容器集群管理系统将所述用户的唯一标识,与所述命名数据段进行关联标记,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统。
5.根据权利要求2所述的方法,其特征在于,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
利用所述前端容器集群管理系统确定所述数据请求对应请求接收接口为所述自定义资源接口,定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段;
通过所述前端容器集群管理系统将所述用户的唯一标识,与所述自定义数据段和所述分组数据段均进行关联标记,得到所述协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统。
6.根据权利要求5所述的方法,其特征在于,所述定位所述数据请求中所述自定义资源接口对应的自定义数据段和分组数据段,包括:
响应于确定所述自定义资源接口的类型为自定义命名空间资源接口,定位所述数据请求中自定义命名空间资源接口对应的命名空间元数据段和分组数据段;
响应于确定所述自定义资源接口的类型为自定义集群范围资源接口,定位所述数据请求中自定义集群范围资源接口对应的命名元数据段和分组数据段。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,包括:
利用所述前端容器集群管理系统将所述请求结果中的协议转换后的请求的用户的唯一标识删除,将所述标识删除后的请求结果发送至所述终端设备。
8.根据权利要求7所述的方法,其特征在于,所述利用所述前端容器集群管理系统在所述接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为创建类型请求或更新类型请求,其中,所述创建类型请求或更新类型请求中包括:统一资源定位符和数据内容,所述数据内容中包括:与创建类型请求对应的创建数据、或与更新类型请求对应的更新数据;
通过所述前端容器集群管理系统在所述统一资源定位符和所述数据内容的对应请求接收接口的接口标识中,均添加所述用户的唯一标识,得到所述协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定与所述协议转换后的请求对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围内进行资源创建或资源更新,并将资源创建或资源更新后的数据信息作为所述数据内容。
9.根据权利要求7所述的方法,其特征在于,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为查询类型请求,其中,所述查询类型请求中包括统一资源定位符;
通过所述前端容器集群管理系统在统一资源定位符的对应请求接收接口的接口标识中,添加所述用户的唯一标识,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定与所述协议转换后的请求对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中查询至少一个资源数据信息,并将查询到的至少一个资源数据信息作为所述数据内容。
10.根据权利要求7所述的方法,其特征在于,所述利用前端容器集群管理系统在所述数据请求对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统,包括:
响应于利用所述前端容器集群管理系统确定所述数据请求为删除类型请求,其中,所述删除类型请求中包括统一资源定位符;
通过所述前端容器集群管理系统在统一资源定位符对应请求接收接口的接口标识中,添加所述用户的唯一标识完成协议转换,得到协议转换后的请求,将协议转换后的请求发送至所述后端容器集群管理系统;
所述在所述资源范围中确定与所述协议转换后的请求对应的数据内容,包括:
利用所述后端容器集群管理系统根据所述协议转换后的请求在所述资源范围中确定对应的删除资源数据并将其删除,生成删除后的数据信息,将所述删除后的数据信息作为所述数据内容。
11.一种基于容器集群管理系统的资源分配装置,其特征在于,所述容器集群管理系统包括:前端容器集群管理系统和后端容器集群管理系统,所述装置包括:
请求接收模块,被配置为通过所述前端容器集群管理系统的请求接收接口接收终端设备发来的数据请求,其中,所述数据请求中包括所述请求接收接口对应的接口标识和用户的唯一标识;
协议转换模块,被配置为利用所述前端容器集群管理系统在所述接口标识中添加用户的唯一标识完成协议转换,得到协议转换后的请求,将所述协议转换后的请求发送至所述后端容器集群管理系统;
请求处理模块,被配置为利用所述后端容器集群管理系统根据所述协议转换后的请求中用户的唯一标识确定资源范围,在所述资源范围中确定与所述协议转换后的请求对应的数据内容,将所述数据内容与所述协议转换后的请求进行关联形成请求结果,将所述请求结果经过所述前端容器集群管理系统发送至所述终端设备,其中,所述后端容器集群管理系统中存储有与各个用户的唯一标识对应的资源范围。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任意一项所述的方法。
13.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行如权利要求1至10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210585319.XA CN117130720A (zh) | 2022-05-20 | 2022-05-20 | 基于容器集群管理系统的资源分配方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210585319.XA CN117130720A (zh) | 2022-05-20 | 2022-05-20 | 基于容器集群管理系统的资源分配方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130720A true CN117130720A (zh) | 2023-11-28 |
Family
ID=88857000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210585319.XA Pending CN117130720A (zh) | 2022-05-20 | 2022-05-20 | 基于容器集群管理系统的资源分配方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130720A (zh) |
-
2022
- 2022-05-20 CN CN202210585319.XA patent/CN117130720A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8549010B2 (en) | Method and apparatus for providing distributed key range management | |
US10721317B2 (en) | Global provisioning of millions of users with deployment units | |
CN108521858A (zh) | 基于分组的数据通信的设备标识符相关操作处理 | |
WO2015081808A1 (en) | Method and apparatus for data transmission | |
US11100073B2 (en) | Method and system for data assignment in a distributed system | |
CA2802458C (en) | Synchronizing endpoint data stores having disparate schemas | |
CN106878367B (zh) | 服务接口异步调用的实现方法和装置 | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
CN111124589B (zh) | 一种服务发现系统、方法、装置及设备 | |
CN115658348B (zh) | 微服务调用方法、相关装置及存储介质 | |
CN107423037B (zh) | 应用程序接口定位方法及设备 | |
US10262024B1 (en) | Providing consistent access to data objects transcending storage limitations in a non-relational data store | |
CN105045762A (zh) | 一种配置文件的管理方法及装置 | |
US10003908B2 (en) | Method and system for allocating device object identifier (OID) in open machine-to-machine (M2M) system and application system applying the same | |
CN110213398B (zh) | 别名管理方法、装置、服务器及存储介质 | |
CN110580212B (zh) | 应用程序的数据导出方法、装置、电子设备及存储介质 | |
CN117130720A (zh) | 基于容器集群管理系统的资源分配方法及相关设备 | |
WO2021232860A1 (zh) | 通信方法、装置及系统 | |
US11652746B1 (en) | Resilient consistent hashing for a distributed cache | |
CN110059080B (zh) | 一种数据处理的方法和装置 | |
CN114830105A (zh) | 一种数据读取方法以及终端 | |
CN113742372A (zh) | 一种边缘节点中的数据的访问方法、装置及系统 | |
CN117407855B (zh) | 基于维度投影的统一用户认证方法、系统、设备及介质 | |
US11789787B2 (en) | Communicating between applications using api mapping | |
CN111581237B (zh) | 数据查询方法、装置、系统及电子设备 |
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 |