跨集群资源管理方法、装置、设备和存储介质与流程

文档序号:30490691发布日期:2022-06-22 01:42阅读:77来源:国知局
跨集群资源管理方法、装置、设备和存储介质与流程

1.本公开涉及云计算技术领域,尤其涉及一种跨集群资源管理方法、装置、电子设备和非暂态计算机可读存储介质。


背景技术:

2.在基于kubernetes的云原生集群管理中,拥有项目管理权限的人员,可以对项目绑定的所有集群相同的namespace(命名空间)进行同等权限的操作。
3.采用以上项目管理所有集群相同命名空间的方式对已使用的集群进行管理时,由于部分命名空间可能已经被分配某些项目,可能出现多个集群存在相同命名空间,却需要分配给不同项目下的人员使用的情况。在该情况下,可能存在权限误分配的情况或者无法分配的情况。


技术实现要素:

4.本公开提供一种跨集群资源管理方法、装置、电子设备和非暂态计算机可读存储介质,用以解决现有技术中对已使用集群进行管理时权限分配困难的问题,灵活实现对多集群的资源管理。
5.本公开提供一种跨集群资源管理方法,包括:在监听到角色模板中有新增角色时,根据所述新增角色在主集群创建作为全局集群角色的第一角色,以向所述主集群对应的被管理子集群下发所述第一角色对应的单集群角色,其中,所述角色模板由管理用户在所述主集群创建;获取所述主集群中的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系;获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系;根据所述第一项目-用户-角色绑定关系和所述第一项目命名空间绑定关系在第一子集群中创建所述第一角色在所述第一项目中的用户角色绑定关系,其中,所述第一子集群为所述第一项目对应的命名空间所在的被管理子集群。
6.根据本公开提供的一种跨集群资源管理方法,所述方法还包括:在监听到所述项目角色绑定关系模板中增加项目-用户-角色绑定关系时,根据第一增加数据在所述主集群中创建第二项目和第二角色的第二绑定关系;获取所述主集群的项目命名空间绑定关系模板中所述第二项目对应的第二项目命名空间绑定关系;根据所述第二绑定关系和所述第二项目命名空间绑定关系在所述主集群中创建所述第二角色在所述第二项目中的用户角色绑定关系。
7.根据本公开提供的一种跨集群资源管理方法,所述方法还包括:在监听到项目命名空间绑定关系模板中增加项目命名空间绑定关系时,根据第二增加数据在所述主集群中创建第三项目和第三命名空间的第三绑定关系;获取所述主集群中所述第三项目对应的第二项目-用户-角色绑定关系;根据所述第三绑定关系和所述第二项目-用户-角色绑定关系在所述主集群中创建第三角色在所述第三项目中的用户角色绑定关系。
8.根据本公开提供的一种跨集群资源管理方法,所述方法还包括:在监听到所述项
目角色绑定关系模板中删除项目-用户-角色绑定关系时,根据第一删除数据在所述主集群中获取第四项目和第四角色的第四绑定关系;获取所述主集群中所述第四项目对应的第三项目命名空间绑定关系;根据所述第四绑定关系和所述第三项目命名空间绑定关系在所述主集群中删除所述第四角色在所述第四项目中的用户角色绑定关系。
9.根据本公开提供的一种跨集群资源管理方法,所述方法还包括:在监听到项目命名空间绑定关系模板中删除项目命名空间绑定关系时,根据第二删除数据在所述主集群中获取第五项目和第四命名空间的第五绑定关系;获取所述主集群中所述第五项目对应的第三项目-用户-角色绑定关系;根据所述第五绑定关系和所述第三项目-用户-角色绑定关系在所述主集群中删除第五角色在所述第五项目中的用户角色绑定关系。
10.根据本公开提供的一种跨集群资源管理方法,所述根据所述新增角色在主集群创建作为全局集群角色的第一角色之前,所述方法还包括:根据所述管理用户发送的接口命令或者kubernetes命令在所述主集群中的所述角色模板中添加所述新增角色。
11.根据本公开提供的一种跨集群资源管理方法,所述获取所述主集群的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系之前,所述方法还包括:根据项目用户发送的接口命令在所述主集群中的所述项目角色绑定关系模板中添加所述第一角色对应的第一项目-用户-角色绑定关系;所述获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系之前,所述方法还包括;根据所述项目用户发送的接口命令在所述主集群中的所述项目命名空间绑定关系模板中添加所述第一项目对应的第一项目命名空间绑定关系。
12.本公开提供一种跨集群资源管理装置,所述装置包括:第一创建单元,用于在监听到角色模板中有新增角色时,根据所述新增角色在主集群创建作为全局集群角色的第一角色,以向所述主集群对应的被管理子集群下发所述第一角色对应的单集群角色,其中,所述角色模板由管理用户在所述主集群创建;第一获取单元,用于获取所述主集群中的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系;第二获取单元,用于获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系;第二创建单元,用于根据所述第一项目-用户-角色绑定关系和所述第一项目命名空间绑定关系在所述第一子集群中创建所述第一角色在所述第一项目中的用户角色绑定关系,其中,所述第一子集群为所述第一项目对应的命名空间所在的被管理子集群。
13.根据本公开提供的一种跨集群资源管理装置,所述装置还包括第三创建单元,用于在监听到所述项目角色绑定关系模板中增加项目-用户-角色绑定关系时,根据第一增加数据在所述主集群中创建所述第二项目和第二角色的第二绑定关系;所述第二获取单元还用于获取所述主集群的项目命名空间绑定关系模板中所述第二项目对应的第二项目命名空间绑定关系;所述第二创建单元还用于根据所述第二绑定关系和所述第二项目命名空间绑定关系在所述主集群中创建所述第二角色在所述第二项目中的用户角色绑定关系。
14.根据本公开提供的一种跨集群资源管理装置,所述第三创建单元还用于在监听到项目命名空间绑定关系模板中增加项目命名空间绑定关系时,根据第二增加数据在所述主集群中创建所述第三项目和第三命名空间的第三绑定关系;所述第一获取单元还用于获取所述主集群中所述第三项目对应的第二项目-用户-角色绑定关系;所述第二创建单元还用于根据所述第三绑定关系和所述第二项目-用户-角色绑定关系在所述主集群中创建第三
角色在所述第三项目中的用户角色绑定关系。
15.根据本公开提供的一种跨集群资源管理装置,所述装置还包括第三获取单元,用于在监听到所述项目角色绑定关系模板中删除项目-用户-角色绑定关系时,根据第一删除数据在所述主集群中获取第四项目和第四角色的第四绑定关系;所述第二获取单元还用于获取所述主集群中所述第四项目对应的第三项目命名空间绑定关系;所述第二创建单元还用于根据所述第四绑定关系和所述第三项目命名空间绑定关系在所述主集群中删除所述第四角色在所述第四项目中的用户角色绑定关系。
16.根据本公开提供的一种跨集群资源管理装置,所述装置还包括第三获取单元,用于在监听到项目命名空间绑定关系模板中删除项目命名空间绑定关系时,根据第二删除数据在所述主集群中获取第五项目和第四命名空间的第五绑定关系;所述第一获取单元还用于获取所述主集群中所述第五项目对应的第三项目-用户-角色绑定关系;所述第二创建单元还用于根据所述第五绑定关系和第三项目-用户-角色绑定关系在所述主集群中删除第五角色在所述第五项目中的用户角色绑定关系。
17.根据本公开提供的一种跨集群资源管理装置,所述装置还包括:第一添加单元,用于根据所述管理用户发送的接口命令或者kubernetes命令在所述主集群中的所述角色模板中添加所述新增角色。
18.根据本公开提供的一种跨集群资源管理装置,所述装置还包括:第二添加单元,用于根据所述项目用户发送的接口命令在所述主集群中的所述项目角色绑定关系模板中添加所述第一角色对应的第一项目-用户-角色绑定关系;第三添加单元,用于根据所述项目用户发送的接口命令在所述主集群中的所述项目命名空间绑定关系模板中添加所述第一项目对应的第一项目命名空间绑定关系。
19.本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述跨集群资源管理方法的步骤。
20.本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述跨集群资源管理方法的步骤。
21.本公开提供的跨集群资源管理方法、装置、电子设备和非暂态计算机可读存储介质,通过监听角色模板的新增角色,根据新增的第一角色对应的项目-用户-角色绑定关系和第一项目对应的项目命名空间绑定关系创建第一角色在第一项目中的用户角色绑定关系,实现了在已使用集群角色增加时的管理权限分配,使得项目用户可对指定范围资源拥有对应权限操作,从而使得项目用户可以灵活地进行跨集群资源访问。
附图说明
22.为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是本公开提供的跨集群资源管理方法的流程示意图;
24.图2是本公开提供的用户和命名空间的关系的示意图;
25.图3是本公开提供的新增角色时创建用户角色绑定关系的流程示意图;
26.图4是本公开提供的变更项目-用户-角色绑定关系时创建用户角色绑定关系的流程示意图;
27.图5是本公开提供的变更项目命名空间绑定关系时创建用户角色绑定关系的流程示意图;
28.图6是本公开提供的跨集群资源管理装置的结构示意图;
29.图7是本公开提供的电子设备的结构示意图。
具体实施方式
30.为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开中的附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
31.在本公开一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开一个或多个实施例。在本公开一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本公开一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
32.应当理解,尽管在本公开一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
33.以下对本公开实施例中的技术术语进行解释:
34.k8s:kubernetes的缩写,是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
35.namespace:k8s的命名空间,k8s资源实现逻辑隔离。
36.project(项目):命名空间的逻辑集合。
37.rbac(role-based access control,基于角色的权限访问控制):是一种安全功能,用于控制用户对通常仅限于超级用户的任务的访问。
38.kubefed:可以使得用户能够联合多个kubernetes集群,以实现跨多个集群的资源分配、服务发现、高可用性等。
39.crd:custom resource define的简称,是kubernetes为提高可扩展性,帮助开发者自定义资源的一种方式。
40.下面结合附图对本公开示例实施方式进行详细说明。
41.如图1所示的是本公开实施例的跨集群资源管理方法的流程图。本公开实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如终端设备和/或服务器。如图1所示,该跨集群资源管理方法包括:
42.步骤102,在监听到角色模板中有新增角色时,根据新增角色在主集群创建作为全
局集群角色的第一角色,以向主集群对应的被管理子集群下发第一角色对应的单集群角色,其中,角色模板由管理用户在主集群创建。
43.具体地,主集群为具有管理功能的集群,被管理子集群可以简称为子集群,主集群和子集群均为k8s集群的成员。单集群角色可以简称为集群角色(clusterroles),其用于子集群,可以定义k8s角色及角色权限。
44.步骤104,获取主集群中的项目角色绑定关系模板中第一角色对应的第一项目-用户-角色绑定关系。
45.具体地,项目角色绑定关系模板由管理用户或者项目用户在主集群创建。在本公开实施例中,项目角色绑定关系模板中包含第一项目-用户-角色绑定关系等多个项目-用户-角色绑定关系。第一项目-用户-角色绑定关系描述了第一项目、第一用户和第一角色的三者之间的绑定关系。
46.步骤106,获取主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系。
47.项目命名空间绑定关系模板由管理用户或者项目用户在主集群创建。在本公开实施例中,项目命名空间绑定关系模板中包含第一项目命名空间绑定关系等多个项目命名空间绑定关系。
48.步骤108,根据第一项目-用户-角色绑定关系和第一项目命名空间绑定关系在第一子集群中创建第一角色在第一项目中的用户角色绑定关系,其中,第一子集群为第一项目对应的命名空间所在的被管理子集群。
49.具体地,用户角色绑定关系(rolebinding)用于被管理子集群,可以定义k8s用户绑定角色。
50.本公开实施例的技术方案可以应用于多云场景下。在本公开实施例的技术方案中,可以使用项目关联不同集群的多个不同命名空间,不同集群的相同命名空间也可分配给不同的项目,用户被关联到项目后,可以在基于kubernetes基础权限的rbac模式下为用户分配资源权限,解决在已使用集群中变更用户时的用户管理权限分配困难的问题。
51.在本公开实施例中,项目可以对不同集群分配给本项目的命名空间进行管理之外,项目还可以对不同集群的任意的空闲命名空间进行管理,其中,空闲命名空间是不同集群未分配给本项目和其它项目的命名空间。用户以某种角色关联项目后,用户就拥有了对应项目下的命名空间对应角色的管理权限。
52.如图2所示,用户c1以角色a关联到项目1,项目1下的命名空间包括集群1中的ns1和集群2中的ns2,用户c1就拥有了在集群1中的ns1和集群2中的ns2的角色a的管理权限。用户c2和用户c3以角色b关联到项目2,项目2下的命名空间包括集群1中的ns2和集群2中的ns1,用户c2和用户c3就拥有了在集群1中的ns2和集群2中的ns1的角色b的管理权限。
53.通过将用户以某种角色关联项目,使得用户拥有对应项目下的命名空间对应角色的管理权限,可以降低用户管理权限分配的难度。在多个集群存在相同命名空间的情况下,因为用户与项目相对应,且不同集群的命名空间分配给对应的项目,所以不会出现用户对命名空间的管理权限的误分配和无法分配,从而使得用户可以灵活地进行跨集群资源访问。
54.采用本公开实施例的技术方案,可以在已使用的集群中增加角色,增加或删除项
目-用户-角色绑定关系,以及增加或删除项目命名空间绑定关系。具体内容如下:
55.在已使用的集群中增加角色,是一个自定义角色创建的过程。如图3所示,自定义角色创建的过程可以包括以下步骤:
56.步骤301,管理用户创建角色模板。
57.具体地,管理用户通过接口或者直接k8s命令在管理主集群创建自定义的roletemplate(角色模板)。
58.在创建角色模板后,主集群控制管理器可以根据管理用户发送的接口命令或者kubernetes命令在主集群中的角色模板中添加新增角色。
59.步骤302,主集群控制管理器监听角色模板。
60.步骤303,主集群控制管理器创建全局集群角色。
61.具体地,tpaascontrollermanager(主集群控制管理器)即为主集群中的控制管理器,其通过监听roletemplate添加变更,创建federatedclusterroles(全局集群角色)。
62.其中,tpaascontrollermanager用于管理流程的主要服务,负责监听管理主集群资源和用户资源变更,并进行对应逻辑处理。federatedclusterroles用于主集群,其可以定义kubefed可识别的全局集群角色,以在各集群产生对应的集群角色资源。
63.步骤304,kubefed监听全局集群角色。
64.步骤305,kubefed在被管理子集群创建集群角色(clusterroles)。
65.具体地,kubefed可以识别上述全局集群角色,并下发所有被管理子集群全局集群角色对应的clusterroles,实现了将自定义角色同步到多集群的目的。在本公开实施例中,kubefed是用于将角色下发到被管理子集群的开源服务组件。
66.通过自定义角色创建,并将自定义角色同步到多集群,实现了在已使用的集群中增加角色的功能。在为角色关联项目后,该角色即可以拥有对应项目在不同集群中的对应命名空间的管理权项,从而使得绑定该角色的用户可以灵活地进行跨集群资源访问。
67.在本公开实施例中,在已使用的集群中增加项目-用户-角色绑定关系时,可以监听项目角色绑定关系模板,并在监听到项目角色绑定关系模板中增加项目-用户-角色绑定关系时,根据第一增加数据在主集群中创建第二项目和第二角色的第二绑定关系,之后,获取主集群的项目命名空间绑定关系模板中第二项目对应的第二项目命名空间绑定关系,然后,根据第二绑定关系和第二项目命名空间绑定关系在主集群中创建第二角色在第二项目中的用户角色绑定关系。
68.在本公开实施例中,在已使用的集群中删除项目-用户-角色绑定关系时,可以监听项目角色绑定关系模板,并在监听到项目角色绑定关系模板中删除项目-用户-角色绑定关系时,根据第一删除数据在主集群中获取第四项目和第四角色的第四绑定关系,之后,获取主集群中第四项目对应的第三项目命名空间绑定关系,然后,根据第四绑定关系和第三项目命名空间绑定关系在主集群中删除第四角色在第四项目中的用户角色绑定关系。
69.在已使用的集群中增加或删除项目-用户-角色绑定关系,是一个增加或者删除项目关联用户操作的过程。
70.如图4所示,增加项目关联用户操作的过程包括以下步骤:
71.步骤411,项目用户创建项目-用户-角色绑定关系(projectrolebinding)。
72.projectrolebinding用于主集群,其可以定义project(项目)、user(用户)、role
(角色)之间的绑定关系,即用户在项目下拥有角色的绑定关系。
73.具体地,项目用户通过接口或者直接k8s命令在管理主集群创建projectrolebinding,即项目关联用户并赋予角色。在主集群中,项目用户创建有项目角色绑定关系模板,主集群控制管理器可以根据项目用户发送的接口命令在主集群中的项目角色绑定关系模板中添加第一角色对应的第一项目-用户-角色绑定关系。
74.步骤412,主集群控制管理器监听项目-用户-角色绑定关系。
75.具体地,tpaascontrollermanager的服务执行以下任务:监听projectrolebinding的增加变更。
76.步骤413,主集群控制管理器请求项目管理的所有项目命名空间绑定关系。
77.步骤414,主集群控制管理器请求项目下被管理子集群创建用户和角色的绑定关系。
78.具体地,在步骤413和步骤414中,主集群控制管理器遍历所有项目下管理的集群的命名空间,根据集群获取对应被管理子集群客户端,在被管理子集群客户端的命名空间创建该用户在该项目的用户角色绑定关系。
79.如图4所示,删除项目关联用户操作的过程包括以下步骤:
80.步骤421,项目用户删除项目-用户-角色绑定关系。
81.具体地,项目用户通过接口或者直接k8s命令在管理主集群删除projectrolebinding,即项目移除用户及角色关联关系。
82.步骤422,主集群控制管理器监听项目-用户-角色绑定关系。
83.具体地,tpaascontrollermanager的服务执行以下任务:监听projectrolebinding的删除变更。
84.步骤423,主集群控制管理器请求项目管理的所有项目命名空间绑定关系。
85.步骤424,主集群控制管理器请求项目下被管理子集群删除用户和角色的绑定关系。
86.具体地,在步骤423和步骤424中,主集群控制管理器遍历所有项目下管理的集群的命名空间,根据集群获取对应被管理子集群操作客户端,在被管理子集群客户端的命名空间下获取所有用户和项目关联的用户角色绑定关系,并进行删除。
87.增加或删除项目关联用户操作,可以用户增加或者失去对应项目在不同集群中的对应命名空间的管理权项,从而使得该用户可以灵活地进行跨集群资源访问。
88.在本公开实施例中,在已使用的集群中增加项目命名空间绑定关系时,可以监听项目角色绑定关系模板,并在监听到项目命名空间绑定关系模板中增加项目命名空间绑定关系时,根据第二增加数据在主集群中创建第三项目和第三命名空间的第三绑定关系,之后,获取主集群中第三项目对应的第二项目-用户-角色绑定关系,然后,根据第三绑定关系和第二项目-用户-角色绑定关系在主集群中创建第三角色在第三项目中的用户角色绑定关系。
89.在本公开实施例中,在已使用的集群中删除项目命名空间绑定关系时,可以监听项目角色绑定关系模板,并在监听到项目命名空间绑定关系模板中删除项目命名空间绑定关系时,根据第二删除数据在主集群中获取第五项目和第四命名空间的第五绑定关系,之后,获取主集群中第五项目对应的第三项目-用户-角色绑定关系,然后,根据第五绑定关系
和第三项目-用户-角色绑定关系在主集群中删除第五角色在第五项目中的用户角色绑定关系。
90.在已使用的集群中增加或删除项目命名空间绑定关系,是一个增加或者删除项目关联集群命名空间操作的过程。
91.如图5所示,增加项目关联集群命名空间操作包括以下步骤:
92.步骤511,项目用户创建项目命名空间绑定关系。
93.项目命名空间绑定关系(projectnamespacebindings)用于主集群,定义项目下管理有哪些集群下的哪些命名空间。
94.具体地,项目用户可以通过接口或者直接k8s命令在主集群创建projectnamespacebindings,即为项目添加命名空间。在主集群中,项目用户创建有项目命名空间绑定关系模板,主集群控制管理器根据项目用户发送的接口命令在主集群中的项目命名空间绑定关系模板中添加第一项目对应的第一项目命名空间绑定关系。
95.步骤512,主集群控制管理器监听项目命名空间绑定关系。
96.具体地,主集群控制管理器的服务执行以下任务:监听projectnamespacebinding的增加变更。
97.步骤513,主集群控制管理器请求项目管理的所有项目-用户-角色绑定关系。
98.步骤514,主集群控制管理器在新绑定命名空间下新增用户和角色的绑定关系。
99.具体地,在步骤513和步骤514中,主集群控制管理器遍历项目下辖所有projectrolebinding,获取所有涉及用户,根据集群获取对应被管理集群操作客户端,在新加命名空间添加所有涉及用户和集群角色的用户角色绑定关系,实现项目下用户权限的增加。
100.如图5所示,删除项目关联集群命名空间操作包括以下步骤:
101.步骤521,项目用户删除项目命名空间绑定关系。
102.具体地,项目用户通过接口或者直接k8s命令在管理主集群删除projectnamespacebindings,即项目移除命名空间。
103.步骤522,主集群控制管理器监听项目命名空间绑定关系。
104.具体地,主集群控制管理器的服务执行以下任务:监听projectnamespacebinding的删除变更。
105.步骤523,主集群控制管理器请求项目管理的所有项目-用户-角色绑定关系。
106.步骤524,主集群控制管理器在原绑定命名空间下删除用户和角色的绑定关系。
107.具体地,在步骤523和步骤524中,主集群控制管理器遍历项目下辖所有项目-用户-角色绑定关系,获取所有涉及用户,根据集群获取对应被管理子集群客户端,删除对应命名空间所有涉及用户和集群角色的用户角色绑定关系。
108.增加或者删除项目关联集群命名空间,可以用户增加或者失去对应项目在项目关联的不同集群中的命名空间的管理权项,从而使得该用户可以灵活地进行跨集群资源访问。
109.本公开实施例中,集群角色、用户角色绑定关系、全局集群角色、项目-用户-角色绑定关系和项目命名空间绑定关系均为k8s自定义crd资源或k8s本身的crd资源。
110.本公开实施例中的项目管理多集群不同命名空间的方法中,项目关联用户并赋予
其角色后,通过创建自定义角色及同步多集群,以及进行项目关联集群命名空间操作和项目关联用户操作,用户可以灵活地对多集群的资源进行管理,并且可以防止出现新导入已使用的集群的命名空间直接被误分配给某些项目的情况。
111.本公开提供的跨集群资源管理方法,通过监听角色模板的新增角色,根据新增的第一角色对应的项目-用户-角色绑定关系和第一项目对应的项目命名空间绑定关系创建第一角色在第一项目中的用户角色绑定关系,实现了在已使用集群角色增加时的管理权限分配,使得项目用户可对指定范围资源拥有对应权限操作,从而实现项目用户可以灵活地进行跨集群资源访问。
112.下面对本公开提供的跨集群资源管理装置进行描述,下文描述的跨集群资源管理装置与上文描述的跨集群资源管理方法可相互对应参照。
113.如图6所示,本公开实施例的跨集群资源管理装置包括:
114.第一创建单元602,可以用于在监听到角色模板中有新增角色时,根据新增角色在主集群创建作为全局集群角色的第一角色,以向主集群对应的被管理子集群下发第一角色对应的单集群角色,其中,角色模板由管理用户在主集群创建。
115.第一获取单元604,可以用于获取主集群中的项目角色绑定关系模板中第一角色对应的第一项目-用户-角色绑定关系。
116.第二获取单元606,可以用于获取主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系。
117.第二创建单元608,可以用于根据第一项目-用户-角色绑定关系和第一项目命名空间绑定关系在第一子集群中创建第一角色在所述第一项目中的用户角色绑定关系,其中,第一子集群为第一项目对应的命名空间所在的被管理子集群。
118.在本公开实施例中,装置还可以包括第三创建单元,用于在监听到项目角色绑定关系模板中增加项目-用户-角色绑定关系时,根据第一增加数据在主集群中创建第二项目和第二角色的第二绑定关系;第二获取单元还可以用于获取主集群的项目命名空间绑定关系模板中第二项目对应的第二项目命名空间绑定关系;第二创建单元还可以用于根据第二绑定关系和第二项目命名空间绑定关系在主集群中创建第二角色在第二项目中的用户角色绑定关系。
119.在本公开实施例中,第三创建单元还可以用于在监听到项目命名空间绑定关系模板中增加项目命名空间绑定关系时,根据第二增加数据在主集群中创建第三项目和第三命名空间的第三绑定关系;第一获取单元还可以用于获取主集群中第三项目对应的第二项目-用户-角色绑定关系;第二创建单元还可以用于根据第三绑定关系和第二项目-用户-角色绑定关系在主集群中创建第三角色在第三项目中的用户角色绑定关系。
120.在本公开实施例中,装置还可以包括第三获取单元,用于在监听到项目角色绑定关系模板中删除项目-用户-角色绑定关系时,根据第一删除数据在主集群中获取第四项目和第四角色的第四绑定关系;第二获取单元还可以用于获取主集群中第四项目对应的第三项目命名空间绑定关系;第二创建单元还可以用于根据第四绑定关系和第三项目命名空间绑定关系在主集群中删除第四角色在第四项目中的用户角色绑定关系。
121.在本公开实施例中,装置还可以包括第三获取单元,用于在监听到项目命名空间绑定关系模板中删除项目命名空间绑定关系时,根据第二删除数据在主集群中获取第五项
目和第四命名空间的第五绑定关系;第一获取单元还可以用于获取主集群中第五项目对应的第三项目-用户-角色绑定关系;第二创建单元还可以用于根据第五绑定关系和第三项目-用户-角色绑定关系在主集群中删除第五角色在第五项目中的用户角色绑定关系。
122.在本公开实施例中,装置还可以包括:第一添加单元,用于根据管理用户发送的接口命令或者kubernetes命令在主集群中的角色模板中添加新增角色。
123.在本公开实施例中,装置还可以包括:第二添加单元,用于根据项目用户发送的接口命令在主集群中的项目角色绑定关系模板中添加第一角色对应的第一项目-用户-角色绑定关系;第三添加单元,用于根据项目用户发送的接口命令在主集群中的项目命名空间绑定关系模板中添加第一项目对应的第一项目命名空间绑定关系。
124.由于本公开的示例实施例的跨集群资源管理装置的各个功能模块与上述跨集群资源管理方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的跨集群资源管理方法的实施例。
125.本公开提供的跨集群资源管理装置,通过监听角色模板的新增角色,根据新增的第一角色对应的项目-用户-角色绑定关系和第一项目对应的项目命名空间绑定关系创建第一角色在第一项目中的用户角色绑定关系,实现了在已使用集群角色增加时的管理权限分配,使得项目用户可对指定范围资源拥有对应权限操作,从而实现项目用户可以灵活地进行跨集群资源访问。
126.图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行跨集群资源管理方法,该方法包括:在监听到角色模板中有新增角色时,根据所述新增角色在主集群创建作为全局集群角色的第一角色,以向所述主集群对应的被管理子集群下发所述第一角色对应的单集群角色,其中,所述角色模板由管理用户在所述主集群创建;获取所述主集群中的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系;获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系;根据所述第一项目-用户-角色绑定关系和所述第一项目命名空间绑定关系在所述第一子集群中创建所述第一角色在所述第一项目中的用户角色绑定关系,其中,所述第一子集群为所述第一项目对应的命名空间所在的被管理子集群。
127.此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
128.另一方面,本公开还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序
指令被计算机执行时,计算机能够执行上述各方法所提供的跨集群资源管理方法,该方法包括:在监听到角色模板中有新增角色时,根据所述新增角色在主集群创建作为全局集群角色的第一角色,以向所述主集群对应的被管理子集群下发所述第一角色对应的单集群角色,其中,所述角色模板由管理用户在所述主集群创建;获取所述主集群中的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系;获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系;根据所述第一项目-用户-角色绑定关系和所述第一项目命名空间绑定关系在所述第一子集群中创建所述第一角色在所述第一项目中的用户角色绑定关系,其中,所述第一子集群为所述第一项目对应的命名空间所在的被管理子集群。
129.又一方面,本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的跨集群资源管理方法,该方法包括:在监听到角色模板中有新增角色时,根据所述新增角色在主集群创建作为全局集群角色的第一角色,以向所述主集群对应的被管理子集群下发所述第一角色对应的单集群角色,其中,所述角色模板由管理用户在所述主集群创建;获取所述主集群中的项目角色绑定关系模板中所述第一角色对应的第一项目-用户-角色绑定关系;获取所述主集群中的项目命名空间绑定关系模板中第一项目对应的第一项目命名空间绑定关系;根据所述第一项目-用户-角色绑定关系和所述第一项目命名空间绑定关系在所述第一子集群中创建所述第一角色在所述第一项目中的用户角色绑定关系,其中,所述第一子集群为所述第一项目对应的命名空间所在的被管理子集群。
130.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
132.最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1