本技术涉及计算机容器领域,尤其涉及一种跨k8s集群的存储卷共享方法和系统。
背景技术:
1、在大规模智能计算环境下,容器化技术越来越受到重视。kubernetes(简称k8s)是一种开源容器编排系统,已经成为当前最受欢迎的容器编排系统之一。
2、在k8s中,存储卷(volume)是一个重要的概念,用于管理容器和pod的持久化存储的一种抽象,它可以将不同的存储后端统一为一个接口,供pod使用。但是,在多k8s集群联合使用的场景下,虽然底层存储支持跨集群互通,但由于k8s中的存储卷无法直接跨集群使用,且在涉及多个存储后端时管理比较复杂,因此需要一种方法能够管理多集群的存储卷并支持存储卷跨集群使用。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种跨k8s集群的存储卷共享方法、装置及计算机设备,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。
2、第一方面,本技术提供了一种跨k8s集群的存储卷共享方法,所述存储卷共享方法包括:
3、控制存储卷中央调度器存储各k8s集群支持的存储集群情况和支持的存储卷类型、存储容量限制,接收上游设备发送的存储卷创建指令,筛选出支持所述存储卷类型的存储集群,获取与所述存储集群连通的k8s集群,生成底层存储位置;
4、控制所述存储卷中央调度器生成存储卷id,分别向所述k8s集群的存储卷操作器下发存储卷创建声明;
5、所述存储卷操作器接收存储卷中央调度器下发的调度指令,结合所述底层存储位置转换成具体的操作指令调用存储适配器提供的标准接口;
6、所述存储适配器接收所述存储卷操作器下发的所述操作指令,将所述操作指令换成被各存储集群厂商识别的存储资源操作指令;
7、所述存储卷中央调度器记录所述存储卷id及各集群返回的物理存储卷id映射关系,获取所述存储卷id相关联的k8s集群信息,使用所述存储卷id与所述k8s集群进行跨集群共享。
8、在其中一个实施例中,所述存储卷中央调度器还用于执行:
9、接收所述上游设备发送的包括存储卷创建操作、查询操作、删除操作的操作指令;
10、若是存储卷创建操作,则校验是否满足创建条件,若满足条件则生成具体的存储卷信息,包含存储卷id、分布式存储集群的存储位置、分布式存储集群名、存储配额、存储卷类型信息,并返回创建成功;
11、若是查询操作,则根据传入的存储卷id获取存储卷的详细信息;
12、若是删除操作,则查询存储卷和物理存储卷的关联关系,并分别向各物理存储卷所在集群下发物理存储卷删除指令,存储卷关联的所有物理存储卷都删除完毕后,更新存储卷为已删除;
13、在k8s计算集群创建pod,并使用生成的存储卷id;
14、接收指定k8s集群的pod创建请求和pod使用的存储卷id,根据指定的k8s集群信息,存储卷调度器判断物理存储卷在指定k8s集群中是否已经生成;
15、若所述物理存储卷未生成,则下发创建物理存储卷,所述物理存储卷使用生成的存储位置作为该物理存储卷在所述分布式存储集群上的存储位置;
16、若所述物理存储卷已生成,则使用已生成的物理存储卷id作为pod创建参数;
17、接收所述存储卷操作器返回的结果,更新所述中央调度器中的存储卷信息。
18、在其中一个实施例中,所述存储卷操作器还用于执行:
19、从所述存储卷中央调度器获取具体的调度指令,将所述调度指令转换成具体操作动作;
20、将所述具体操作动作下发至所述存储适配器;
21、接收所述存储适配器返回操作结果,根据所述操作结果更新所述物理存储卷状态;
22、向所述存储卷中央调度器返回最终执行结果。
23、在其中一个实施例中,所述存储适配器还用于执行:
24、从所述存储卷操作器接收统一操作指令,解析所述统一操作指令指示的存储集群类型、操作内容;
25、选择与所述存储集群类型适配的存储驱动,将所述操作内容通过所述存储驱动下发至分布式存储集群;
26、接收返回的存储集群操作结果,将所述存储集群操作结果同步至所述存储操作器。
27、第二方面,本技术还提供了一种跨k8s集群的存储卷共享系统,所述存储卷共享系统包括:
28、存储卷操作器,用于执行存储卷操作服务,控制存储卷的运行状态,执行创建、删除存储卷指令;
29、存储卷中央调度器,用于依据存储卷类型创建出特定的调度指令,根据创建容器时使用的指定存储卷,返回可供容器创建调度的k8s集群信息;
30、存储适配器,用于根据存容器存储接口,接入多种类型的存储集群,创建底层存储资源;通过统一的api接入所述存储卷操作器,所述存储卷操作器下发的指令,通过存储适配器转换成可供底层存储集群识别的操作指令。
31、在其中一个实施例中,所述存储卷共享系统包括:
32、所述存储卷中央调度器从k8s计算集群上收集限制条件,生成存储卷操作指令下,将所述存储卷操作指令发送到目标k8s集群;
33、记录存储卷和物理卷的映射关系;
34、记录所述k8s计算集群以及对应的存储集群关联关系。
35、在其中一个实施例中,所述存储卷共享系统包括:
36、所述存储卷操作器部署在k8s算力集群侧,接收所述存储卷中央调度器下发的指令。
37、在其中一个实施例中,所述存储卷共享系统包括:
38、所述存储适配器部署在算力节点侧,对接所述存储卷操作器。
39、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
40、控制存储卷中央调度器存储各k8s集群支持的存储集群情况和支持的存储卷类型、存储容量限制,接收上游设备发送的存储卷创建指令,筛选出支持所述存储卷类型的存储集群,获取与所述存储集群连通的k8s集群,生成底层存储位置;
41、控制所述存储卷中央调度器生成存储卷id,分别向所述k8s集群的存储卷操作器下发存储卷创建声明;
42、所述存储卷操作器接收存储卷中央调度器下发的调度指令,结合所述底层存储位置转换成具体的操作指令调用存储适配器提供的标准接口;
43、所述存储适配器接收所述存储卷操作器下发的所述操作指令,将所述操作指令换成被各存储集群厂商识别的存储资源操作指令;
44、所述存储卷中央调度器记录所述存储卷id及各集群返回的物理存储卷id映射关系,获取所述存储卷id相关联的k8s集群信息,使用所述存储卷id与所述k8s集群进行跨集群共享。
45、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
46、控制存储卷中央调度器存储各k8s集群支持的存储集群情况和支持的存储卷类型、存储容量限制,接收上游设备发送的存储卷创建指令,筛选出支持所述存储卷类型的存储集群,获取与所述存储集群连通的k8s集群,生成底层存储位置;
47、控制所述存储卷中央调度器生成存储卷id,分别向所述k8s集群的存储卷操作器下发存储卷创建声明;
48、所述存储卷操作器接收存储卷中央调度器下发的调度指令,结合所述底层存储位置转换成具体的操作指令调用存储适配器提供的标准接口;
49、所述存储适配器接收所述存储卷操作器下发的所述操作指令,将所述操作指令换成被各存储集群厂商识别的存储资源操作指令;
50、所述存储卷中央调度器记录所述存储卷id及各集群返回的物理存储卷id映射关系,获取所述存储卷id相关联的k8s集群信息,使用所述存储卷id与所述k8s集群进行跨集群共享。
51、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
52、控制存储卷中央调度器存储各k8s集群支持的存储集群情况和支持的存储卷类型、存储容量限制,接收上游设备发送的存储卷创建指令,筛选出支持所述存储卷类型的存储集群,获取与所述存储集群连通的k8s集群,生成底层存储位置;
53、控制所述存储卷中央调度器生成存储卷id,分别向所述k8s集群的存储卷操作器下发存储卷创建声明;
54、所述存储卷操作器接收存储卷中央调度器下发的调度指令,结合所述底层存储位置转换成具体的操作指令调用存储适配器提供的标准接口;
55、所述存储适配器接收所述存储卷操作器下发的所述操作指令,将所述操作指令换成被各存储集群厂商识别的存储资源操作指令;
56、所述存储卷中央调度器记录所述存储卷id及各集群返回的物理存储卷id映射关系,获取所述存储卷id相关联的k8s集群信息,使用所述存储卷id与所述k8s集群进行跨集群共享。
57、通过中央调度器、存储卷操作器、存储适配器等组件和技术,实现将多k8集群的存储卷进行纳管。