基于容器云平台的应用部署方法以及电子设备

阅读: 评论:0

著录项
  • CN202211332072.7
  • 20221027
  • CN115756499A
  • 20230307
  • 浙江大华技术股份有限公司
  • 陈鑫;高伟;周明伟
  • G06F8/60
  • G06F8/60 G06F9/455

  • 浙江省杭州市滨江区滨安路1187号
  • 浙江(33)
  • 深圳市威世博知识产权代理事务所(普通合伙)
  • 严翠霞
摘要
本申请公开了一种基于容器云平台的应用部署方法以及电子设备,该方法包括:在接收到在目标命名空间内部署目标应用的部署请求后,判断目标命名空间的预留功能是否被开启;若判断结果为目标命名空间的预留功能被开启,则响应于目标命名空间的资源已使用值与目标应用的资源申请值的总和不超过目标命名空间的资源总量限制值,将目标应用部署在目标命名空间内;若判断结果为目标命名空间的预留功能未被开启,则响应于目标租户的当前可使用资源值不小于目标应用的资源申请值,将目标应用部署在目标命名空间内。通过本申请的方法能够简化命名空间的资源配额配置过程。
权利要求

1.一种基于容器云平台的应用部署方法,其特征在于,所述方法包括:

在接收到在目标命名空间内部署目标应用的部署请求后,判断所述目标命名空间的预留功能是否被开启;

若判断结果为所述目标命名空间的预留功能被开启,则响应于所述目标命名空间的资源已使用值与所述目标应用的资源申请值的总和不超过所述目标命名空间的资源总量限制值,将所述目标应用部署在所述目标命名空间内;

若判断结果为所述目标命名空间的预留功能未被开启,则响应于目标租户的当前可使用资源值不小于所述目标应用的资源申请值,将所述目标应用部署在所述目标命名空间内;

其中,所述目标租户对应包括所述目标命名空间的至少一个命名空间,所述目标租户的当前可使用资源值等于所述目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第二命名空间的资源已使用值,所述第一命名空间为与所述目标租户对应且当前已开启预留功能的命名空间,所述第二命名空间为与所述目标租户对应且当前未开启预留功能的命名空间。

2.根据权利要求1所述的方法,其特征在于,所述响应于目标租户的当前可使用资源值不小于所述目标应用的资源申请值,将所述目标应用部署在所述目标命名空间内的步骤,包括:

响应于所述目标租户的当前可使用资源值不小于所述目标应用的资源申请值,获取所述目标命名空间的资源总量限制值;

响应于所述目标应用的资源申请值与所述目标命名空间的资源已使用值之和不大于所述目标命名空间的资源总量限制值,将所述目标应用部署在所述目标命名空间内。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

响应于所述目标租户的当前可使用资源值小于所述目标应用的资源申请值,提示所述目标租户配额不足;

和/或,响应于所述目标应用的资源申请值与所述目标命名空间的资源已使用值之和大于所述目标命名空间的资源总量限制值,提示所述目标命名空间配额不足。

4.根据权利要求1所述的方法,其特征在于,在所述在接收到在目标命名空间内部署目标应用的部署请求后,判断所述目标命名空间的预留功能是否被开启之前,还包括:

在接收到创建所述目标命名空间的创建请求后,确定所述目标租户的租户资源总量值减去所有所述第一命名空间的资源总量限制值,得到所述目标租户的资源可分配剩余值;

将所述目标租户的资源可分配剩余值提供给所述目标租户,以使所述目标租户根据所述目标租户的资源可分配剩余值,为所述目标命名空间设立资源总量限制值。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在接收到开启所述目标命名空间的预留功能的开启请求后,判断所述目标命名空间的资源总量限制值是否超过所述目标租户的目标资源值;

若判定所述目标命名空间的资源总量限制值不超过所述目标资源值,则开启所述目标命名空间的预留功能;

