一种多云平台的kubenetes多租户资源隔离分配方法与流程

未命名 08-26 阅读:107 评论:0


1.本发明公开一种方法,涉及集群资源管理技术领域,具体地说是一种多云平台的kubenetes多租户资源隔离分配方法。


背景技术:

2.多租户技术是一种软件架构技术,是实现如何在多用户环境下共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。随着经济社会的发展以及人们对信息化认识的提高,租户对系统的个性化需求越来越普遍、对系统的安全性要求越来越高。另外租户自身多属于中小企业,又面临降成本、促成效的迫切需求,所以对于中小企业来说,多租户技术显得更加重要。
3.原生的kubernetes没有租户和多租户的概念,仅有命名空间的概念,现有技术大多数是基于命名空间来做多租户的实现,该租户无法共享其他命名空间或其他集群的资源,在云平台中租户之间并不能共享一个kubernetes集群中的命名空间并且无法跨集群调度资源,没有真正实现租户和多租户的功能和更好的提升资源利用率。


技术实现要素:

4.本发明针对现有技术的问题,提供一种多云平台的kubenetes多租户资源隔离分配方法,根据租户需求提供最优的资源配额,解决多租户跨集群资源利用率不高和数据隔离的问题。能够让目标租户更准确的统一管理和分配资源配额,提供更细粒度的资源配额管理。
5.本发明提出的具体方案是:
6.本发明提供一种多云平台的kubenetes多租户资源隔离分配方法,构建多租户资源隔离分配系统,所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,
7.利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,
8.通过响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,
9.通过权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,通过资源组控制分配集群的资源配额,
10.通过资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,
11.通过策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,
12.通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整
计算资源和存储资源的分配。
13.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配方法中所述通过前端模块在云平台ui界面建立用户的资源组,包括:设置资源组的名称、资源配额、pod安全策略、网络策略、分配的命名空间、资源组成员以及成员权限。
14.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配方法中所述通过响应模块接收所述请求并响应,包括:
15.响应资源池请求,所述资源池请求包括资源池创建、资源池修改、资源池查看及资源池释放。
16.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配方法中通过资源配置模块检测资源组权限和资源池空间是否满足条件,包括:通过资源配置模块检测资源组所属命名空间的资源组权限,判断资源组是否拥有所需要的集群权限,若有则通过资源配置模块对资源组所需要的集群资源占用空间进行确定,依据所述占用空间确定所述资源池空间,在资源配置前比较资源组所需要的集群资源的空闲容量与资源池空间的大小,若资源池空间小于资源组所需要的集群资源的空闲容量,则进行配置。
17.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配方法中所述通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配,包括:通过资源更改模块利用promethues对资源使用情况进行监听,当检测到需要进行资源配额重新分配时,通过资源更改模块重新对资源组进行调度分配。
18.本发明提供一种多云平台的kubenetes多租户资源隔离分配系统,所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,
19.利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,
20.响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,
21.权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,资源组控制分配集群的资源配额,
22.资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,
23.策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,
24.资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。
25.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配系统中所述前端模块在云平台ui界面建立用户的资源组,包括:设置资源组的名称、资源配额、pod安全策略、网络策略、分配的命名空间、资源组成员以及成员权限。
26.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配系统中所述响应模块接收所述请求并响应,包括:
27.响应资源池请求,所述资源池请求包括资源池创建、资源池修改、资源池查看及资
源池释放。
28.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配系统中资源配置模块检测资源组权限和资源池空间是否满足条件,包括:资源配置模块检测资源组所属命名空间的资源组权限,判断资源组是否拥有所需要的集群权限,若有则资源配置模块对资源组所需要的集群资源占用空间进行确定,依据所述占用空间确定所述资源池空间,在资源配置前比较资源组所需要的集群资源的空闲容量与资源池空间的大小,若资源池空间小于资源组所需要的集群资源的空闲容量,则进行配置。
29.优选地,所述的一种多云平台的kubenetes多租户资源隔离分配系统中资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配,包括:通过资源更改模块利用promethues对资源使用情况进行监听,当检测到需要进行资源配额重新分配时,通过资源更改模块重新对资源组进行调度分配。
30.本发明的有益之处是:
31.本发明提供一种多云平台的kubenetes多租户资源隔离分配方法,实现了云平台通过一个资源组资源跨集群对目标租户准确分配资源,解决了对kubenetes跨集群资源组无法统一管理的问题。大幅度提高了用户管理跨集群资源组的效率和集群的资源利用率,降低了运维成本。
附图说明
32.图1是本发明方法应用框架示意图。
具体实施方式
33.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
34.本发明提供一种多云平台的kubenetes多租户资源隔离分配方法,构建多租户资源隔离分配系统,所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,
35.利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,
36.通过响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,
37.通过权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,通过资源组控制分配集群的资源配额,
38.通过资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,
39.通过策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,
40.通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。
41.本发明方法可以基于kubernetes集群的基础架构,实现多租户资源隔离和资源更好地分配。具体应用中,在本发明方法的一些实施例中,进行kubenetes多租户资源隔离分配时,过程可参考如下:
42.步骤1:利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块。首先,用户可以通过本发明方法在云平台ui界面请求创建资源组,并对资源组的名称、资源配额、pod安全策略、网络策略、分配的命名空间、资源组成员以及成员权限进行设置。
43.步骤2:通过响应模块接收所述请求并响应,向其他模块发出相关资源池的请求。响应模块接收了用户请求,响应资源池请求,为目标用户分配目标标识信息,目标用户的资源池请求包括资源池创建、资源池修改、资源池查看及资源池释放等,此时响应模块向权限管理模块、资源配置模块、策略分发模块发送请求。并将用户信息发送至数据库保存。
44.步骤3:通过权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,通过资源组控制分配集群的资源配额。其中当资源组中分配了多个集群的命名空间时,云平台主节点会创建根据资源组id创建命名空间,在此命名空间中分配并绑定这些集群的管理权限,然后将角色权限信息发送至数据库。通过此模块可以实现一个资源组对多个集群的控制以及对资源配额的分配,实现对kubenetes资源的整合隔离。
45.步骤4:通过资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源。
46.进一步,包括:通过资源配置模块检测资源组所属命名空间的资源组权限,判断资源组是否拥有所需要的集群权限,若有则通过资源配置模块对资源组所需要的集群资源占用空间进行确定,依据所述占用空间确定所述资源池空间,在资源配置前比较资源组所需要的集群资源的空闲容量与资源池空间的大小,若资源池空间小于资源组所需要的集群资源的空闲容量,则进行配置。
47.其中资源配置模块检测资源组所属命名空间的权限,判断是否拥有所需要的集群权限,若满足,则进行资源配置,用户资源池请求对目标集群资源占用空间进行确定,依据所述占用空间确定所述目标用户的目标资源池空间,在对资源分配前,需要判断目标集群资源的空闲容量与目标资源池空间的大小;若目标资源池空间小于目标集群资源的空闲容量,则进行分配;否则,返回分配失败结果。避免因为目标集群资源的空闲容量不足而继续进行目标用户资源的分配,导致资源分配错误的问题只要其中一项不满足条件,则不能进行目标用户资源池的创建,并返回目标用户资源池申请失败,以进行维护或者再次申请;若都满足上述条件,则基于所述目标资源池空间,为所述目标用户分配目标用户资源;目标集群资源可以是多个节点资源的总量,且分为计算资源和存储资源,资源配置模块会根据各个节点资源的剩余量利用本方法中的算法选择最合适的资源分配方法。
48.例如我们用n表示多云平台各节点资源剩余的总量,用f(n)表示n对应的最大资源利用率。多云平台的最大资源利用率是这样计算的:f(1)=a+f(0)、f(2)=a+f(1)、

、f(n)=a+f(n-1),其中等号右侧表达式中的a指的是租户一的资源需求量,f(0)、f(1)

f(n-1)指的是集群没有任何资源利用时,资源需求量分别为0至n-1的对应的多云平台资源利用
率,在资源总额为1时的最大资源利用率是很容易计算的,在此基础上,依次推算出当多个租户申请分配资源池时的最大资源利用率。然后给出最优资源配额方法。
49.若用户所申请资源都不满足上述条件,则返回权限认证不成功,申请失败。
50.步骤5:通过策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源。其中策略分发模块接受响应模块发送的pod安全策略、网络策略创建请求,响应用户pod安全策略,网络策略,创建相关yaml文件,分发至资源组下游集群的命名空间进行创建。
51.步骤6:通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。
52.进一步,包括:通过资源更改模块利用promethues对资源使用情况进行监听,当检测到需要进行资源配额重新分配时,通过资源更改模块重新对资源组进行调度分配。可以通过策略分发模块接收到用户修改资源组的请求,响应用户pod安全策略,网络策略创建,并将策略分发至下游集群。
53.本发明方法应用时,一个资源组中分配了多个集群的命名空间时,云平台ui界面和服务端都只是创建了一个资源组用来管理租户,实现了资源组进行编辑的时候可以进行统一的管理更改。
54.本发明提供一种多云平台的kubenetes多租户资源隔离分配系统,所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,
55.利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,
56.响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,
57.权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,资源组控制分配集群的资源配额,
58.资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,
59.策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,
60.资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。
61.上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
62.同样地,本发明系统可以实现了云平台通过一个资源组资源跨集群对目标租户准确分配资源,解决了对kubenetes跨集群资源组无法统一管理的问题。大幅度提高了用户管理跨集群资源组的效率和集群的资源利用率,降低了运维成本。
63.需要说明的是,上述各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些
模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
64.以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

技术特征:
1.一种多云平台的kubenetes多租户资源隔离分配方法,其特征是构建多租户资源隔离分配系统,所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,通过响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,通过权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,通过资源组控制分配集群的资源配额,通过资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,通过策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。2.根据权利要求1所述的一种多云平台的kubenetes多租户资源隔离分配方法,其特征是所述通过前端模块在云平台ui界面建立用户的资源组,包括:设置资源组的名称、资源配额、pod安全策略、网络策略、分配的命名空间、资源组成员以及成员权限。3.根据权利要求1所述的一种多云平台的kubenetes多租户资源隔离分配方法,其特征是所述通过响应模块接收所述请求并响应,包括:响应资源池请求,所述资源池请求包括资源池创建、资源池修改、资源池查看及资源池释放。4.根据权利要求1所述的一种多云平台的kubenetes多租户资源隔离分配方法,其特征是通过资源配置模块检测资源组权限和资源池空间是否满足条件,包括:通过资源配置模块检测资源组所属命名空间的资源组权限,判断资源组是否拥有所需要的集群权限,若有则通过资源配置模块对资源组所需要的集群资源占用空间进行确定,依据所述占用空间确定所述资源池空间,在资源配置前比较资源组所需要的集群资源的空闲容量与资源池空间的大小,若资源池空间小于资源组所需要的集群资源的空闲容量,则进行配置。5.根据权利要求1所述的一种多云平台的kubenetes多租户资源隔离分配方法,其特征是所述通过资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配,包括:通过资源更改模块利用promethues对资源使用情况进行监听,当检测到需要进行资源配额重新分配时,通过资源更改模块重新对资源组进行调度分配。6.一种多云平台的kubenetes多租户资源隔离分配系统,其特征是所述系统包括前端模块、响应模块、权限管理模块、资源配置模块、策略分发模块和资源更改模块,利用前端模块通过云平台ui界面请求建立用户的资源组,并将请求发送给响应模块,响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,权限管理模块接收响应模块的请求,创建命名空间,绑定用户角色并分配资源组权限,在所述命名空间中根据资源组被分配的集群,绑定集群的权限,资源组控制分配集群的资
源配额,资源配置模块接收响应模块的请求,检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,策略分发模块接收响应模块的请求,根据请求生成相应的yaml文件,并将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配。7.根据权利要求6所述的一种多云平台的kubenetes多租户资源隔离分配系统,其特征是所述前端模块在云平台ui界面建立用户的资源组,包括:设置资源组的名称、资源配额、pod安全策略、网络策略、分配的命名空间、资源组成员以及成员权限。8.根据权利要求6所述的一种多云平台的kubenetes多租户资源隔离分配系统,其特征是所述响应模块接收所述请求并响应,包括:响应资源池请求,所述资源池请求包括资源池创建、资源池修改、资源池查看及资源池释放。9.根据权利要求6所述的一种多云平台的kubenetes多租户资源隔离分配系统,其特征是资源配置模块检测资源组权限和资源池空间是否满足条件,包括:资源配置模块检测资源组所属命名空间的资源组权限,判断资源组是否拥有所需要的集群权限,若有则资源配置模块对资源组所需要的集群资源占用空间进行确定,依据所述占用空间确定所述资源池空间,在资源配置前比较资源组所需要的集群资源的空闲容量与资源池空间的大小,若资源池空间小于资源组所需要的集群资源的空闲容量,则进行配置。10.根据权利要求6所述的一种多云平台的kubenetes多租户资源隔离分配系统,其特征是资源更改模块随时在资源组创建完成后,监控资源池使用量并对资源组调整计算资源和存储资源的分配,包括:通过资源更改模块利用promethues对资源使用情况进行监听,当检测到需要进行资源配额重新分配时,通过资源更改模块重新对资源组进行调度分配。

技术总结
本发明公开一种多云平台的kubenetes多租户资源隔离分配方法,涉及集群资源管理技术领域;构建多租户资源隔离分配系统,利用前端模块通过云平台UI界面请求建立用户的资源组,并将请求发送给响应模块,通过响应模块接收所述请求并响应,向其他模块发出相关资源池的请求,通过权限管理模块创建命名空间,绑定用户角色并分配资源组权限,通过资源配置模块检测资源组权限和资源池空间是否满足条件,若满足则计算最优的资源配额,并按照资源配额给资源组分配请求的计算资源和存储资源,通过策略分发模块将yaml文件分发至资源组被分配的集群的命名空间中创建相应资源,通过资源更改模块监控资源池使用量并对资源组调整计算资源和存储资源的分配。存储资源的分配。存储资源的分配。


技术研发人员:高龙 冉州 种保中
受保护的技术使用者:苏州思萃工业互联网技术研究所有限公司
技术研发日:2023.05.23
技术公布日:2023/8/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