本技术涉及计算机,特别是涉及一种基于kubernetes的应用一致性备份方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、随着计算机技术的发展,出现了一种开源的容器编排平台kubernetes (k8s),其可以在集群中管理容器化应用程序的部署和扩展,但kubernetes本身不提供应用程序的数据持久化和备份功能,因此如何避免数据丢失成为使用kubernetes时的一个问题。
2、传统技术中,通常使用volumesnapshot api对pv (persistent volume,持久卷)的数据进行快照,然后保存到备份存储中。然而,volumesnapshot只能备份数据卷,却不能备份应用状态等其他信息,导致该备份方法存在备份不完整的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种基于kubernetes的应用一致性备份方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种基于kubernetes的应用一致性备份方法,包括:
3、响应于用户发送的备份创建请求,获取所述用户创建的备份任务;
4、根据所述备份任务遍历kubernetes api中的资源定位信息以获取所述备份任务对应的资源组信息;
5、根据所述资源组信息,确定待备份资源信息;
6、将所述待备份资源信息锁定为只读状态,对所述待备份资源信息进行快照备份,得到备份资源信息;
7、对所述备份资源信息进行保存,并将所述待备份资源信息恢复为读写状态。
8、在其中一个实施例中,所述将所述待备份资源信息锁定为只读状态,包括:
9、响应于接收到的第一sql 命令,将所述待备份资源信息锁定为只读状态以使所述待备份资源信息冻结写入;
10、所述将所述待备份资源信息恢复为读写状态,包括:
11、响应于接收到的第二sql 命令,将所述待备份资源信息恢复为读写状态以使所述待备份资源信息解除冻结。
12、在其中一个实施例中,所述对所述备份资源信息进行保存,包括:
13、创建临时pod,并识别所述备份资源信息的类型;若识别到所述备份资源信息为pvc(persistent volume claim)类型,则根据所述备份资源信息,得到目标pvc,并将所述目标pvc挂载到所述临时pod;启动挂载所述目标pvc的临时pod,以将所述备份资源信息保存到目标存储器中。
14、在其中一个实施例中,所述方法还包括:
15、在所述备份资源信息保存失败的情况下,重新执行对所述备份资源信息的保存操作,直至所述备份资源信息保存成功;在所述备份资源信息保存成功的情况下,删除所述临时pod和所述目标pvc。
16、在其中一个实施例中,所述方法还包括:
17、响应于所述用户发送的恢复创建请求,获取所述用户创建的恢复任务;根据所述恢复任务从所述目标存储器中读取对应的数据备份信息;对所述数据备份信息进行资源排序,并按照所述资源排序向所述kubernetes api发送创建资源请求,并将所述创建资源请求对应的待恢复资源信息从所述目标存储器中复制到所述kubernetes api中。
18、在其中一个实施例中,所述根据所述资源组信息,确定待备份资源信息,包括:
19、根据所述资源组信息,确定资源列表信息;获取所述待备份资源信息的信息标识,并根据所述信息标识,在所述资源列表信息中确定待备份资源信息。
20、第二方面,本技术还提供了一种基于kubernetes的应用一致性备份装置,包括:
21、任务获取模块,用于响应于用户发送的备份创建请求,获取所述用户创建的备份任务;
22、信息获取模块,用于根据所述备份任务遍历kubernetes api中的资源定位信息以获取所述备份任务对应的资源组信息;
23、信息确定模块,用于根据所述资源组信息,确定待备份资源信息;
24、信息备份模块,用于将所述待备份资源信息锁定为只读状态,对所述待备份资源信息进行快照备份,得到备份资源信息;
25、信息保存模块,用于对所述备份资源信息进行保存,并将所述待备份资源信息恢复为读写状态。
26、第三方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
27、响应于用户发送的备份创建请求,获取所述用户创建的备份任务;根据所述备份任务遍历kubernetes api中的资源定位信息以获取所述备份任务对应的资源组信息;根据所述资源组信息,确定待备份资源信息;将所述待备份资源信息锁定为只读状态,对所述待备份资源信息进行快照备份,得到备份资源信息;对所述备份资源信息进行保存,并将所述待备份资源信息恢复为读写状态。
28、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
29、响应于用户发送的备份创建请求,获取所述用户创建的备份任务;根据所述备份任务遍历kubernetes api中的资源定位信息以获取所述备份任务对应的资源组信息;根据所述资源组信息,确定待备份资源信息;将所述待备份资源信息锁定为只读状态,对所述待备份资源信息进行快照备份,得到备份资源信息;对所述备份资源信息进行保存,并将所述待备份资源信息恢复为读写状态。
30、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
31、响应于用户发送的备份创建请求,获取所述用户创建的备份任务;根据所述备份任务遍历kubernetes api中的资源定位信息以获取所述备份任务对应的资源组信息;根据所述资源组信息,确定待备份资源信息;将所述待备份资源信息锁定为只读状态,对所述待备份资源信息进行快照备份,得到备份资源信息;对所述备份资源信息进行保存,并将所述待备份资源信息恢复为读写状态。
32、上述基于kubernetes的应用一致性备份方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,通过响应于用户发送的备份创建请求,获取用户创建的备份任务;根据备份任务遍历kubernetes api中的资源定位信息以获取备份任务对应的资源组信息;根据资源组信息,确定待备份资源信息;在将待备份资源信息锁定为只读状态之后,对待备份资源信息进行快照备份,得到备份资源信息;对备份资源信息进行保存,并将待备份资源信息恢复为读写状态。本技术在使用kubernetes api对请求的pvc进行快照的基础上,还增加对应用的操作,通过将应用层内存中的数据刷入磁盘,并短暂冻结写入,然后对磁盘进行快照备份,实现了应用一致性的备份并克服了传统技术中备份不完整的问题。此外,相比于使用应用程序模板方法执行应用一致性的方式,本技术的灵活性和适应性更强,学习成本低,可以脱离kubernetes复杂的配置,且实现更加复杂的逻辑。