其中,所述目标租户的所述目标资源值等于所述目标租户的租户资源总量值依次减去所有所述第一命名空间的资源总量限制值以及所有第三命名空间的资源已使用值,所述第三命名空间为与所述目标租户对应且除所述目标命名空间之外的当前未开启预留功能的命名空间。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在接收到调整所述目标租户的租户资源总量值的变更请求后,将所述目标租户所在的目标集的集资源总量值以及所述目标集的资源已使用值提供给集管理员,以使所述集管理员根据所述目标集的集资源总量值以及所述目标集的资源已使用值,判断是否通过所述变更请求;

在所述集管理员选择通过所述变更请求后,更新所述目标租户的租户资源总量值。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

将携带有目标标识的命名空间确定为与所述目标租户对应,其中,所述目标标识与所述目标租户对应。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

统计所有携带有所述目标标识的命名空间的资源已使用值,得到所述目标租户的实际资源使用值。

9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器、所述通信电路,所述存储器中存储有程序数据,所述处理器通过执行所述存储器内的所述程序数据以实现如权利要求1-8任一项所述方法中的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行以实现如权利要求1-8任一项所述方法中的步骤。

说明书
技术领域

本申请属于容器云技术领域,特别是涉及一种基于容器云平台的应用部署方法以及电子设备。

随着云服务的兴起,企业和个人通过基于集的容器云平台进行协同工作逐渐成为主流选择,在容器云平台中,命名空间可以将资源对象进行逻辑隔离,是一组资源和对象的抽象集合。目前在容器云平台上,需要用户严格为每个命名空间设置资源配额,操作繁琐。

本申请提供一种基于容器云平台的应用部署方法以及电子设备,能够简化命名空间的资源配额配置过程。

本申请实施例第一方面提供一种基于容器云平台的应用部署方法,所述方法包括:在接收到在目标命名空间内部署目标应用的部署请求后,判断所述目标命名空间的预留功能是否被开启;若判断结果为所述目标命名空间的预留功能被开启,则响应于所述目标命名空间的资源已使用值与所述目标应用的资源申请值的总和不超过所述目标命名空间的资源总量限制值,将所述目标应用部署在所述目标命名空间内;若判断结果为所述目标命名空间的预留功能未被开启,则响应于目标租户的当前可使用资源值不小于所述目标应用的资源申请值,将所述目标应用部署在所述目标命名空间内;其中,所述目标租户对应包括所述目标命名空间的至少一个命名空间,所述目标租户的当前可使用资源值等于所述目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第二命名空间的资源已使用值,所述第一命名空间为与所述目标租户对应且当前已开启预留功能的命名空间,所述第二命名空间为与所述目标租户对应且当前未开启预留功能的命名空间。

本申请实施例第二方面提供一种电子设备,所述电子设备包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器、所述通信电路,所述存储器中存储有程序数据,所述处理器通过执行所述存储器内的所述程序数据以实现上述方法中的步骤。

本申请实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行以实现上述方法中的步骤。

有益效果是:在本申请的方案中,对于一个租户而言,当需要为其对应的一个命名空间预留资源时,只需要开启其预留功能即可,并不需要租户对其他未开启预留功能的命名空间设置严格的资源总量限制值,从而既能够为关键命名空间预留资源,也能够简化命名空间的资源配额配置过程。同时即使后续更新租户的租户资源总量值,也可以无需再为该租户对应的各个命名空间调整资源总量限制值。

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

图1是本申请基于容器云平台的应用部署方法一实施方式的流程示意图;

图2是本申请基于容器云平台的应用部署方法另一实施方式的流程示意图;

图3是本申请基于容器云平台的应用部署方法又一实施方式的部分流程示意图;

图4是本申请电子设备一实施方式的结构示意图;

图5是本申请电子设备另一实施方式的结构示意图;

图6是本申请计算机可读存储介质一实施方式的结构示意图。

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

需要说明的是,本申请中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在介绍本申请的方案之前,先对本申请所涉及到的部分专业术语进行介绍:

首先为了便于说明,将本申请中的容器云平台基于kubernetes(简称k8S)进行说明,本申请的应用部署方法由容器云平台执行。

在基于kubernetes的容器云平台的一个集中,可以创建多个命名空间(namespace),其中命名空间可以将资源对象进行逻辑隔离。同时在一个集中,一个租户可以管理多个命名空间,而一个命名空间只能被一个租户管理。

其中,集为每个租户分配资源,即允许每个租户使用多少资源,然后租户再将分配到的资源分配给对应的命名空间。

参阅图1,在本申请一实施方式中,基于容器云平台的应用部署方法包括:

S110:接收在目标命名空间内部署目标应用的部署请求。

具体地,当用户想要在集中的某个命名空间部署某一个应用时,向容器云平台发送部署请求,其中,将用户想要部署的应用定义为目标应用,想要将目标应用部署的命名空间定义为目标命名空间。

其中,步骤S110由k8S中的组件apiserver执行。在现有技术中,k8s提供了资源配额ResourceQuota声明命名空间的资源总量限制值,同时通过kube-controller-manager统计命名空间下的资源已使用值。其中,命名空间的资源总量限制值指的是,分给命名空间使用的资源的最大值;命名空间下的资源已使用值指的是,在分给命名空间的资源中,命名空间已经使用的资源的值。

在现有技术中,当用户想要在命名空间中部署应用时,组件apiserver根据所要部署应用的资源申请值(即部署应用所需要使用的资源大小)、命名空间的资源总量限制值以及命名空间的资源已使用值,判断是否能够在命名空间内部署应用,该过程具体包括:计算命名空间的资源总量限制值减去命名空间的资源已使用值,得到命名空间的资源剩余值;判断所要部署应用的资源申请值是否不超过命名空间的资源剩余值,若不超过,则后续可以在命名空间内部署应用,否则,以命名空间目前的配额,无法支持在命名空间内部署应用。

S120:判断目标命名空间的预留功能是否被开启。

若判断结果为目标命名空间的预留功能被开启,则执行步骤S130,若判断结果为目标命名空间的预留功能未被开启,则执行步骤S140。

具体地,对于任何一个命名空间来说,是否开启其预留功能由用户决定,用户在任何时刻都可以决定是否开启命名空间的预留功能。

其中对于任何一个命名空间来说,当开启其预留功能后,在该命名空间对应的租户的配额下,为该命名空间预留命名空间声明的资源,使得该命名空间可以独占声明的资源。具体地,以目标命名空间为例,将目标命名空间对应的租户定义为目标租户,当开启目标命名空间的预留功能时,在目标租户的配额中,为目标命名空间预留大小为目标命名空间的资源总量限制值的资源,使得目标命名空间可以独占该预留的资源,而目标租户中的其他命名空间,共享目标租户扣除为目标命名空间预留的资源后的剩余资源。为了便于理解,下面结合实例进行说明:

目标租户的租户资源总量值为2G,目标租户对应三个命名空间,分别为命名空间A、命名空间B以及命名空间C,其中,命名空间A为目标命名空间,假设命名空间A的资源总量限制值为1G,则在开启命名空间A的预留功能后,在目标租户的配额中,为命名空间A预留1G的资源,使得命名空间A可以独占这1G的资源,而命名空间B和命名空间C共享剩余的1G资源,即不管在任何时刻,都可以在命名空间A中使用不超过1G的资源,从而可以保证留给命名空间A的资源充足。

S130:判断目标命名空间的资源已使用值与目标应用的资源申请值的总和是否超过目标命名空间的资源总量限制值。

若判断结果为不超过,则执行步骤S150,否则,执行步骤S160。

具体地,当目标命名空间的预留功能被开启时,在目标租户下为其预留了其声明的资源,使得目标命名空间可以独占预留的资源,即目标命名空间可以独占大小为其对应的资源总量限制值的资源。

其中,目标命名空间的资源已使用值指的是,目标命名空间中已经使用的资源的总量,目标应用的资源申请值指的是,部署目标应用所需要使用的资源的大小。

由于目标命名空间可以独占大小为其对应的资源总量限制值的资源,因此当目标命名空间的资源已使用值与目标应用的资源申请值的总和没有超过目标命名空间的资源总量限制值时,说明为目标命名空间预留的剩余的资源(为目标命名空间预留的资源除去目标命名空间已经使用的资源)依然能够支持在目标命名空间中部署目标应用,而当目标命名空间的资源已使用值与目标应用的资源申请值的总和超过目标命名空间的资源总量限制值时,说明为目标命名空间预留的剩余资源已经不能支持在目标命名空间中部署目标应用,说明给目标命名空间分配的配额不足,因此为了将不支持在目标命名空间中部署目标应用的原因告知用户,执行步骤S160。当然在其他实施方式中,也可以不将不支持部署目标应用的原因告知用户,而是直接提示当前不支持部署目标应用。

S140:判断目标租户的当前可使用资源值是否小于目标应用的资源申请值。

若判断结果为不小于,则执行步骤S150,若判断结果为小于,则执行步骤S170。

其中,目标租户对应包括目标命名空间的至少一个命名空间,目标租户的当前可使用资源值等于目标租户的租户资源总量值依次减去与目标租户对应的当前所有已开启预留功能的命名空间的资源总量限制值、与目标租户对应的当前所有未开启预留功能的命名空间的资源已使用值。其中为了便于说明,将与目标租户对应的且当前已开启预留功能的命名空间定义为第一命名空间,将与目标租户对应的且当前未开启预留功能的命名空间定义为第二命名空间,则目标租户的当前可使用资源值等于目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第二命名空间的资源已使用值。

具体地,如果目标命名空间的预留功能未开启,则目标命名空间需要与目标租户对应的其他未开启预留功能的命名空间共享,目标租户的配额扣除为已开启预留功能的命名空间预留的资源后的剩余资源,因此如果在目标命名空间中部署目标应用,此时真正能够使用的资源为目标租户的配额扣除为已开启预留功能的命名空间预留的资源后的剩余资源中,未被使用的资源。

因此如果目标命名空间的预留功能未开启,则确定目标租户的当前可使用资源值等于目标租户的租户资源总量值减去目标租户中当前所有已开启预留功能的命名空间的资源总量限制值,然后再减去目标租户中当前未开启预留功能的命名空间的资源已使用值。

而如果目标租户的当前可使用资源值不小于目标应用的资源申请值,则说明当前的可使用资源支持部署目标应用,因此可以将目标应用部署在目标命名空间内,否则说明当前的可使用资源不支持部署目标应用,且不支持的原因在于目标租户的当前使用资源不足,则为了让用户能够了解到不支持部署目标应用的原因,可以提示目标租户配额不足,建议用户可以为目标租户分配更多的配额,即执行步骤S170,当然当判定当前的可使用资源不支持部署目标应用时,也可以不提示目标租户配额不足,而是直接提示当前不支持部署目标应用。

S150:将目标应用部署在目标命名空间内。

S160:提示目标命名空间配额不足。

S170:提示目标租户配额不足。

参阅图2,在本申请另一实施方式中,基于容器云平台的应用部署方法包括:

S210:接收在目标命名空间内部署目标应用的部署请求。

S220:判断目标命名空间的预留功能是否被开启。

若判断结果为目标命名空间的预留功能被开启,则执行步骤S230,若判断结果为目标命名空间的预留功能未被开启,则执行步骤S240。

S230:判断目标命名空间的资源已使用值与目标应用的资源申请值的总和是否超过目标命名空间的资源总量限制值。

若判断结果为不超过,则执行步骤S260,若判断结果为超过,则执行步骤S270。

S240:判断目标租户的当前可使用资源值是否小于目标应用的资源申请值。

若判断结果为不小于,则执行步骤S250,否则执行步骤S280。

其中,目标租户对应包括目标命名空间的至少一个命名空间,目标租户的当前可使用资源值等于目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第二命名空间的资源已使用值,第一命名空间为与目标租户对应且当前已开启预留功能的命名空间,第二命名空间为与目标租户对应且当前未开启预留功能的命名空间。

S250:判断目标应用的资源申请值与目标命名空间的资源已使用值之和是否不大于目标命名空间的资源总量限制值。

若判断结果为不大于,则执行步骤S260,否则执行步骤S270。

S260:将目标应用部署在目标命名空间内。

S270:提示目标命名空间配额不足。

S280:提示目标租户配额不足。

与上述实施方式不同的是,在本实施方式中,在判定出目标租户的当前可使用资源值不小于目标应用的资源申请值后,还会判断目标应用的资源申请值与目标命名空间的资源已使用值之和是否不大于目标命名空间的资源总量限制值,如果大于,则说明目标命名空间当前剩余的资源已经不支持部署目标应用,则提示目标命名空间的配额不足,否则在目标命名空间内部署目标应用。需要说明的是,如果目标命名空间不存在资源总量限制值,则在判定出目标租户的当前可使用资源值不小于目标应用的资源申请值后,可以直接将目标应用部署在目标命名空间内。具体地,用户在创建命名空间时,如果可以保证后续不需要开启该命名空间的预留功能,则可以不为其设置资源总量限制值,但是如果后续需要开启命名空间的预留功能,则必须为其设置资源总量限制值,使得根据其资源总量限制值,为其预留资源。

同时步骤S250不是必经步骤,在其他实施方式中,当目标命名空间存在资源总量限制值时,在步骤S240的判断结果为不小于时,可以直接执行步骤S260。

同时上面步骤S270和步骤S280均提示了不支持部署目标应用的原因,但是在其他实施方式中,如果判定出不支持部署目标应用,可以只告知用户当前不支持部署目标应用,而不对不支持的原因进行提示。

下面以创建目标命名空间为例,介绍命名空间的创建过程,参阅图3,该过程包括:

S310:在接收到创建目标命名空间的创建请求后,确定目标租户的租户资源总量值减去所有第一命名空间的资源总量限制值,得到目标租户的资源可分配剩余值。

S320:将目标租户的资源可分配剩余值提供给目标租户,以使目标租户根据目标租户的资源可分配剩余值,为目标命名空间设立资源总量限制值。

具体地,由于需要为开启预留功能的命名空间预留资源,因此目标租户能够分配给目标命名空间的资源为,分给目标租户的租户总资源扣除分配给所有已开启预留功能的命名空间的资源。

因此在接收到创建请求后,将目标租户的租户资源总量值减去目标租户中所有已开启预留功能的命名空间(也就是第一命名空间)的资源总量限制值后,得到目标租户的资源可分配剩余值,然后用户在设置目标命名空间的资源总量限制值时,只要保证目标命名空间的资源总量限制值不超过目标租户的资源可分配剩余值即可。

在本实施方式中,容器云平台在接收到开启目标命名空间的预留功能的开启请求后,判断目标命名空间的资源总量限制值是否超过目标租户的目标资源值;若判定目标命名空间的资源总量限制值不超过目标资源值,则开启目标命名空间的预留功能;其中,目标租户的目标资源值等于目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第三命名空间的资源已使用值,第三命名空间为与目标租户对应且除目标命名空间之外的当前未开启预留功能的命名空间。

其中,目标租户可以在创建目标命名空间时,决定是否开启目标命名空间的预留功能,也可以在创建时决定不开启目标命名空间的预留功能,后续在使用过程中,再决定开启目标命名空间的预留功能。

