CN116774935A - 一种实现Kubernetes持久化存储数据迁移的方法及相关设备 - Google Patents
一种实现Kubernetes持久化存储数据迁移的方法及相关设备 Download PDFInfo
- Publication number
- CN116774935A CN116774935A CN202310731562.2A CN202310731562A CN116774935A CN 116774935 A CN116774935 A CN 116774935A CN 202310731562 A CN202310731562 A CN 202310731562A CN 116774935 A CN116774935 A CN 116774935A
- Authority
- CN
- China
- Prior art keywords
- target
- cluster
- persistent storage
- source
- migration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 224
- 238000013508 migration Methods 0.000 title claims abstract description 193
- 230000005012 migration Effects 0.000 title claims abstract description 193
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000008569 process Effects 0.000 claims description 33
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 102100033121 Transcription factor 21 Human genes 0.000 description 3
- 101710119687 Transcription factor 21 Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013524 data verification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种实现Kubernetes持久化存储数据迁移的方法及相关设备,该方法包括:在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。本申请能实现自动实现源持久化存储到目标持久化存储的数据迁移,期间无需停机备份,且不需要人工接触数据,提高了数据迁移的效率、灵活性及安全性。
Description
技术领域
本申请涉及云计算技术领域,更具体地说,是涉及一种实现Kubernetes持久化存储数据迁移的方法及相关设备。
背景技术
Kubernetes集群存在多种不同的持久化存储系统,存储系统接口及挂载方式不固定,导致数据迁移过程中需要涉及不同存储系统的技术,增加了管理员的学习成本及维护成本。
此外,现有的数据迁移方式不够灵活,需要大量的时间窗口,甚至需要停机备份,数据拷贝等人为操作还会引发数据安全隐患。
发明内容
有鉴于此,本申请提供了一种实现Kubernetes持久化存储数据迁移的方法及相关设备,以解决前面提出的至少一个技术问题。
为实现上述目的,本申请第一方面提供了一种实现Kubernetes持久化存储数据迁移的方法,包括:
在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
优选地,所述根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,包括:
根据第一连接文件和第二连接文件的连接信息和认证信息,判断源集群和目标集群是否属于同一集群;
根据第一命名空间和第二命名空间,判断源集群和目标集群是否采用相同的命名空间;
根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式。
优选地,各预设的迁移模式包括直接模式;
所述根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,包括:
若源集群和目标集群属于同一集群,且源集群和目标集群采用相同的命名空间,将目标迁移模式确定为直接模式;
当目标迁移模式为直接模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod上利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
优选地,各预设的迁移模式还包括通道模式;
所述根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还包括:
若源集群和目标集群属于同一集群,但源集群和目标集群采用不同的命名空间,将目标迁移模式确定为通道模式;
当目标迁移模式为通道模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh通道,所述ssh通道用于通过内网连接至源集群的目标应用;
通过所述ssh通道利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
优选地,各预设的迁移模式还包括隧道模式;
所述根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还包括:
若源集群和目标集群不属于同一集群,将目标迁移模式确定为隧道模式;
当目标迁移模式为隧道模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
判断目标集群能否通过外网接入源集群;
若是:
启动两个新的中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh隧道,所述ssh隧道用于通过外网连接至源集群的目标应用;
通过所述ssh隧道利用rsync工具将源持久化存储中的数据同步至目标持久化存储;
若否:
通过代理转发的形式将源持久化存储迁移至目标持久化存储。
优选地,所述通过代理转发的形式将源持久化存储迁移至目标持久化存储的过程,包括:
分别在源集群和目标集群运行sshd,结合sshd、kubectl端口转发逻辑和SSH反向代理将将源持久化存储中的数据转存至目标持久化存储。
优选地,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储之后,还包括:
重命名源持久化存储,解除目标应用与源持久化存储的绑定关系,并将目标持久化存储绑定至目标应用。
本申请第二方面提供了一种实现Kubernetes持久化存储数据迁移的装置,包括:
目标创建单元,用于在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
信息获取单元,用于获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
模式确定单元,用于根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
数据迁移单元,用于基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
本申请第三方面提供了一种实现Kubernetes持久化存储数据迁移的设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述的实现Kubernetes持久化存储数据迁移的方法的各个步骤。
本申请第四方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的实现Kubernetes持久化存储数据迁移的方法的各个步骤。
经由上述的技术方案可知,本申请首先在目标集群创建具有目标容量的目标持久化存储,其中,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小。然后,获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间。其中,所述第一连接文件记载有源集群的连接信息和认证信息;所述第二连接文件记载有目标集群的连接信息和认证信息。接着,根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式。其中,在设计所述多种预设的迁移模式时,充分考虑了源集群和目标集群的各种组网情况,也考虑了源持久化存储和目标持久化存储的各种命名空间情况,使得各预设的迁移模式可以覆盖各种不同的源-目标集群组合情况。最后,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。本申请能实现自动实现源持久化存储到目标持久化存储的数据迁移,期间无需停机备份,且不需要人工接触数据,提高了数据迁移的效率、灵活性及安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的实现Kubernetes持久化存储数据迁移的方法的示意图;
图2示例了本申请实施例公开的同一集群同一命名空间时的迁移模式;
图3示例了本申请实施例公开的同一集群不同命名空间时的迁移模式;
图4示例了本申请实施例公开的不同集群时的迁移模式;
图5为本申请实施例公开的实现Kubernetes持久化存储数据迁移的方法的另一示意图;
图6为本申请实施例公开的实现Kubernetes持久化存储数据迁移的装置的示意图;
图7为本申请实施例公开的实现Kubernetes持久化存储数据迁移的设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面介绍本申请实施例提供的实现Kubernetes持久化存储数据迁移的方法。请参阅图1,本申请实施例提供的实现Kubernetes持久化存储数据迁移的方法可以包括如下步骤:
步骤S101,在目标集群创建具有目标容量的目标持久化存储。
其中,目标容量不小于源集群中待迁移的源持久化存储的空间大小,以便目标持久化存储可以容纳源持久化存储中的所有数据。
步骤S102,获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间。
示例性地,管理员可以通过系统平台输入源集群及目标集群的连接文件及命名空间。其中,连接文件即Kubernetes中的token文件,其记载有连接信息和认证信息。可以理解,连接文件为集群级别的,即每一集群拥有一份连接文件。因此,若源集群与目标集群同属于一个集群,则第一连接文件与第二连接文件是相同的连接文件。
命名空间(namespace)是Kubernetes中集群级别的资源,可以给不同用户、租户、环境或项目创建对应的命名空间。
步骤S103,根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式。
其中,在设计迁移模式时,充分考虑了源集群和目标集群的各种组网情况,也考虑了源持久化存储和目标持久化存储的各种命名空间情况,使得各预设的迁移模式可以覆盖各种不同的源-目标集群组合情况。
步骤S104,基于目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
本申请首先在目标集群创建具有目标容量的目标持久化存储,其中,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小。然后,获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间。其中,所述第一连接文件记载有源集群的连接信息和认证信息;所述第二连接文件记载有目标集群的连接信息和认证信息。接着,根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式。其中,在设计所述多种预设的迁移模式时,充分考虑了源集群和目标集群的各种组网情况,也考虑了源持久化存储和目标持久化存储的各种命名空间情况,使得各预设的迁移模式可以覆盖各种不同的源-目标集群组合情况。最后,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。本申请能实现自动实现源持久化存储到目标持久化存储的数据迁移,期间无需停机备份,且不需要人工接触数据,提高了数据迁移的效率、灵活性及安全性。
在本申请的一些实施例中,步骤S103根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,可以包括:
S1,根据第一连接文件和第二连接文件的连接信息和认证信息,判断源集群和目标集群是否属于同一集群。
S2,根据第一命名空间和第二命名空间,判断源集群和目标集群是否采用相同的命名空间。
S3,根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式。
在本申请的一些实施例中,步骤S103中提及的各预设的迁移模式可以包括直接模式。
上述S3根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,可以包括:
S31,若源集群和目标集群属于同一集群,且源集群和目标集群采用相同的命名空间,将目标迁移模式确定为直接模式。
其中,直接模式即集群内部直接执行rsync的模式,示例性地,其配置代码如下:
当目标迁移模式为直接模式时,如图2所示,步骤S104基于目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
S41,启动两个新的中间态Pod(图中的Pod1和Pod2),并利用这两个中间态Pod分别挂载源持久化存储和目标持久化存储。
S42,在两个中间态Pod上利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
其中,Pod会无视底层的存储系统,同时挂载在源持久化存储和目标持久化存储的指定目录下。在利用rsync工具将源持久化存储中的数据同步至目标持久化存储过程中,会对数据的完整性、时间戳等信息进行验证,此外,完成迁移后,还会进行数据检验,以确保数据迁移成功。
在本申请的一些实施例中,各预设的迁移模式还可以包括通道模式。
上述S3根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还可以包括:
S32,若源集群和目标集群属于同一集群,但源集群和目标集群采用不同的命名空间,将目标迁移模式确定为通道模式。
其中,通道模式即在集群内部通过内网建立ssh通道,并通过该ssh通道执行数据同步的模式,示例性地,其配置代码如下:
当目标迁移模式为通道模式时,如图3所示,步骤S104基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
S41,启动两个新的中间态Pod(图中的Pod1和Pod2),并利用这两个中间态Pod分别挂载源持久化存储和目标持久化存储。
S42,在两个中间态Pod之间建立一条ssh通道。
其中,该ssh通道用于通过内网连接至源集群的目标应用。
S43,通过ssh通道利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
其中,Pod会无视底层的存储系统,同时挂载在源持久化存储和目标持久化存储的指定目录下。在利用rsync工具将源持久化存储中的数据同步至目标持久化存储过程中,会对数据的完整性、时间戳等信息进行验证,此外,完成迁移后,还会进行数据检验,以确保数据迁移成功。
在本申请的一些实施例中,各预设的迁移模式还可以包括隧道模式。
上述S3根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还可以包括:
S33,若源集群和目标集群不属于同一集群,将目标迁移模式确定为隧道模式。
其中,隧道模式即不同集群之间通过外网执行数据同步的模式,示例性地,其配置代码如下:
当目标迁移模式为隧道模式时,如图4所示,步骤S104基于目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
S41,判断目标集群能否通过外网接入源集群。若是:执行S42;若否,执行S45。
S42,启动两个新的中间态Pod(图中的Pod1和Pod2),并利用这两个中间态Pod分别挂载源持久化存储和目标持久化存储。
S43,在两个中间态Pod之间建立一条ssh隧道。
其中,该ssh隧道用于通过外网连接至源集群的目标应用。
S44,通过ssh隧道利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
其中,Pod会无视底层的存储系统,同时挂载在源持久化存储和目标持久化存储的指定目录下。在利用rsync工具将源持久化存储中的数据同步至目标持久化存储过程中,会对数据的完整性、时间戳等信息进行验证,此外,完成迁移后,还会进行数据检验,以确保数据迁移成功。
S45,通过代理转发的形式将源持久化存储迁移至目标持久化存储。
其中,当目标集群和源集群属于不同的私有集群,或者,其中一个属于私有集群时,可能会出现目标集群不能通过外网接入源集群的情况。在这种情况下,可以考虑通过代理转发的形式来完成数据迁移。
在本申请的一些实施例中,上述S45通过代理转发的形式将源持久化存储迁移至目标持久化存储的过程,可以包括:
分别在源集群和目标集群运行sshd,结合sshd、kubectl端口转发逻辑和SSH反向代理将将源持久化存储中的数据转存至目标持久化存储。
需要注明的是,dialing转发的方式可能会给两个api server带来沉重的负载,因此当对两个集群的唯一访问似乎是通过kubectl时,才启动该模式。
在本申请的一些实施例中,请参阅图5,步骤S104基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储之后,还包括:
步骤S105,重命名源持久化存储,解除目标应用与源持久化存储的绑定关系,并将目标持久化存储绑定至目标应用。
下面对本申请实施例提供的实现Kubernetes持久化存储数据迁移的装置进行描述,下文描述的实现Kubernetes持久化存储数据迁移的装置与上文描述的实现Kubernetes持久化存储数据迁移的方法可相互对应参照。
请参见图6,本申请实施例提供的实现Kubernetes持久化存储数据迁移的装置,可以包括:
目标创建单元21,用于在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
信息获取单元22,用于获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
模式确定单元23,用于根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
数据迁移单元24,用于基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
在本申请的一些实施例中,模式确定单元23根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,可以包括:
根据第一连接文件和第二连接文件的连接信息和认证信息,判断源集群和目标集群是否属于同一集群;
根据第一命名空间和第二命名空间,判断源集群和目标集群是否采用相同的命名空间;
根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式。
在本申请的一些实施例中,各预设的迁移模式包括直接模式;
模式确定单元23根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,可以包括:
若源集群和目标集群属于同一集群,且源集群和目标集群采用相同的命名空间,将目标迁移模式确定为直接模式;
当目标迁移模式为直接模式时,数据迁移单元24基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod上利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
在本申请的一些实施例中,各预设的迁移模式还包括通道模式;
模式确定单元23根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还可以包括:
若源集群和目标集群属于同一集群,但源集群和目标集群采用不同的命名空间,将目标迁移模式确定为通道模式;
当目标迁移模式为通道模式时,数据迁移单元24基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh通道,所述ssh通道用于通过内网连接至源集群的目标应用;
通过所述ssh通道利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
在本申请的一些实施例中,各预设的迁移模式还包括隧道模式;
模式确定单元23根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还可以包括:
若源集群和目标集群不属于同一集群,将目标迁移模式确定为隧道模式;
当目标迁移模式为隧道模式时,数据迁移单元24基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,可以包括:
判断目标集群能否通过外网接入源集群;
若是:
启动两个新的中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh隧道,所述ssh隧道用于通过外网连接至源集群的目标应用;
通过所述ssh隧道利用rsync工具将源持久化存储中的数据同步至目标持久化存储;
若否:
通过代理转发的形式将源持久化存储迁移至目标持久化存储。
在本申请的一些实施例中,数据迁移单元24通过代理转发的形式将源持久化存储迁移至目标持久化存储的过程,可以包括:
分别在源集群和目标集群运行sshd,结合sshd、kubectl端口转发逻辑和SSH反向代理将将源持久化存储中的数据转存至目标持久化存储。
在本申请的一些实施例中,数据迁移单元24基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储之后,还包括:
重命名源持久化存储,解除目标应用与源持久化存储的绑定关系,并将目标持久化存储绑定至目标应用。
本申请实施例提供的实现Kubernetes持久化存储数据迁移的装置可应用于实现Kubernetes持久化存储数据迁移的设备,如计算机等。可选的,图7示出了实现Kubernetes持久化存储数据迁移的设备的硬件结构框图,参照图7,实现Kubernetes持久化存储数据迁移的设备的硬件结构可以包括:至少一个处理器31,至少一个通信接口32,至少一个存储器33和至少一个通信总线34。
在本申请实施例中,处理器31、通信接口32、存储器33、通信总线34的数量为至少一个,且处理器31、通信接口32、存储器33通过通信总线34完成相互间的通信;
处理器31可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等;
存储器33可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器33存储有程序,处理器31可调用存储器33存储的程序,所述程序用于:
在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
综上所述:
本申请首先在目标集群创建具有目标容量的目标持久化存储,其中,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小。然后,获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间。其中,所述第一连接文件记载有源集群的连接信息和认证信息;所述第二连接文件记载有目标集群的连接信息和认证信息。接着,根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式。其中,在设计所述多种预设的迁移模式时,充分考虑了源集群和目标集群的各种组网情况,也考虑了源持久化存储和目标持久化存储的各种命名空间情况,使得各预设的迁移模式可以覆盖各种不同的源-目标集群组合情况。最后,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。本申请能实现自动实现源持久化存储到目标持久化存储的数据迁移,期间无需停机备份,且不需要人工接触数据,提高了数据迁移的效率、灵活性及安全性。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种实现Kubernetes持久化存储数据迁移的方法,其特征在于,包括:
在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
2.根据权利要求1所述的方法,其特征在于,所述根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,包括:
根据第一连接文件和第二连接文件的连接信息和认证信息,判断源集群和目标集群是否属于同一集群;
根据第一命名空间和第二命名空间,判断源集群和目标集群是否采用相同的命名空间;
根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式。
3.根据权利要求1所述的方法,其特征在于,各预设的迁移模式包括直接模式;
所述根据源集群和目标集群是否属于同一集群,以及,源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,包括:
若源集群和目标集群属于同一集群,且源集群和目标集群采用相同的命名空间,将目标迁移模式确定为直接模式;
当目标迁移模式为直接模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod上利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
4.根据权利要求3所述的方法,其特征在于,各预设的迁移模式还包括通道模式;
所述根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还包括:
若源集群和目标集群属于同一集群,但源集群和目标集群采用不同的命名空间,将目标迁移模式确定为通道模式;
当目标迁移模式为通道模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
启动两个中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh通道,所述ssh通道用于通过内网连接至源集群的目标应用;
通过所述ssh通道利用rsync工具将源持久化存储中的数据同步至目标持久化存储。
5.根据权利要求4所述的方法,其特征在于,各预设的迁移模式还包括隧道模式;
所述根据源集群和目标集群是否属于同一集群,以及源集群和目标集群是否采用相同的命名空间,从多种预设的迁移模式中确定目标迁移模式的过程,还包括:
若源集群和目标集群不属于同一集群,将目标迁移模式确定为隧道模式;
当目标迁移模式为隧道模式时,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储的过程,包括:
判断目标集群能否通过外网接入源集群;
若是:
启动两个新的中间态Pod,并利用所述两个中间态Pod分别挂载源持久化存储和目标持久化存储;
在所述两个中间态Pod之间建立一条ssh隧道,所述ssh隧道用于通过外网连接至源集群的目标应用;
通过所述ssh隧道利用rsync工具将源持久化存储中的数据同步至目标持久化存储;
若否:
通过代理转发的形式将源持久化存储迁移至目标持久化存储。
6.根据权利要求5所述的方法,其特征在于,所述通过代理转发的形式将源持久化存储迁移至目标持久化存储的过程,包括:
分别在源集群和目标集群运行sshd,结合sshd、kubectl端口转发逻辑和SSH反向代理将将源持久化存储中的数据转存至目标持久化存储。
7.根据权利要求1~6任一项所述的方法,其特征在于,基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储之后,还包括:
重命名源持久化存储,解除目标应用与源持久化存储的绑定关系,并将目标持久化存储绑定至目标应用。
8.一种实现Kubernetes持久化存储数据迁移的装置,其特征在于,包括:
目标创建单元,用于在目标集群创建具有目标容量的目标持久化存储,所述目标容量不小于源集群中待迁移的源持久化存储的空间大小;
信息获取单元,用于获取源集群的第一连接文件和第一命名空间,以及获取目标集群的第二连接文件和第二命名空间;
模式确定单元,用于根据第一连接文件、第一命名空间、第二连接文件以及第二命名空间,从多种预设的迁移模式中确定目标迁移模式;
数据迁移单元,用于基于所述目标迁移模式将源持久化存储中的数据迁移至目标持久化存储。
9.一种实现Kubernetes持久化存储数据迁移的设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~7中任一项所述的实现Kubernetes持久化存储数据迁移的方法的各个步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~7中任一项所述的实现Kubernetes持久化存储数据迁移的方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310731562.2A CN116774935A (zh) | 2023-06-19 | 2023-06-19 | 一种实现Kubernetes持久化存储数据迁移的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310731562.2A CN116774935A (zh) | 2023-06-19 | 2023-06-19 | 一种实现Kubernetes持久化存储数据迁移的方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116774935A true CN116774935A (zh) | 2023-09-19 |
Family
ID=87985423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310731562.2A Pending CN116774935A (zh) | 2023-06-19 | 2023-06-19 | 一种实现Kubernetes持久化存储数据迁移的方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116774935A (zh) |
-
2023
- 2023-06-19 CN CN202310731562.2A patent/CN116774935A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109151045B (zh) | 一种分布式云系统及监控方法 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
US10860375B1 (en) | Singleton coordination in an actor-based system | |
CN104750573A (zh) | 分布式数据系统数据节点的全局一致性备份和还原方法 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN111858161A (zh) | 云主机的容灾方法、装置、设备及计算机可读存储介质 | |
US8621260B1 (en) | Site-level sub-cluster dependencies | |
CN107623705B (zh) | 基于视频云存储系统的存储模式升级方法、装置和系统 | |
CN112035062B (zh) | 云计算的本地存储的迁移方法、计算机设备及存储介质 | |
CN116774935A (zh) | 一种实现Kubernetes持久化存储数据迁移的方法及相关设备 | |
CN104184614A (zh) | 一种配置回滚方法及装置 | |
CN115658390A (zh) | 容器容灾方法、系统、装置、设备及计算机可读存储介质 | |
WO2012072644A1 (en) | Validation of access to a shared data record subject to read and write access by multiple requesters | |
CN115174596A (zh) | 一种设备远程复制方法、装置以及介质 | |
US9348672B1 (en) | Singleton coordination in an actor-based system | |
CN111858079B (zh) | 分布式锁迁移方法、装置及电子设备、存储介质 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
EP3387533B1 (en) | Disaster recovery of cloud resources | |
CN109542588B (zh) | 一种用于在云环境下管理虚拟设备的方法和装置 | |
CN115617917B (zh) | 一种数据库集群多活控制的方法、装置、系统和设备 | |
CN111162951A (zh) | 一种nas集群节点恢复方法及装置 | |
CN117931247A (zh) | 基于泛终端os的智能家电交互方法 | |
CN117608921A (zh) | 云数据库的备份方法、恢复方法及相关设备 | |
CN104731665A (zh) | 一种信息处理方法及电子设备 | |
CN117914675A (zh) | 一种分布式缓存系统的构建的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |