本公开涉及云计算,尤其涉及一种集群故障转移方法及装置、设备及存储介质。
背景技术:
1、相关技术中,通常是针对集群内部多节点之间的故障转移,无法处理解决多个集群之间的故障转移。比如在多集群的应用场景下,一个业务系统部署在多个集群之上,若其中某个集群发生故障或资源不足无法响应请求,目前无法解决这个问题。
技术实现思路
1、为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种集群故障转移方法及装置、设备及存储介质。
2、第一方面,本公开的实施例提供了一种集群故障转移方法,应用于多个网络不同的集群,所述方法包括:
3、监测每个集群对数据请求的响应情况;
4、将监测到对数据请求无响应的集群,确定为目标集群;
5、计算目标集群响应所述数据请求所占用的资源;
6、从目标集群之外的集群中,选择用于响应所述数据请求的第一集群,并将数据请求分发至第一集群;
7、为目标集群和第一集群建立通道,调取目标集群中与数据请求对应的service实例,并将service实例对应的yaml文件提交至第一集群;
8、通过第一集群的apiserver地址和token信息,控制该第一集群根据该yaml文件部署生成相同的实例,并运行该实例pod;
9、待pod部署后成功运行,将该数据请求调度为访问service实例服务地址,并将响应数据返回至请求端。
10、在一种可能的实施方式中,所述计算目标集群响应所述数据请求所占用的资源,包括:
11、基于已知的数据请求与服务实例pod之间的对应关系,根据目标集群响应所述数据请求确定对应的服务实例pod;
12、将服务实例pod运行所需资源,确定为目标集群响应所述数据请求所占用的资源。
13、在一种可能的实施方式中,所述已知的数据请求与服务实例pod之间的对应关系通过以下步骤得到:
14、将历史记录中每次数据请求发起后响应的服务实例pod,与该数据请求形成对应关系。
15、在一种可能的实施方式中,所述待pod部署后成功运行之后,所述方法还包括:
16、根据当前成功运行的调度情况,对数据请求与服务实例pod之间的对应关系进行调整。
17、在一种可能的实施方式中,所述从目标集群之外的集群中,选择用于响应所述数据请求的第一集群,包括:
18、对于每个集群数据,以节点为单位,拆分出与集群节点数量相同个的栅格数据,使得每个节点数据对应一个栅格数据;
19、对每个节点对应的栅格数据进行实时计算,将计算结果作为每个节点的运行状态和负载情况;
20、根据每个集群上的每个节点的运行状态和负载情况以及目标集群响应所述数据请求所占用的资源,从所有节点筛选出满足预设条件的节点;
21、根据优先级从大到小的顺序,对筛选出的节点进行排序;
22、将排序后节点中第一个节点作为目标节点;
23、将目标节点所在集群作为第一集群。
24、在一种可能的实施方式中,所述根据数据请求运行该实例pod,包括:
25、根据数据请求选择第一集群中的目标节点调度运行该实例pod。
26、在一种可能的实施方式中,所述为目标集群和第一集群建立通道,包括:
27、在与目标集群和第一集群分别连接的中心集群中部署预设的服务器组件;
28、在第一集群中部署预设的访问组件,在目标集群部署预设的代理组件,其中,代理组件的部署文件中包括与代理组件连接的服务器组件服务地址和业务id, 访问组件的部署文件中包括与访问组件连接的服务器组件服务地址、业务id、以及每个业务id对应的映射的虚拟代理业务服务地址;
29、服务器组件部署完成后,对外暴露服务器组件tcp服务地址,其中,服务器组件用于提供跨集群网络连接通道;
30、代理组件部署完成后,通过代理组件的部署文件中的服务器组件服务地址,将代理组件所绑定的业务元数据信息注册到服务器组件的元数据库中,其中,业务元数据信息包括业务id;
31、服务器组件接收访问组件的访问请求,基于元数据库,通过中心集群中部署的服务器组件,构建同一业务id对应的访问组件与代理组件之间的通道,实现网络不同的集群之间的数据传输。
32、第二方面,本公开的实施例提供了一种集群故障转移装置,应用于多个网络不同的集群,所述装置包括:
33、监测模块,用于监测每个集群对数据请求的响应情况;
34、确定模块,用于将监测到对数据请求无响应的集群,确定为目标集群;
35、计算模块,用于计算目标集群响应所述数据请求所占用的资源;
36、选择模块,用于从目标集群之外的集群中,选择用于响应所述数据请求的第一集群,并将数据请求分发至第一集群;
37、建立模块,用于为目标集群和第一集群建立通道,调取目标集群中与数据请求对应的service实例,并将service实例对应的yaml文件提交至第一集群;
38、控制模块,用于通过第一集群的apiserver地址和token信息,控制该第一集群根据该yaml文件部署生成相同的实例,并运行该实例pod;
39、调度模块,用于待pod部署后成功运行,将该数据请求调度为访问service实例服务地址,并将响应数据返回至请求端。
40、第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
41、存储器,用于存放计算机程序;
42、处理器,用于执行存储器上所存放的程序时,实现上述的集群故障转移方法。
43、第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的集群故障转移方法。
44、本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
45、本公开实施例所述的集群故障转移方法,监测每个集群对数据请求的响应情况;将监测到对数据请求无响应的集群,确定为目标集群;计算目标集群响应所述数据请求所占用的资源;从目标集群之外的集群中,选择用于响应所述数据请求的第一集群,并将数据请求分发至第一集群;为目标集群和第一集群建立通道,调取目标集群中与数据请求对应的service实例,并将service实例对应的yaml文件提交至第一集群;通过第一集群的apiserver地址和token信息,控制该第一集群根据该yaml文件部署生成相同的实例,并运行该实例pod;待pod部署后成功运行,将该数据请求调度为访问service实例服务地址,并将响应数据返回至请求端,将发生故障的目标集群的数据请求分发至其它正常运行的集群,以此来保障业务连续性,减少损失。
1.一种集群故障转移方法,其特征在于,应用于多个网络不同的集群,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述计算目标集群响应所述数据请求所占用的资源,包括:
3.根据权利要求2所述的方法,其特征在于,所述已知的数据请求与服务实例pod之间的对应关系通过以下步骤得到:
4.根据权利要求3所述的方法,其特征在于,所述待pod部署后成功运行之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述从目标集群之外的集群中,选择用于响应所述数据请求的第一集群,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据数据请求运行该实例pod,包括:
7.根据权利要求1所述的方法,其特征在于,所述为目标集群和第一集群建立通道,包括:
8.一种集群故障转移装置,其特征在于,应用于多个网络不同的集群,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的集群故障转移方法。