具体地,目标租户中能够分给目标命名空间使用的资源为目标租户的租户总资源扣除预留给目标租户中已开启预留功能的命名空间的资源以及除目标命名空间之外的其他未开启预留功能的命名空间所使用的资源,此处定义所述目标租户的租户资源总量值依次减去所有所述第一命名空间的资源总量限制值以及所有第三命名空间的资源已使用值,得到目标租户的目标资源值。

如果目标命名空间的资源总量限制值不超过目标租户的目标资源值,则目标租户能够为目标命名空间预留声明的资源,进而开启目标命名空间的预留功能,否则目标租户无法为目标命名空间预留声明的资源,则提示用户无法开启目标命名空间的预留功能,并可以提示用户无法开启的原因是,目标租户的配额不足。

为了便于理解,在此结合实例进行说明:

目标租户的租户资源总量值为2G,目标租户对应三个命名空间,分别为命名空间A、命名空间B以及命名空间C,且命名空间A的资源总量限制值为1G,命名空间B以及命名空间C对应的资源总量限制值均是0.8G,假设预先只开启了命名空间A的预留功能,在某一时刻,当目标租户想要开启命名空间B的预留功能时,此时如果命名空间C使用了0.1G的资源,则目标租户的目标资源值等于0.9G(2-1-0.1=0.9),此时0.8G小于0.9G,则支持开启命名空间B的预留功能,但是如果此时命名空间C使用了0.5G的资源,则目标租户的目标资源值等于0.5G(2-1-0.5=0.5),此时0.8G大于0.5G,则不支持开启命名空间B的预留功能。

又例如,如果目标租户的租户资源总量值为5G,当创建命名空间C时,已经创建了目标租户对应的命名空间A和命名空间B,且命名空间A的预留功能被开启,其资源总量限制值为2G,命名空间B的预留功能未被开启,但是其已经使用了0.5G的资源,则目标租户的目标资源值为2.5G(5-2-0.5=2.5),此时如果想要开启命名空间C的预留功能,则命名空间C的资源总量限制值最大不能超过2.5G,否则无法开启命名空间C的预留功能。

其中,用户可以通过容器云平台提供的按钮来选择是否开启目标命名空间的预留功能,其中,该按钮可以通过在资源配额ResourceQuota中增加标签实现。

其中,在创建命名空间时,与目标租户对应的任何一个命名空间的标签中都会加上目标租户的目标标识,当需要查询目标租户对应的命名空间时,可以直接查携带有目标标识的命名空间,也就是将携带有目标标识的命名空间确定为与目标租户对应。也就是说,与同一个租户对应的命名空间携带相同的目标标识,对应不同租户的命名空间携带不同的目标标识。

且在一应用场景中,当需要查询目标租户的实际资源使用情况时,可以通过查询携带有目标标识的命名空间的资源使用情况来得到目标租户的资源使用情况,具体而言,通过查询携带有目标标识的命名空间中的所有pod进而统计目标租户的资源使用情况,得到目标租户的实际资源使用值,并可以将目标租户的实际资源使用值提供给目标租户进行参考。可以理解的是,此处目标租户的实际资源使用值表征目标租户中实际已经使用的资源的量,也就是说,与目标租户对应的所有命名空间的资源已使用值的和值。

其中,可以在k8s中自定义资源租户配额(TenantQuota)对租户的实际资源使用值以及租户的租户资源总量值进行统计。其中,可以按照上述过程统计租户的实际资源使用值。

其中,租户的租户资源总量值由用户进行设定后,在容器云平台的运行过程中,用户还可以调整租户的租户资源总量值,下面以目标租户为例,介绍变更租户的租户资源总量值的过程:

当目标租户觉得自己的资源不足时,其可以填写申请单,在填写申请单时,容器云平台可以展示目标租户当前的实际资源使用值,然后让用户根据实际情况与自身需求填写申请单。

而在用户填写申请单后,对于容器云平台而言,其接收到调整目标租户的租户资源总量值的变更请求,而后容器云平台将目标租户所在的目标集的集资源总量值以及目标集的资源已使用值提供给集管理员,以使集管理员根据目标集的集资源总量值以及目标集的资源已使用值,判断是否通过变更请求;在集管理员选择通过变更请求后,更新目标租户的租户资源总量值。

具体地,与目标集对应的所有租户的租户资源总量值之和不会超过目标集的集资源总量值;同时目标集的资源已使用值等于与目标集对应的所有租户的实际资源使用值之和。

容器云平台在接收目标租户要求变更目标租户的租户资源总量值的请求之后,将目标租户所在目标集的集资源总量值以及目标集的资源已使用值提供给集管理员,而后集管理员可以根据目标集的集资源总量值、目标集的资源已使用值、请求变更后目标租户的租户资源总量值以及目标租户的实际资源使用值等,判断是否通过变更请求,如果集管理员同意变更请求,则容器云平台将目标租户的租户资源总量值更新为请求调整后的值,如果不同意,则提示用户变更请求不通过。

其中,在集管理员同意变更请求,资源租户配额(TenantQuota)将更新目标租户的租户资源总量值。

其中集管理员在判断变更请求时,如果变更请求为增加分配给目标租户的资源,且要求增加的资源值超过了目标集的集资源总量值与目标集的资源已使用值的差值(该差值为目标集的资源剩余值),则表明当前目标集的剩余资源不支持变更请求,则集管理员不会通过变更请求,且可以将不通过的原因告知用户。但是如果要求增加的资源值未超过目标集的资源剩余值,此时集管理员也不一定会通过变更请求,例如,虽然要求增加的资源值未超过目标集的资源剩余值,但是目标租户的当前可使用资源与目标租户的租户资源总量值的占比超过第一比例阈值,说明目标租户还有较多的资源未使用,此时为了避免为目标租户分配过量的资源而影响其他租户,则集管理员也可以选择不通过变更请求,又例如,目标租户的实际使用资源值与目标租户的租户资源总量值的比例小于第二比例阈值,说明目标租户实际使用的资源并不多,此时集管理员也可以不通过变更请求。

总而言之,集管理员具体根据何种规则判断是否通过变更请求,本申请不做具体限制。

在现有技术中,租户会为对应的每个命名空间设置资源总量限制值,以限制每个命名空间所使用资源的最大值,其中,与同一个租户对应的命名空间的资源总量限制值之和可以大于租户的租户资源总量值,例如,租户1对应的租户资源总量值为2G,租户1对应三个命名空间,分别为命名空间A、命名空间B以及命名空间C,其中,命名空间A、命名空间B以及命名空间C对应的资源总量限制值均是1G,表明命名空间A、命名空间B以及命名空间C这三个命名空间所使用的资源总值在不超过2G的前提下,这三个命名空间单独所使用的资源也不能超过1G。因此现有技术中,当租户想要为对应的某一个命名空间预留充足的资源时,需要严格设置其他命名空间的资源总量限制值,依旧以上述例子进行说明:当租户想要为命名空间A预留其声明的1G资源时,必须保证为命名空间B设置的资源总量限制值与为命名空间C设置资源总量限制值之和不超过1G。

但是从上述内容可以看出,在本申请的方案中,对于一个租户而言,当需要为其对应的一个关键、重要的命名空间预留资源时,只需要开启其预留功能即可,并不需要租户对其他未开启预留功能的命名空间设置严格的资源总量限制值,依旧以上述例子进行说明:当租户想要为命名空间A预留1G的资源时,只要开启命名空间A的预留功能即可,租户可以随意为命名空间B、命名空间C设置资源总量限制值,例如,此时依旧可以将命名空间B、命名空间C的资源总量限制值设置为1G,也可以将命名空间B、命名空间C的资源总量限制值一个设置为1G,另一个设置为0.5G,甚至还可以不为命名空间B、命名空间C设置资源总量限制值。因此通过本申请的方案,既能够为关键命名空间预留资源,也能够简化命名空间的资源配额配置过程。同时即使后续更新租户的租户资源总量值,也可以无需再为该租户对应的各个命名空间调整资源总量限制值。

同时在本申请的方案中,如果一个命名空间的预留功能没有被开启,则其对应的资源总量限制值的含义与现有技术一样,即在使用不超过租户的总资源的情况下,使用不超过租户中资源总量限制值的资源。

另外本申请还会对各个租户的实际资源使用值、租户资源总量值等进行统计,可以避免某一个租户占据大量资源而影响其他租户使用的情况发生,保证多个租户合理使用资源。

其中为了实现本申请的方案,具体可以在k8S的组件apiserver中新增准入控制插件,在目标租户想要在目标命名空间中部署目标应用时,利用该新增准入控制插件,判断目标命名空间是否开启预留功能,以及后续判断是否能够在目标命名空间内部署目标应用的具体过程。

参阅图4,图4是本申请电子设备一实施方式的结构示意图。该电子设备200包括处理器210、存储器220以及通信电路230,处理器210分别耦接存储器220、通信电路230,存储器220中存储有程序数据,处理器210通过执行存储器220内的程序数据以实现上述任一项实施方式方法中的步骤,其中详细的步骤可参见上述实施方式,在此不再赘述。

其中,电子设备200可以是电脑、手机等任一项具有算法处理能力的设备,且在电子设备200上可以部署容器云平台,具体地,电子设备200上部署的容器云平台在工作时执行上述任一项实施方式中的方法步骤。

参阅图5,图5是本申请电子设备另一实施方式的结构示意图。该电子设备300包括接收模块310、判断模块320以及部署模块330。

接收模块310用于接收在目标命名空间内部署目标应用的部署请求。

判断模块320与接收模块310连接,用于判断接收模块310在接收到部署请求后,判断目标命名空间的预留功能是否被开启,以及在判定结果为目标命名空间的预留功能被开启时,继续判断目标命名空间的资源已使用值与目标应用的资源申请值的总和是否不超过目标命名空间的资源总量限制值,以及在判断结果为目标命名空间的预留功能未被开启时,判断目标租户的当前可使用资源值是否不小于目标应用的资源申请值。

部署模块330用于在判断模块320判定目标命名空间的资源已使用值与目标应用的资源申请值的总和不超过目标命名空间的资源总量限制值时,将目标应用部署在目标命名空间内,以及在判断模块320判定目标租户的当前可使用资源值不小于目标应用的资源申请值时,将目标应用部署在目标命名空间内。

其中,目标租户对应包括目标命名空间的至少一个命名空间,目标租户的当前可使用资源值等于目标租户的租户资源总量值依次减去所有第一命名空间的资源总量限制值以及所有第二命名空间的资源已使用值,第一命名空间为与目标租户对应且当前已开启预留功能的命名空间,第二命名空间为与目标租户对应且当前未开启预留功能的命名空间。

其中,电子设备300可以是电脑、手机等任一项具有算法处理能力的设备,且在电子设备300上可以部署容器云平台,其中电子设备300上部署的容器云平台在工作时可以执行上述任一项实施方式中的方法步骤,详细的步骤可参见上述相关内容。

参阅图6,图6是本申请计算机可读存储介质一实施方式的结构示意图。该计算机可读存储介质400存储有计算机程序410,计算机程序410能够被处理器执行以实现上述任一项方法中的步骤。

其中,计算机可读存储介质400具体可以为U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储计算机程序410的装置,或者也可以为存储有该计算机程序410的服务器,该服务器可将存储的计算机程序410发送给其他设备运行,或者也可以自运行该存储的计算机程序410。

以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

本文发布于:2023-04-14 12:36:23,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/87169.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图