CN116954870B - 跨集群应用的迁移方法、恢复方法、装置及集群系统 - Google Patents

跨集群应用的迁移方法、恢复方法、装置及集群系统 Download PDF

Info

Publication number
CN116954870B
CN116954870B CN202311210260.7A CN202311210260A CN116954870B CN 116954870 B CN116954870 B CN 116954870B CN 202311210260 A CN202311210260 A CN 202311210260A CN 116954870 B CN116954870 B CN 116954870B
Authority
CN
China
Prior art keywords
component
migration
resource information
application
cluster
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.)
Active
Application number
CN202311210260.7A
Other languages
English (en)
Other versions
CN116954870A (zh
Inventor
郭春庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311210260.7A priority Critical patent/CN116954870B/zh
Publication of CN116954870A publication Critical patent/CN116954870A/zh
Application granted granted Critical
Publication of CN116954870B publication Critical patent/CN116954870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种跨集群应用的迁移方法、恢复方法、装置及集群系统,属于计算机技术领域。该迁移方法包括:利用服务数据对源集群系统的集群管理资源进行分类,得到组件资源信息;根据组件资源信息,以及任意两组组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;将任一容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照组件迁移顺序,依次传输至目的集群系统。本发明提供的跨集群应用的迁移方法、恢复方法、装置及集群系统,能够自动将集群中零散的资源归纳为整体的容器应用,并在以容器应用为单位进行迁移的过程中根据容器应用内部组件依赖关系使得组件按序迁移,提高跨集群应用迁移的效率。

Description

跨集群应用的迁移方法、恢复方法、装置及集群系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种跨集群应用的迁移方法、恢复方法、装置及集群系统。
背景技术
在构建IT基础设施环境时,一般会使用多集群环境来承载业务系统。出于集群版本升级、资源调整、性能优化或者资源隔离等考虑,需要将容器化应用从一个集群迁移到另一个集群。现有的迁移工具支持以命名空间粒度进行跨集群迁移,但该方案的缺点是当命名空间内的容器应用规模较大时,迁移过程中带宽消耗过大可能导致网络堵塞,进而导致迁移失败甚至可能导致整个集群崩溃。如果想细粒度迁移,只能人为给集群资源打标签,然后基于标签进行迁移,此方法人为参与过多且操作难度高。同时,在目的集群恢复过程中,由于恢复的无序性导致被依赖的组件后恢复,进而导致容器应用可能无法正常启动,或者是需要人为参与进行二次修复。可见,现有的跨集群迁移在灵活控制和迁移效率方面存在一些限制。
发明内容
本发明提供一种跨集群应用的迁移方法、恢复方法、装置及集群系统,用以解决现有技术中现有迁移方案中迁移顺序不可控所导致的迁移效率低下缺陷。
本发明提供一种跨集群应用的迁移方法,应用于向目的集群系统进行应用迁移的源集群系统,所述方法包括:
利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;
根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;
其中,n为大于1的正整数。
根据本发明提供的一种跨集群应用的迁移方法,所述根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息,包括:
通过所述组件资源信息,以及所述源集群系统的域名服务日志,确定任意两个组件之间的组件依赖关系;
以组件作为顶点、所述组件依赖关系作为边,对所述组件资源信息进行拓扑排序,得到组件拓扑结构;
根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,并将各目标组件的组件资源信息按照所述组件迁移顺序排列生成所述容器应用资源信息;
其中,所述依赖组件信息包括依赖于任一组件的组件名称。
根据本发明提供的一种跨集群应用的迁移方法,所述根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,包括:
将所述依赖组件信息为空的组件设置为初始迁移组件,所述初始迁移组件的迁移级别被设置为第一档位;
将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别;
按照各组件的迁移级别的档位进行升序排序,得到具有所述组件迁移顺序的所述目标组件。
根据本发明提供的一种跨集群应用的迁移方法,在所述将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别之后,还包括:
在根据同一迁移级别的组件的依赖组件信息确定同级别中组件存在依赖关系的情况下,使作为被依赖方的组件保持当前的迁移级别,还使作为依赖方的组件的迁移级别升高一个档位。
根据本发明提供的一种跨集群应用的迁移方法,在所述根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息之后,还包括:
根据所述容器应用资源信息,确定应用迁移顺序;
按照所述应用迁移顺序,将目标容器应用资源信息中具有相同迁移级别的组件资源信息一并传输至所述目的集群系统;
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。
根据本发明提供的一种跨集群应用的迁移方法,所述根据所述容器应用资源信息,确定应用迁移顺序,包括:
根据每一所述容器应用资源信息所包含的n个目标组件的拓扑结构,确定对应的所述容器应用资源信息的拓扑复杂度;
利用所有容器应用资源信息的拓扑复杂度,确定所述应用迁移顺序。
根据本发明提供的一种跨集群应用的迁移方法,所述根据所述容器应用资源信息,确定应用迁移顺序,包括:
获取所述目的集群系统中的任一用户终端所输入的任务需求信息;
根据所述任务需求信息,确定各容器应用的权重,以供根据各容器应用的权重确定所述应用迁移顺序。
根据本发明提供的一种跨集群应用的迁移方法,所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息以列表形式输出;
其中,每一目标组件对应的列表字段包括组件标识信息、容器应用标识信息、组件资源信息和迁移级别;所述容器应用标识信息是根据所述应用迁移顺序确定的。
根据本发明提供的一种跨集群应用的迁移方法,所述利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息,包括:
以所述源集群系统的命名空间内的Service作为关联点,从所述源集群系统的集群管理资源得到不同类别的服务数据;
利用目标服务数据,查询出与所述目标服务数据匹配的目标Pod资源;
将与所述目标Pod资源关联的集群管理资源作为所述组件资源信息;
其中,所述目标服务数据为任一种类别的服务数据;任一Pod资源是所述源集群系统的管理引擎中的最小调度单元所对应的资源。
本发明还提供一种跨集群应用的恢复方法,应用于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述方法包括:
接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;
其中,n为大于1的正整数。
根据本发明提供的一种跨集群应用的恢复方法,所述接收所述源集群系统传输的容器应用资源信息,包括:
按照应用迁移顺序,接收目标容器应用资源信息;
将所述目标容器应用资源信息中具有相同迁移级别的组件资源信息同步进行组件恢复;
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息;所述应用迁移顺序为所述源集群系统向目的集群系统迁移容器应用资源信息的顺序。
根据本发明提供的一种跨集群应用的恢复方法,所述组件资源信息包括资源元数据和业务数据,任一次组件恢复时执行如下步骤:
在确定接收到目标组件资源信息中的资源元数据的情况下,将所述业务数据传输到与所述目标组件资源信息对应的组件目录下;
在监听到与所述目标组件资源信息具有相同迁移级别的组件资源信息的资源元数据和业务数据均传输至相应组件目录后,对迁移级别为所述目标组件资源信息的迁移级别的下一级的组件资源信息进行组件恢复。
根据本发明提供的一种跨集群应用的恢复方法,在所述按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复的过程中,还包括:
按照所述组件迁移顺序中迁移级别的档位升序顺序,将各目标组件的可视化进度条放置在与所述迁移级别对应的同心圆上进行前端显示。
根据本发明提供的一种跨集群应用的恢复方法,所述可视化进度条通过颜色和/或字符表征目标组件的恢复进度。
本发明还提供一种跨集群应用的迁移装置,设置于向目的集群系统进行应用迁移的源集群系统,所述装置包括:
组件分类模块,用于利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;
应用分类模块,用于根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
应用迁移模块,用于将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;
其中,n为大于1的正整数。
本发明还提供一种跨集群应用的恢复装置,设置于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述装置包括:
应用接收模块,用于接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
组件恢复模块,用于按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;
其中,n为大于1的正整数。
本发明还提供一种集群系统,包括一组物理机器或虚拟机器组成的服务器集群;
其中,任一物理机器或虚拟机器分别设置有如上所述的跨集群应用的迁移装置,以及如上所述的跨集群应用的恢复装置。
根据本发明提供的一种集群系统,所述集群系统通过Kubernetes部署容器应用及其生命周期管理。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一项所述跨集群应用的迁移方法,以及如上任一项所述跨集群应用的恢复方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述跨集群应用的迁移方法,以及如上任一项所述跨集群应用的恢复方法。
本发明提供的跨集群应用的迁移方法、恢复方法、装置及集群系统,在源集群系统以服务数据作为关联点对集群管理资源进行关联和分类后,利用分类出的组件资源信息判断组件之间是否具有依赖关系,并将具有组件依赖关系的目标组件的组件资源信息以对应的组件迁移顺序整合到容器应用资源信息中,以供容器应用资源信息通过网络传输给目的集群系统的过程中使其内部的组件资源信息以指定的先后顺序进行有序迁移。能够自动将集群中零散的资源归纳为整体的容器应用,并在以容器应用为单位进行迁移的过程中根据容器应用内部组件依赖关系使得组件按序迁移,以避免发生网络带宽的占用冲突,提高跨集群应用迁移的成功率和效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的跨集群应用的迁移方法的流程示意图;
图2是本发明提供的容器实例示意图;
图3是本发明提供的容器应用分类示意图;
图4是本发明提供的组件的迁移级别排序示意图;
图5是本发明提供的跨集群应用的恢复方法的流程示意图;
图6是本发明提供的容器应用恢复过程的可视化示意图;
图7是本发明提供的跨集群应用的迁移装置的结构示意图;
图8是本发明提供的跨集群应用的恢复装置的结构示意图;
图9是本发明提供的集群系统的结构示意图;
图10是本发明提供的集群系统之间的交互流程示意图;
图11是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
图1是本发明提供的跨集群应用的迁移方法的流程示意图。如图1所示,本发明实施例提供的跨集群应用的迁移方法,应用于向目的集群系统进行应用迁移的源集群系统,所述方法包括:步骤101、利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息。
其中,所述组件资源信息的数量与所述服务数据的类别数量相同。
需要说明的是,本发明实施例提供的跨集群应用的迁移方法的执行主体是设置在集群系统中的任一服务器上的跨集群应用的迁移装置,该装置可以集成在源集群系统中的任一服务器板卡上。
本申请实施例提供的跨集群应用的迁移方法的应用场景为,在任一集群系统上构建微服务架构的容器应用时,应用中的每个微服务也称之为组件,对应为一个服务数据Service以及与Service关联的其他集群管理资源,并由Service对外暴露服务访问地址。故在由源集群系统向目的集群系统进行应用迁移时,可将Service作为关联点进行集群管理资源的关联,对组件进行分类,并根据分类结果对组件的迁移次序进行规划。
具体地,在步骤101中,设置在源集群系统中的跨集群应用的迁移装置以服务数据(Service)为关联点自动将源集群系统中分散的集群管理资源识别为一个个组件,并以组件为单位,将源集群系统中需要迁移的组件以及组件中的集群资源信息汇总成组件资源信息。
其中,组件资源信息的组数等同于源集群系统中分散的组件数量,而组件数量则取决于不同类别的服务数据(Service)。
步骤102、根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息。
其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序。
具体地,在步骤102中,设置在源集群系统中的跨集群应用的迁移装置从步骤101得到的所有组件资源信息挖掘出任意两个组件之间的组件依赖关系,并利用组件依赖关系作为分类依据,形成由一个或者多个具有组件依赖关系的目标组件组成的容器应用,并将同属于一个容器应用下的所有目标组件的组件资源信息整合成容器应用资源信息。
示例性地,图2是本发明提供的容器实例示意图。如图2所示,本发明实施例给出一种容器应用资源信息的中目标组件资源信息的整合方式,即容器应用资源信息所包含的n(n为大于或等于2的正整数)个目标组件的组件资源信息是以一定的次序进行存储的,以Kubernetes引擎为例,其中:
工作负载(workload)是在Kubernetes上运行的应用程序。在 Kubernetes中,无论负载是由单个组件还是由多个一同工作的组件构成,都可以在一组Pod中运行它。在Kubernetes中,Pod代表的是集群上处于运行状态的一组容器的集合,而用于管理工作负载(workload)的内置 API 包括:
Deployment(也间接包括ReplicaSet)是在集群上运行应用的最常见方式。Deployment适合在集群上管理无状态应用工作负载,其中Deployment中的任何Pod都是可互换的,可以在需要时进行替换。(Deployment替代原来的ReplicationController API)。
其中,Deployment是Kubernetes中用于声明式管理应用程序的资源对象。它提供了一种机制来创建、更新和删除应用程序的副本,并确保应用程序在集群中的状态与所期望的状态一致。
ReplicaSet是Kubernetes中的一种控制器,用于定义和管理Pod副本数量。它确保在集群中运行指定数量的Pod副本,并在需要时进行水平扩展或缩减。ReplicaSet使用标签选择器来选择要管理的Pod,并根据定义的副本数目来创建、替换或删除Pod。当Pod的数量少于定义的副本数目时,ReplicaSet会创建新的Pod副本以满足副本数的要求;当Pod的数量多于定义的副本数目时,ReplicaSet会删除多余的Pod副本。
StatefulSet允许管理一个或多个运行相同应用代码、但具有不同身份标识的Pod。StatefulSet与Deployment不同。Deployment中的 Pod预期是可互换的。StatefulSet最常见的用途是能够建立其Pod与其持久化存储之间的关联。例如,你可以运行一个将每个Pod关联到 PersistentVolume的StatefulSet。如果该StatefulSet中的一个Pod失败了,Kubernetes将创建一个新的Pod,并连接到相同的PersistentVolume。
DaemonSet定义了在特定节点上提供本地设施的Pod,例如允许该节点上的容器访问存储系统的驱动。当必须在合适的节点上运行某种驱动或其他节点级别的服务时,你可以使用DaemonSet。DaemonSet 中的每个Pod执行类似于经典Unix / POSIX服务器上的系统守护进程的角色。DaemonSet可能对集群的操作至关重要,例如作为插件让该节点访问集群网络,也可能帮助管理节点,或者提供增强正在运行的容器平台所需的、不太重要的设施。还可以在集群的每个节点上运行 DaemonSets(及其 Pod),或者仅在某个子集上运行(例如,只在安装了GPU的节点上安装GPU加速驱动)。
另外,Kubernetes为配置Pods提供的资源包括ConfigMap,用来将非机密性的数据保存到键值对中。使用时,Pod可以将其用作环境变量、命令行参数或者存储卷中的配置文件。
还可以通过类似于ConfigMap但专门用于保存机密数据的Secret采取额外的预防措施,例如避免将机密数据写入非易失性存储。
其中,在Kubernetes中,Secret和ConfigMap都是用于存储配置数据的资源类型,但它们在数据的安全性和用途上存在一些区别。Secret主要用于存储敏感数据,如密码、API密钥、证书等。相比之下,ConfigMap用于存储非敏感的配置数据,如环境变量、命令行参数等。Secret会将数据以Base64编码的方式保存,而ConfigMap则直接保存明文数据。
可以理解的是,图2搜展示的目标组件1到目标组件n的排序仅表征n个目标组件的组件迁移顺序,并非组件资源信息的分类结果。本发明实施例对组件迁移顺序的规划方式不作具体限定。
示例性地,组件迁移顺序可以根据n个目标组件中所包含的组件依赖关系的复杂度确定的,故复杂度越低的目标组件,具有越高的迁移优先级。
示例性地,组件迁移顺序可以根据认为设定的一个或者多个约束条件确定的,故当组件依赖关系所满足的约束条件越少,则对应这一对目标组件具有越高的迁移优先级,并对于这一对目标组件在组件迁移顺序中的次序来说,作为被依赖方的目标组件的次序处于作为依赖方的目标组件之后。
步骤103、将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统。
其中,n为大于1的正整数。
具体地,在步骤103中,设置在源集群系统中的跨集群应用的迁移装置将容器应用资源信息以yaml文件形式存放到文件目录中。一个一级目录代表一个容器应用,每一容器应用对应的一级目录里面的二级目录代表一个组件,二级目录下存放着按照顺序排列好的目标组件对应的组件资源信息的yaml文件,按照其排列好的组件迁移顺序,通过网络将对应的yaml文件依次传输至目的集群系统进行有序迁移。
本发明实施例在源集群系统以服务数据作为关联点对集群管理资源进行关联和分类后,利用分类出的组件资源信息判断组件之间是否具有依赖关系,并将具有组件依赖关系的目标组件的组件资源信息以对应的组件迁移顺序整合到容器应用资源信息中,以供容器应用资源信息通过网络传输给目的集群系统的过程中使其内部的组件资源信息以指定的先后顺序进行有序迁移。能够自动将集群中零散的资源归纳为整体的容器应用,并在以容器应用为单位进行迁移的过程中根据容器应用内部组件依赖关系使得组件按序迁移,以避免发生网络带宽的占用冲突,提高跨集群应用迁移的成功率和效率。
在上述任一实施例的基础上,根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息,包括:通过所述组件资源信息,以及所述源集群系统的域名服务日志,确定任意两个组件之间的组件依赖关系。
具体地,在步骤102中,设置在源集群系统中的跨集群应用的迁移装置通过查询源集群系统中域名系统(Domain Nane System)的域名服务日志,获取哪些IP地址访问过哪些Service,这样就可以确定两个Service之间是否存在调用关系,若二者存在调用关系,即判定其各自所属的两个组件之间存在组件依赖关系,记作A→B。反之,则说明其各自所属的两个组件之间不存在组件依赖关系。
其中,A为作为依赖方的目标组件,B为作为被依赖方的目标组件。
可以理解的是,结合一个具体的查询DNS的日志内容可以为:
INFO query: client IP =192.168.0.100, query=svc1.com , type=A,response=192.0.2.1
其中,client IP为访问者Pod的IP地址,svc1.com为被访问者的Service名称。根据该方法遍历所有日志记录后,可以发现所有Service间的依赖关系。
以组件作为顶点、所述组件依赖关系作为边,对所述组件资源信息进行拓扑排序,得到组件拓扑结构。
具体地,设置在源集群系统中的跨集群应用的迁移装置将步骤101分类出的组件作为顶点、各组件之间的组件依赖关系作为边,构建一个图,利用图的深度或者广度遍历算法,将具有连通性的节点归为一个子图,一个子图内部的组件拓扑结构即代表一个容器应用。
根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,并将各目标组件的组件资源信息按照所述组件迁移顺序排列生成所述容器应用资源信息。
其中,所述依赖组件信息包括依赖于所述目标组件的组件名称。
需要说明的是,依赖组件信息,记载了需要迁移的每一个目标组件以依赖方的身份作为子节点,向上查询出的被子节点所依赖的父节点对应的组件名称。
其中,本发明实施例对依赖组件信息的记载形式不作具体限定。
示例性地,依赖组件信息的记载形式可以为一个表格,该表格包括两个字段:组件和依赖组件信息,组件字段作为检索字段,能在表格中查询到其所对应依赖的依赖组件信息。
示例性地,图3是本发明提供的容器应用分类示意图。如图3所示,假设有10个组件,通过组件调用关系分析,将组件自动分类为三个容器应用。结合图3所示的组件拓扑结构,依赖组件信息的表格形式如表1所示。
表1 依赖组件信息示意表
具体地,设置在源集群系统中的跨集群应用的迁移装置根据组件拓扑结构确定一个粗粒度的层级次序,并对于拓扑结构中同处一层的多个组件,需要借助依赖组件信息将同层级具有依赖关系的组件分离开来,以此确定出组件迁移顺序,并将各组件按照组件迁移顺序依此标记为目标组件1至目标组件n,并将在对应次序的二级目录下将对应目标组件的组件资源信息以yaml文件形式存储。
本发明实施例利用组件资源信息从域名服务日志中查询出组件之间的依赖关系,并根据组件和组件依赖关系节点所构成的线性排序确定组件迁移顺序,以此排列生成容器应用资源信息。能够基于DNS日志记录自动发现组件之间的依赖关系,将具有依赖关系的组件关联到一个容器应用,并在以容器应用为单位进行迁移进行有序迁移,提高跨集群应用迁移的效率。
在上述任一实施例的基础上,根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,包括:将所述依赖组件信息为空的组件设置为初始迁移组件,所述初始迁移组件的迁移级别被设置为第一档位。
具体地,设置在源集群系统中的跨集群应用的迁移装置将先遍历依赖组件信息,获取依赖组件信息为空的组件,作为最优先迁移的初始迁移组件,其迁移级别定位第一档位L1。
将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别。
具体地,设置在源集群系统中的跨集群应用的迁移装置查询依赖于L1级别组件的其他组件的迁移级别定位为第二档位L2,依次类推,直到所有组件被分配了迁移级别。
按照各组件的迁移级别的档位进行升序排序,得到具有所述组件迁移顺序的所述目标组件。
具体地,设置在源集群系统中的跨集群应用的迁移装置将各组件的迁移级别所对应的档位值进行升序排序,并将排序所得的组件迁移顺序赋在其所属的容器应用的文件夹下形成二级文件夹,每个二级文件夹下存储着对应次序的目标组件的组件资源信息。
本发明实施例利用依赖组件信息为空的组件作为初始节点,不断在拓扑结构向上查找以确定各组件的迁移级别,并通过对迁移级别升序得到的组件迁移顺序在所隶属的容器应用中有序存放目标组件及其组件资源信息。能够实现按照组件的优先级顺次传递到目的集群系统,以提高网络传输效率。
在上述任一实施例的基础上,在所述将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别之后,还包括:在根据同一迁移级别的目标组件的依赖组件信息确定同级别中组件存在依赖关系的情况下,使作为被依赖方的目标组件保持当前的迁移级别,还使作为依赖方的目标组件的迁移级别升高一个档位。
具体地,设置在源集群系统中的跨集群应用的迁移装置在构建迁移级别过程中,还需要对同一迁移级别中的组件的依赖组件信息进行查询,若发现存在某一组件的依赖组件信息记载有同一迁移级别的其他组件,则认定二者存在依赖关系,故保持被依赖方组件的迁移级别不变,而将依赖方组件的迁移级别进行降级,即使其档位值相应升高一档。而对于依赖于被降级组件的支链也会受其影响,故处于该支链上的组件也需要在其原有的迁移级别基础上进行降级。
示例性地,图4是本发明提供的组件的迁移级别排序示意图。如图4所示,本发明结合基于一种脱离于图2的拓扑结构而独立展现的迁移级别对同级升档的过程进行具体说明:
调整前所得到的迁移级别为组件1和组件5分别作为两个连通子图的顶点,其迁移级别所对应的档位值为优先级最高的L1。
由于组件2依赖于组件1,组件3依赖于组件5,所以顺次将二者均归属于拥有优先级次高的L2,以此类推,根据图中箭头所示的依赖关系,组件4和组件6均归属于拥有优先级最低的L3。
但是,值得注意的是,在L2级别中的组件2和组件3也存在依赖关系,将作为依赖方的组件2由原来的L2重新分配为L3后与组件6同处一级,而依赖于组件2的组件4也相应由原来的L3重新分配为L4。
本发明实施例在构建迁移级别过程中,同级别中组件有依赖关系时,被依赖方组件不变,依赖方进行级别降低。实现即使在被依赖方组件传输失败也不会影响后续依赖方组件的传输,能够避免同级别中存在依赖关系的两个组件在网络传输的过程中产生信道冲突,以保证网络的容错性。
在上述任一实施例的基础上,在所述根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息之后,还包括:根据所述容器应用资源信息,确定应用迁移顺序。
具体地,在步骤102之后,设置在源集群系统中的跨集群应用的迁移装置在完成将各组件归集到相应容器应用后,还可以利用归集后所得到的容器应用资源信息规划出应用迁移顺序,并将排序所得的应用迁移顺序赋予在其所属的主机文件夹下形成有序的一级文件夹。
按照所述应用迁移顺序,将目标容器应用资源信息中具有相同迁移级别的组件资源信息一并传输至所述目的集群系统。
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。
具体地,设置在源集群系统中的跨集群应用的迁移装置在按照应用迁移顺序以容器应用作为单位进行传输的过程中,将每一个在当下进行迁移的容器应用资源信息均作为目标容器应用资源信息,对于任意一次容器传输过程,均执行具有相同迁移级别的组件通过一次传递传输至目的集群系统。
待目的集群系统对当前接收到的组件资源信息恢复成功后再通知源集群系统,继续发送下一个迁移级别的组件资源信息,直至一个容器应用下所有的目标组件全部恢复后,再发送下一个容器应用下的全部组件,依次类推,直到所有组件都恢复完成。
本发明实施例利用容器应用资源信息对应用迁移顺序进行规划,以在所隶属的主机目录中有序存放容器应用及其容器应用资源信息,并对于任意一个当前处于迁移状态下的容器应用资源信息,均将具有相同优先级的组件资源信息一起发送到目的集群系统。能够实现按照在容器应用有序迁移的基础上,使每一容器应用内的组件的优先级顺次传递到目的集群系统,以提高网络传输效率。
在上述任一实施例的基础上,根据所述容器应用资源信息,确定应用迁移顺序,包括:根据每一所述容器应用资源信息所包含的n个目标组件的拓扑结构,确定对应的所述容器应用资源信息的拓扑复杂度。
具体地,设置在源集群系统中的跨集群应用的迁移装置针对每一容器应用中所包含的n个目标组件形成的拓扑结构,计算其图的复杂度,以表征对应容器应用资源信息的拓扑复杂度。
利用所有容器应用资源信息的拓扑复杂度,确定所述应用迁移顺序。
具体地,设置在源集群系统中的跨集群应用的迁移装置利用归类得到的所有容器应用资源信息的拓扑复杂度进行排序,将具有较低复杂度的容器应用赋予较高的迁移优先级,而内部组件构成较为复杂的容器应用赋予较低的迁移优先级,故按照其升序顺序形成应用迁移顺序,以引导容器应用之间进行有序迁移。
本发明实施例根据每一容器应用资源信息下的组件拓扑结构确定其对应的拓扑复杂度,并利用拓扑复杂度的升序顺序形成应用迁移顺序,以在所隶属的主机目录中有序存放容器应用及其容器应用资源信息。能够在打包迁移的过程中实现每一分级目录下均各自进行有序传输,可最大程度上避免信道冲突,提高网络传输效率和成功率。
在上述任一实施例的基础上,根据所述容器应用资源信息,确定应用迁移顺序,包括:获取所述目的集群系统中的任一用户终端所输入的任务需求信息。
需要说明的是,目的集群系统中的任一用户终端可以根据实际任务需求设置迁移倾向,故可在其终端上选定其所关注的组件项目或者容器应用项目,并相应为其设置了关注程度,再将关注项目和关注程度整合成任务需求信息传输至源集群系统。
具体地,设置在源集群系统中的跨集群应用的迁移装置在开始迁移之前,还可以接收目的集群系统所发出的任务需求信息。
根据所述任务需求信息,确定各容器应用的权重,以供根据各容器应用的权重确定所述应用迁移顺序。
具体地,设置在源集群系统中的跨集群应用的迁移装置将任务需求信息中所包含的容器应用赋予较大的权重值,或者,将任务需求信息中所包含的组件所隶属的容器应用赋予较大的权重值,进而按照权重值的升序顺序形成应用迁移顺序,以引导容器应用之间进行有序迁移。本发明实施例对权重值的赋予方式不作具体限定。
示例性地,如果任务需求信息中设置的关注项目全是容器应用,则设置在源集群系统中的跨集群应用的迁移装置将任务需求信息中所包含的容器应用的权重值赋值为与其在任务需求信息中对应设置的关注程度呈正相关的数值。
示例性地,如果任务需求信息中设置的关注项目全是组件,设置在源集群系统中的跨集群应用的迁移装置将任务需求信息中所包含的组件所隶属的容器应用的权重值赋值为与其在任务需求信息中对应组件的关注程度之和呈正相关的数值。
示例性地,如果任务需求信息中设置的关注项目既有组件又有容器应用,则设置在源集群系统中的跨集群应用的迁移装置直接将任务需求信息中所包含的容器应用的权重值赋值为与其在任务需求信息中对应设置的关注程度呈正相关的数值,而对于任务需求信息中对应组件的关注程度,则需要结合一定的转换系数,才能用以表征其所隶属的容器应用的权重值。
本发明实施例根据目的集群系统所设置的任务需求信息确定各容器应用的权重,并利用权值的升序顺序形成应用迁移顺序,以在所隶属的主机目录中有序存放容器应用及其容器应用资源信息。能够在打包迁移的过程中实现每一分级目录下均各自进行有序传输,可最大程度上避免信道冲突,提高网络传输效率和成功率。
在上述任一实施例的基础上,所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息以列表形式输出。
其中,每一目标组件对应的列表字段包括组件标识信息、容器应用标识信息、组件资源信息和迁移级别;所述容器应用标识信息是根据所述应用迁移顺序确定的。
具体地,设置在源集群系统中的跨集群应用的迁移装置将容器应用资源信息下所包含的每一目标组件的组件资源信息均以组件列表信息的形式传递给目的集群系统。
其中,组件列表信息的主要字段由组件标识信息、所属的容器应用标识信息、组件资源信息、迁移级别构成,其具体实施方式可如下:
首先定义一个表结构MigrateComponent,如表2所示:
表2 组件资源信息示意表
其中,组件资源信息表征组件所对应的集群管理资源,其包含的属性有Service、WorkloadType、WorkloadName、Replicaset、Configmap、Secret、PVC和Pod。当源集群系统开展迁移任务时,查询出一个或者多个命名空间的集群管理资源(例如Kubernetes资源)自动分类并组合为一个个组件,并将信息保存到表MigrateComponent 中的记录中。
其中,PVC(Persistent Volume Claim)是Kubernetes中用于声明式管理持久化存储的资源对象。它允许应用程序声明对持久卷(Persistent Volume)的需求,以便动态地将持久化存储分配给应用程序。
再根据表1示意的依赖组件信息获取组件间的依赖关系后,将不同组件归类至容器应用形成与图3类似的子图,为每个子图命名,即容器应用的名字,将应用名称填充到表2的容器应用标识信息(MigrateApp)字段。还通过确定容器应用内部组件的迁移优先级,高优先级所对应的档位数值小,将档位数值记录到表2中的迁移级别(Priority)字段,例如档位L1可被赋值为1。
根据容器应用标识信息(MigrateApp)查询出该容器应用所有的组件,再通过表2查询出组件所有的组件资源信息资源,以yaml文件形式存放到文件目录中。一个一级目录代表一个容器应用,里面二级目录代表一个组件,二级目录为具体的kubernetes资源的yaml文件,并将具有相同优先级的组件一起发送到目的集群系统。
可以理解的是,关于容器应用的命名,可以根据应用迁移顺序进行命名,例如表2中的App1、App2等等,其数字可表征相应容器应用的迁移顺序。
也可以根据应用自身的功能命名,例如待迁移的业务系统为一个购物网站,若按照业务逻辑所对应的功能进行划分,则其所包含的容器应用可以包括括商品组织管理模块、订单处理模块、内容发布管理等模块。
本发明实施例将源集群系统中零散的资源识别为不同的一个个整体容器应用,按照容器应用依次迁移,自动识别容器应用内部组件依赖关系,并将容器应用下的组件资源信息按照其组件之间的依赖关系统一整合至成列表形式暴露在接口,以使得进行迁移时能通过接口调用该列表进行有序迁移,大大提高了迁移的成功率以及恢复的效率,同时迁移过程中网络带宽占用平稳。
在上述任一实施例的基础上,利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息,包括:以所述源集群系统的命名空间内的Service作为关联点,从所述源集群系统的集群管理资源得到不同类别的服务数据。
具体地,在步骤101中,设置在源集群系统中的跨集群应用的迁移装置调用kube-apiserver查询出源集群系统的集群管理资源(即Kubernetes资源)的所有信息,通过查询出的源集群系统中某个或者多个命名空间内的Service,以Service为关联点自动将中分散的资源识别为一个组件,一个组件包括多种Kubernetes资源。
利用目标服务数据,查询出与所述目标服务数据匹配的目标Pod资源。
其中,所述目标服务数据为任一种类别的服务数据;任一Pod资源是所述源集群系统的管理引擎中的最小调度单元所对应的资源。
需要说明的是,目标服务数据,是指任一个区别于其他服务数据的服务数据。
具体地,设置在源集群系统中的跨集群应用的迁移装置通过任一目标Service中后端列表中的IP地址找到对应的目标Pod资源。
其中,Pod资源与Service一一对应。
Pod是Kubernetes(通常简称为K8S,一种开源的容器集群管理系统和容器应用编排引擎,主要功能是自动化部署容器应用及其生命周期管理)的最小工作单元(提供应用的单元),一个Pod中封装了一个或者多个紧耦合的应用容器,Pod中的所有容器使用同一个network namespace,即相同的IP地址空间和Port空间(但是各自的IP地址是独立的),它们可以直接用localhost通信。
将与所述目标Pod资源关联的集群管理资源作为所述组件资源信息。
具体地,设置在源集群系统中的跨集群应用的迁移装置,通过目标Pod资源找到工作负载workload,再通过workload信息发现关联的Replicaset、Configmap、Secret以及PVC资源,并将上述资源作为组件资源信息,以组件为单位构建集群中需要迁移的命名空间的所有组件列表,以及组件中的Kubernetes资源信息。
本发明实施例通过查询源集群系统中某个或者多个命名空间内的Service,通过Service的IP地址找到对应的Pod资源,通过Pod找到工作负载,并获取与通过工作负载信息相关联的组件资源信息。能够以Service为关联点自动将源Kubernetes中分散的资源识别为一个组件,一个组件包括多种Kubernetes资源,为组件按序迁移提供有效的理论依据。
图5是本发明提供的跨集群应用的恢复方法的流程示意图。如图5所示,在上述任一实施例的基础上,本发明实施例提供的跨集群应用的恢复方法,应用于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述方法包括:步骤501、接收所述源集群系统传输的容器应用资源信息。
其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序。其中,n为大于1的正整数。
需要说明的是,本发明实施例提供的跨集群应用的恢复方法的执行主体是设置在集群系统中的任一服务器上的跨集群应用的恢复装置,该装置可以集成在目的集群系统中的任一服务器板卡上。
本申请实施例提供的跨集群应用的恢复方法的应用场景为,在由源集群系统向目的集群系统进行有序的应用迁移时,作为接收端也相应按照组件的优先级进行逐个恢复。
具体地,在步骤501中,设置在目的集群系统中的跨集群应用的恢复装置依次接收源集群系统传输通过执行如上所述的跨集群应用的迁移方法所得到的容器应用资源信息。
其中,容器应用由一个或者多个具有组件依赖关系的目标组件组成,故可将同属于一个容器应用下的所有目标组件的组件资源信息整合成容器应用资源信息。
步骤502、按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复。
具体地,在步骤502中,设置在目的集群系统中的跨集群应用的恢复装置在接收任一容器应用资源信息的过程中,将容器应用资源信息所对应的yaml文件形式的文件目录保存至本地。一个一级目录代表一个容器应用,每一容器应用对应的一级目录里面的二级目录代表一个组件,通过网络将按照组件迁移顺序对应接收的yaml文件依次传输至相应的二级目录下进行组件恢复,以使得一级目录下存放着按照顺序排列好的目标组件对应的组件资源信息的yaml文件。
本发明实施例在源集群系统将容器应用资源信息中的组件资源信息有序传输给目的集群系统的过程中,使作为接收方的目的集群系统也相应按照接收组件资源信息的先后顺序进行有序恢复。实现在组件按序迁移的基础上,能够无需人为参与直接按照组件之间的依赖关系进行有序恢复,避免被依赖组件的恢复出现异常时影响依赖组件的恢复,提高跨集群应用恢复的成功率和效率。
在上述任一实施例的基础上,接收所述源集群系统传输的容器应用资源信息,包括:按照应用迁移顺序,接收目标容器应用资源信息;
其中,其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。所述应用迁移顺序为所述源集群系统向目的集群系统迁移容器应用资源信息的顺序。
需要说明的是,应用迁移顺序,是由设置在源集群系统中的跨集群应用的迁移装置在完成将各组件归集到相应容器应用后,为各容器应用资源信息所规划出的顺序。应用迁移顺序,主要体现在源集群系统迁移的主机文件夹下的一级文件夹所形成的次序。
具体地,设置在目的集群系统中的跨集群应用的恢复装置在源集群系统中的跨集群应用的迁移装置按照应用迁移顺序以容器应用作为单位进行传输的过程中,将每一个在当下接收到的容器应用资源信息均作为目标容器应用资源信息。
将所述目标容器应用资源信息中具有相同迁移级别的组件资源信息同步进行组件恢复。
具体地,设置在目的集群系统中的跨集群应用的恢复装置对于任意一次容器恢复过程,均执行具有相同迁移级别的组件进行同时恢复。
待目的集群系统对当前接收到的组件资源信息恢复成功后再通知源集群系统,继续发送下一个迁移级别的组件资源信息,直至一个容器应用下所有的目标组件全部恢复后,再发送下一个容器应用下的全部组件,依次类推,直到所有组件都恢复完成。
本发明实施例按照应用迁移顺序接收容器应用资源信息,并并对于任意一个当前接收到的容器应用资源信息,均将具有相同优先级的组件资源信息同时恢复。能够实现按照在容器应用有序恢复的基础上,使每一容器应用内的组件的优先级进行恢复,以提高网络传输效率和恢复成功率。
在上述任一实施例的基础上,所述组件资源信息包括资源元数据和业务数据,任一次组件恢复时执行如下步骤:在确定接收到目标组件资源信息中的资源元数据的情况下,将所述业务数据传输到与所述目标组件资源信息对应的组件目录下。
具体地,设置在目的集群系统中的跨集群应用的恢复装置恢复模块按照组件的优先级进行逐个组件恢复,当同一个优先级的恢复完成后,再恢复下一个优先级的组件。
其中,组件资源信息可以大体分为资源元数据和业务数据,故组件恢复过程可以为当每个组件接收到作为资源元数据的PVC、Configmap、Secret后,将PVC所在的宿主机目录通知到源集群系统,源集群系统将源PVC对应的目录下业务数据传输到目的PVC所在宿主机目录下,然后恢复作为业务数据的Pod、Replicaset、workload。
在监听到与所述目标组件资源信息具有相同迁移级别的组件资源信息的资源元数据和业务数据均传输至相应组件目录后,对迁移级别为所述目标组件资源信息的迁移级别的下一级的组件资源信息进行组件恢复。
具体地,设置在目的集群系统中的跨集群应用的恢复装置可以定时调用kube-apiserver对任一组件资源信息的恢复进度进行监听,当确定资源元数据和业务数据均在对应宿主目录下完成恢复后,再对下一个优先级的组件进行恢复,当一个容器应用完成恢复后,开展下一个容器应用组件的恢复工作,依次类推,直到所有组件都恢复完成。
本发明实施例在进行组件恢复过程中,在确定资源元数据完成迁移后再将与资源元数据匹配的业务数据存放至相应目录下完成恢复,直至同一迁移级别的组件资源信息均按上述流程完成组件恢复后,开始下一迁移级别的组件恢复工作。通过组件资源信息分层恢复,能够利用组件资源信息中的主要信息是否迁移成功,对迁移工作进行初步校验,以在迁移成功的基础上进行数据恢复,提高恢复效率和成功率。
在上述任一实施例的基础上,在所述按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复的过程中,还包括:按照所述组件迁移顺序中迁移级别的档位升序顺序,将各目标组件的可视化进度条放置在与所述迁移级别对应的同心圆上进行前端显示。
具体地,在步骤502中,设置在目的集群系统中的跨集群应用的恢复装置在接收到容器应用资源信息可以调用表2中迁移级别字段所对应的数据为每个容器应用相应构建数量与目标组件数量n相同的同心圆,内圈的同心圆所对应的迁移级别的档位值较低,其组件在恢复过程中具有较高的优先级。同理,外圈的同心圆所对应的迁移级别的档位值较大,其组件在恢复过程中具有较低的优先级。同时在每一同心圆相应设置可视化进度条,以对其所对应的组件的恢复状态进行实时可视化显示。
本发明实施例通过调用容器应用资源信息中以列表形式存储的多个组件资源信息,以利用其组件迁移级别的升序顺序由内至外构建出n个同心圆,以在目的集群系统中以组件为单位顺序恢复时,将各组件恢复的进度和状态通知到相应的同心圆上,以进行可视化。能够实时了解组件恢复的进展情况,大大减少预期效果和实际效果之间的误差,提高恢复成功率。
图6是本发明提供的容器应用恢复过程的可视化示意图。如图6所示,在上述任一实施例的基础上,可视化进度条通过颜色和/或字符表征目标组件的恢复进度。
具体地,设置在目的集群系统中的跨集群应用的恢复装置将迁移优先级高的放到内圈的同心圆中,迁移优先级低的放到外圈的同心圆,即L1在最内圈。在每一同心圆上为对应迁移级别的组件设置相应的可视化进度条,并在可视化进度条中利用字符对组件名称或者组件标识信息进行展示,以区别组件和组件之间的差异。
当前迁移完某个组件后,组件变为绿色(图6中以灰度值变化进行示意),如果迁移过程中有失败的组件也会进行相应颜色的变化。当多个同心圆中的所有组件都变为绿色,则代表容器应用迁移完成。
本发明实施例采用同心圆的方法能避免组件间调用关系错综复杂的线条的干扰,在此基础上结合颜色和/或字符辅助容器应用的拓扑展示,能够更加方便的监控迁移过程和进度。
图7是本发明提供的跨集群应用的迁移装置的结构示意图。如图7所示,在上述任一实施例的基础上,本发明实施例提供的跨集群应用的迁移装置,设置于向目的集群系统进行应用迁移的源集群系统,所述装置包括组件分类模块710、应用分类模块720和应用迁移模块730,其中:
组件分类模块710,用于利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息。其中,所述组件资源信息的数量与所述服务数据的类别数量相同。
应用分类模块720,用于根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息。其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序。
应用迁移模块730,用于将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统。
其中,n为大于1的正整数。
具体地,组件分类模块710、应用分类模块720和应用迁移模块730顺次电连接。
组件分类模块710以服务数据(Service)为关联点自动将源集群系统中分散的集群管理资源识别为一个个组件,并以组件为单位,将源集群系统中需要迁移的组件以及组件中的集群资源信息汇总成组件资源信息。
应用分类模块720从组件分类模块710得到的所有组件资源信息挖掘出任意两个组件之间的组件依赖关系,并利用组件依赖关系作为分类依据,形成由一个或者多个具有组件依赖关系的目标组件组成的容器应用,并将同属于一个容器应用下的所有目标组件的组件资源信息整合成容器应用资源信息。
应用迁移模块730将容器应用资源信息以yaml文件形式存放到文件目录中。一个一级目录代表一个容器应用,每一容器应用对应的一级目录里面的二级目录代表一个组件,二级目录下存放着按照顺序排列好的目标组件对应的组件资源信息的yaml文件,按照其排列好的组件迁移顺序,通过网络将对应的yaml文件依次传输至目的集群系统进行有序迁移。
可选地,应用分类模块720包括依赖挖掘单元、拓扑排序单元和应用分类单元,其中:
依赖挖掘单元,用于通过所述组件资源信息,以及所述源集群系统的域名服务日志,确定任意两个组件之间的组件依赖关系。
拓扑排序单元,用于以组件作为顶点、所述组件依赖关系作为边,对所述组件资源信息进行拓扑排序,得到组件拓扑结构。
应用分类单元,用于根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,并将各目标组件的组件资源信息按照所述组件迁移顺序排列生成所述容器应用资源信息。
其中,所述依赖组件信息包括依赖于任一组件的组件名称。
可选地,应用分类单元包括初始迁移确定子单元、迁移级别确定子单元和组件迁移排序子单元,其中:
始迁移确定子单元,用于将所述依赖组件信息为空的组件设置为初始迁移组件,所述初始迁移组件的迁移级别被设置为第一档位。
迁移级别确定子单元,用于将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别。
组件迁移排序子单元,用于按照各组件的迁移级别的档位进行升序排序,得到具有所述组件迁移顺序的所述目标组件。
可选地,迁移级别确定子单元,还用于在根据同一迁移级别的组件的依赖组件信息确定同级别中组件存在依赖关系的情况下,使作为被依赖方的组件保持当前的迁移级别,还使作为依赖方的组件的迁移级别升高一个档位。
可选地,该装置还包括应用迁移排序模块和应用迁移模块,其中:
应用迁移排序模块,用于根据所述容器应用资源信息,确定应用迁移顺序。
应用迁移模块,用于按照所述应用迁移顺序,将目标容器应用资源信息中具有相同迁移级别的组件资源信息一并传输至所述目的集群系统。
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。
可选地,应用迁移排序模块包括拓扑复杂度确定单元和第一应用迁移排序单元,其中:
拓扑复杂度确定单元,用于根据每一所述容器应用资源信息所包含的n个目标组件的拓扑结构,确定对应的所述容器应用资源信息的拓扑复杂度。
第一应用迁移排序单元,用于利用所有容器应用资源信息的拓扑复杂度,确定所述应用迁移顺序。
可选地,应用迁移排序模块包括任务需求确定单元和第二应用迁移排序单元,其中:
任务需求确定单元,用于获取所述目的集群系统中的任一用户终端所输入的任务需求信息。
第二应用迁移排序单元,用于根据所述任务需求信息,确定各容器应用的权重,以供根据各容器应用的权重确定所述应用迁移顺序。
可选地,所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息以列表形式输出。
其中,每一目标组件对应的列表字段包括组件标识信息、容器应用标识信息、组件资源信息和迁移级别;所述容器应用标识信息是根据所述应用迁移顺序确定的。
可选地,组件分类模块710包括服务关联单元、Pod资源匹配单元和Pod资源关联单元,其中:
服务关联单元,用于以所述源集群系统的命名空间内的Service作为关联点,从所述源集群系统的集群管理资源得到不同类别的服务数据。
Pod资源匹配单元,用于利用目标服务数据,查询出与所述目标服务数据匹配的目标Pod资源。
Pod资源关联单元,用于将与所述目标Pod资源关联的集群管理资源作为所述组件资源信息。
其中,所述目标服务数据为任一种类别的服务数据;任一Pod资源是所述源集群系统的管理引擎中的最小调度单元所对应的资源。
本发明实施例提供的跨集群应用的迁移装置,用于执行本发明上述跨集群应用的迁移方法,其实施方式与本发明提供的跨集群应用的迁移方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例在源集群系统以服务数据作为关联点对集群管理资源进行关联和分类后,利用分类出的组件资源信息判断组件之间是否具有依赖关系,并将具有组件依赖关系的目标组件的组件资源信息以对应的组件迁移顺序整合到容器应用资源信息中,以供容器应用资源信息通过网络传输给目的集群系统的过程中使其内部的组件资源信息以指定的先后顺序进行有序迁移。能够自动将集群中零散的资源归纳为整体的容器应用,并在以容器应用为单位进行迁移的过程中根据容器应用内部组件依赖关系使得组件按序迁移,以避免发生网络带宽的占用冲突,提高跨集群应用迁移的成功率和效率。
图8是本发明提供的跨集群应用的恢复装置的结构示意图。如图8所示,在上述任一实施例的基础上,本发明实施例提供的跨集群应用的恢复装置,设置于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述装置包括应用接收模块810和组件恢复模块820,其中:
应用接收模块810,用于接收所述源集群系统传输的容器应用资源信息。其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序。
组件恢复模块820,用于按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复。
其中,n为大于1的正整数。
具体地,应用接收模块810和组件恢复模块820顺次电连接。
应用接收模块810依次接收源集群系统传输通过执行如上所述的跨集群应用的迁移方法所得到的容器应用资源信息。
其中,容器应用由一个或者多个具有组件依赖关系的目标组件组成,故可将同属于一个容器应用下的所有目标组件的组件资源信息整合成容器应用资源信息。
组件恢复模块820在接收任一容器应用资源信息的过程中,将容器应用资源信息所对应的yaml文件形式的文件目录保存至本地。一个一级目录代表一个容器应用,每一容器应用对应的一级目录里面的二级目录代表一个组件,通过网络将按照组件迁移顺序对应接收的yaml文件依次传输至相应的二级目录下进行组件恢复,以使得一级目录下存放着按照顺序排列好的目标组件对应的组件资源信息的yaml文件。
可选地,应用接收模块810包括应用接收单元和组件有序接收单元,其中:
应用接收单元,用于按照应用迁移顺序,接收目标容器应用资源信息。
组件有序接收单元,用于将所述目标容器应用资源信息中具有相同迁移级别的组件资源信息同步进行组件恢复。
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息;所述应用迁移顺序为所述源集群系统向目的集群系统迁移容器应用资源信息的顺序。
可选地,所述组件资源信息包括资源元数据和业务数据,任一次组件恢复时执行如下步骤:
在确定接收到目标组件资源信息中的资源元数据的情况下,将所述业务数据传输到与所述目标组件资源信息对应的组件目录下;
在监听到与所述目标组件资源信息具有相同迁移级别的组件资源信息的资源元数据和业务数据均传输至相应组件目录后,对迁移级别为所述目标组件资源信息的迁移级别的下一级的组件资源信息进行组件恢复。
可选地,该装置还包括可视化模块,其中:
可视化模块,用于按照所述组件迁移顺序中迁移级别的档位升序顺序,将各目标组件的可视化进度条放置在与所述迁移级别对应的同心圆上进行前端显示。
可选地,所述可视化进度条通过颜色和/或字符表征目标组件的恢复进度。
本发明实施例提供的跨集群应用的恢复装置,用于执行本发明上述跨集群应用的恢复方法,其实施方式与本发明提供的跨集群应用的恢复方法的实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例在源集群系统将容器应用资源信息中的组件资源信息有序传输给目的集群系统的过程中,使作为接收方的目的集群系统也相应按照接收组件资源信息的先后顺序进行有序恢复。实现在组件按序迁移的基础上,能够无需人为参与直接按照组件之间的依赖关系进行有序恢复,避免被依赖组件的恢复出现异常时影响依赖组件的恢复,提高跨集群应用恢复的成功率和效率。
图9是本发明提供的集群系统的结构示意图。如图9所示,在上述任一实施例的基础上,本发明实施例提供的集群系统,包括一组物理机器或虚拟机器组成的服务器集群。
其中,任一物理机器或虚拟机器分别设置有如上所述的跨集群应用的迁移装置910,以及如上所述的跨集群应用的恢复装置920。
具体地,无论是作为发送方的源集群系统,还是作为接收方的目的集群系统,任一集群系统均由多个通信连接的服务器构成,该服务器可以为物理机器i,或者是依托于物理机器所构造的虚拟机器j。本发明实施例对于集群内部的节点构成不作具体限定。
示例性地,集群内部的服务器之间可以直接进行传输和迁移,而将一部分服务器作为对外披露的迁移节点,其内部仅部署有跨集群应用的迁移装置910,以向其他集群系统传输其自身的资源。
同理,也可再选出另一部分作为对外披露的恢复节点,其内部仅部署有跨集群应用的恢复装置920,以接收其他集群系统传输其自身的资源并开展恢复工作。
示例性地,集群内部的每一个服务器均部署有跨集群应用的迁移装置910和恢复装置920,可以直接对外进行迁移和恢复。
本发明实施例在源集群系统以服务数据作为关联点对集群管理资源进行关联和分类后,利用分类出的组件资源信息判断组件之间是否具有依赖关系,并将具有组件依赖关系的目标组件的组件资源信息以对应的组件迁移顺序整合到容器应用资源信息中,以供容器应用资源信息通过网络传输给目的集群系统的过程中使其内部的组件资源信息以指定的先后顺序进行有序迁移。能够自动将集群中零散的资源归纳为整体的容器应用,并在以容器应用为单位进行迁移的过程中根据容器应用内部组件依赖关系使得组件按序迁移,以避免发生网络带宽的占用冲突,提高跨集群应用迁移的成功率和效率。
在上述任一实施例的基础上,所述集群系统通过Kubernetes部署容器应用及其生命周期管理。
具体地,集群系统采用Kubernetes(通常简称为K8S,一种开源的容器集群管理系统和容器应用编排引擎),自动化部署容器应用及其生命周期管理。
示例性地,图10是本发明提供的集群系统之间的交互流程示意图。如图10所示,给出一种作为发送方的源集群系统,以及作为接收方的目的集群系统之间进行交互的具体实施方式:
源集群系统中部署有跨集群应用的迁移装置1010,其包括组件分类模块1011、应用分类模块1012和应用迁移模块1013,其中:
组件分类模块1011负责从源集群系统中调用kube-apiserver获取组件中kubernetes资源的信息并保存到本地,对查询到的Kubernetes资源并进行分类,将分类的组件资源信息以列表的形式传递给应用分类模块1012,以供应用分类模块1012根据组件列表以及调用关系进行应用分类,并将容器应用资源信息以列表的形式传递给应用迁移模块1013。最后,应用迁移模块1013以应用为单位进行迁移,即将应用信息打包后通过网络传输给目的集群系统。
目的集群系统中部署有跨集群应用的恢复装置1020,其包括应用接收模块1021、组件恢复模块1022和可视化模块1023,其中:
应用接收模块1021接收到应用迁移模块1013发出的容器应用资源信息后,在组件恢复模块1022中以组件为单位顺序创建Kubernetes资源以恢复容器应用,通过定时调用kube-apiserver监听该资源是否恢复完成。恢复成功后通知应用迁移模块1013,然后应用迁移模块1013再发送下一个优先级的组件。一个容器应用恢复后,再发送下一个容器应用组件,依次类推,直到所有组件都恢复完成。
同时,可视化模块1023为每个容器应用构建多个同心圆,内圈的同心圆内高优先级的组件,外圈为低优先级的组件。以使得组件恢复模块1022还可将恢复的进度和状态通知到通知可视化模块1023,来更新每个组件的恢复状态。
本发明实施例利用Kubernetes对集群系统进行持续开发、集成和部署,并对其生命周期进行管理,能够提供可靠和频繁的容器映像构建和部署。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行跨集群应用的迁移方法,应用于向目的集群系统进行应用迁移的源集群系统,该方法包括:利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;其中,n为大于1的正整数。还可以执行跨集群应用的恢复方法,应用于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,该方法包括:接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;其中,n为大于1的正整数。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的跨集群应用的迁移方法,应用于向目的集群系统进行应用迁移的源集群系统,该方法包括:利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;其中,n为大于1的正整数。还可以上述各方法所提供的执行跨集群应用的恢复方法,应用于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,该方法包括:接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;其中,n为大于1的正整数。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的跨集群应用的迁移方法,应用于向目的集群系统进行应用迁移的源集群系统,该方法包括:利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;其中,n为大于1的正整数。还可以上述各方法所提供的执行跨集群应用的恢复方法,应用于接收源集群系统执行如上任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,该方法包括:接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;其中,n为大于1的正整数。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (19)

1.一种跨集群应用的迁移方法,其特征在于,应用于向目的集群系统进行应用迁移的源集群系统,所述方法包括:
利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;
根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;
其中,n为大于1的正整数;
在所述根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息之后,还包括:
根据所述容器应用资源信息,确定应用迁移顺序;
按照所述应用迁移顺序,将目标容器应用资源信息中具有相同迁移级别的组件资源信息一并传输至所述目的集群系统;
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。
2.根据权利要求1所述的跨集群应用的迁移方法,其特征在于,所述根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息,包括:
通过所述组件资源信息,以及所述源集群系统的域名服务日志,确定任意两个组件之间的组件依赖关系;
以组件作为顶点、所述组件依赖关系作为边,对所述组件资源信息进行拓扑排序,得到组件拓扑结构;
根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,并将各目标组件的组件资源信息按照所述组件迁移顺序排列生成所述容器应用资源信息;
其中,所述依赖组件信息包括依赖于任一组件的组件名称。
3.根据权利要求2所述的跨集群应用的迁移方法,其特征在于,所述根据所述组件拓扑结构,以及每一组件的依赖组件信息,确定所述组件迁移顺序,包括:
将所述依赖组件信息为空的组件设置为初始迁移组件,所述初始迁移组件的迁移级别被设置为第一档位;
将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别;
按照各组件的迁移级别的档位进行升序排序,得到具有所述组件迁移顺序的所述目标组件。
4.根据权利要求3所述的跨集群应用的迁移方法,其特征在于,在所述将所述依赖组件信息为所述初始迁移组件的组件设置为次选迁移组件,所述次选迁移组件的迁移级别被设置为第二档位,直至在所述拓扑结构中完成向上查找,确定各组件的迁移级别之后,还包括:
在根据同一迁移级别的组件的依赖组件信息确定同级别中组件存在依赖关系的情况下,使作为被依赖方的组件保持当前的迁移级别,还使作为依赖方的组件的迁移级别升高一个档位。
5.根据权利要求1所述的跨集群应用的迁移方法,其特征在于,所述根据所述容器应用资源信息,确定应用迁移顺序,包括:
根据每一所述容器应用资源信息所包含的n个目标组件的拓扑结构,确定对应的所述容器应用资源信息的拓扑复杂度;
利用所有容器应用资源信息的拓扑复杂度,确定所述应用迁移顺序。
6.根据权利要求1所述的跨集群应用的迁移方法,其特征在于,所述根据所述容器应用资源信息,确定应用迁移顺序,包括:
获取所述目的集群系统中的任一用户终端所输入的任务需求信息;
根据所述任务需求信息,确定各容器应用的权重,以供根据各容器应用的权重确定所述应用迁移顺序。
7.根据权利要求1所述的跨集群应用的迁移方法,其特征在于,所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息以列表形式输出;
其中,每一目标组件对应的列表字段包括组件标识信息、容器应用标识信息、组件资源信息和迁移级别;所述容器应用标识信息是根据所述应用迁移顺序确定的。
8.根据权利要求1所述的跨集群应用的迁移方法,其特征在于,所述利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息,包括:
以所述源集群系统的命名空间内的Service作为关联点,从所述源集群系统的集群管理资源得到不同类别的服务数据;
利用目标服务数据,查询出与所述目标服务数据匹配的目标Pod资源;
将与所述目标Pod资源关联的集群管理资源作为所述组件资源信息;
其中,所述目标服务数据为任一种类别的服务数据;任一Pod资源是所述源集群系统的管理引擎中的最小调度单元所对应的资源。
9.一种跨集群应用的恢复方法,其特征在于,应用于接收源集群系统执行如权利要求1-8任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述方法包括:
接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;
其中,n为大于1的正整数。
10.根据权利要求9所述的跨集群应用的恢复方法,其特征在于,所述接收所述源集群系统传输的容器应用资源信息,包括:
按照应用迁移顺序,接收目标容器应用资源信息;
将所述目标容器应用资源信息中具有相同迁移级别的组件资源信息同步进行组件恢复;
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息;所述应用迁移顺序为所述源集群系统向目的集群系统迁移容器应用资源信息的顺序。
11.根据权利要求9所述的跨集群应用的恢复方法,其特征在于,所述组件资源信息包括资源元数据和业务数据,任一次组件恢复时执行如下步骤:
在确定接收到目标组件资源信息中的资源元数据的情况下,将所述业务数据传输到与所述目标组件资源信息对应的组件目录下;
在监听到与所述目标组件资源信息具有相同迁移级别的组件资源信息的资源元数据和业务数据均传输至相应组件目录后,对迁移级别为所述目标组件资源信息的迁移级别的下一级的组件资源信息进行组件恢复。
12.根据权利要求9所述的跨集群应用的恢复方法,其特征在于,在所述按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复的过程中,还包括:
按照所述组件迁移顺序中迁移级别的档位升序顺序,将各目标组件的可视化进度条放置在与所述迁移级别对应的同心圆上进行前端显示。
13.根据权利要求12所述的跨集群应用的恢复方法,其特征在于,所述可视化进度条通过颜色和/或字符表征目标组件的恢复进度。
14.一种跨集群应用的迁移装置,其特征在于,设置于向目的集群系统进行应用迁移的源集群系统,所述装置包括:
组件分类模块,用于利用服务数据对所述源集群系统的集群管理资源进行分类,得到组件资源信息;其中,所述组件资源信息的数量与所述服务数据的类别数量相同;
应用分类模块,用于根据所述组件资源信息,以及任意两组所述组件资源信息之间的组件依赖关系进行分类,得到容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
应用迁移模块,用于将任一所述容器应用资源信息中所包含的n个目标组件对应的组件资源信息,按照所述组件迁移顺序,依次传输至所述目的集群系统;
其中,n为大于1的正整数;
所述装置还包括:应用迁移排序模块和应用迁移模块;
所述应用迁移排序模块,用于根据所述容器应用资源信息,确定应用迁移顺序;
所述应用迁移模块,用于按照所述应用迁移顺序,将目标容器应用资源信息中具有相同迁移级别的组件资源信息一并传输至所述目的集群系统;
其中,所述目标容器应用资源信息为根据所述应用迁移顺序所确定的当前迁移的容器应用资源信息。
15.一种跨集群应用的恢复装置,其特征在于,设置于接收源集群系统执行如权利要求1-8任一所述的跨集群应用的迁移方法所迁移出的应用的目的集群系统,所述装置包括:
应用接收模块,用于接收所述源集群系统传输的容器应用资源信息;其中,所述容器应用资源信息包括任一容器应用内所包含的n个目标组件的组件迁移顺序;
组件恢复模块,用于按照所述组件迁移顺序,将所述容器应用资源信息中的n个目标组件对应的组件资源信息,逐次传输到相应的组件目录下进行组件恢复;
其中,n为大于1的正整数。
16.一种集群系统,其特征在于,包括一组物理机器或虚拟机器组成的服务器集群;
其中,任一物理机器或虚拟机器分别设置有如权利要求14所述的跨集群应用的迁移装置,以及如权利要求15所述的跨集群应用的恢复装置。
17.根据权利要求16所述的集群系统,其特征在于,所述集群系统通过Kubernetes部署容器应用及其生命周期管理。
18.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述跨集群应用的迁移方法,以及如权利要求9至13任一项所述跨集群应用的恢复方法。
19.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述跨集群应用的迁移方法,以及如权利要求9至13任一项所述跨集群应用的恢复方法。
CN202311210260.7A 2023-09-19 2023-09-19 跨集群应用的迁移方法、恢复方法、装置及集群系统 Active CN116954870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311210260.7A CN116954870B (zh) 2023-09-19 2023-09-19 跨集群应用的迁移方法、恢复方法、装置及集群系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311210260.7A CN116954870B (zh) 2023-09-19 2023-09-19 跨集群应用的迁移方法、恢复方法、装置及集群系统

Publications (2)

Publication Number Publication Date
CN116954870A CN116954870A (zh) 2023-10-27
CN116954870B true CN116954870B (zh) 2024-02-02

Family

ID=88462368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311210260.7A Active CN116954870B (zh) 2023-09-19 2023-09-19 跨集群应用的迁移方法、恢复方法、装置及集群系统

Country Status (1)

Country Link
CN (1) CN116954870B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177107A1 (zh) * 2017-03-29 2018-10-04 腾讯科技(深圳)有限公司 数据迁移方法、迁移服务器及存储介质
CN111045780A (zh) * 2019-11-07 2020-04-21 国云科技股份有限公司 一种适用于跨kubernetes集群的应用迁移方法
CN115480865A (zh) * 2021-05-31 2022-12-16 中移雄安信息通信科技有限公司 云原生应用跨集群迁移方法、装置及存储介质
CN116594734A (zh) * 2023-05-09 2023-08-15 中国工商银行股份有限公司 容器迁移方法、装置、存储介质及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018177107A1 (zh) * 2017-03-29 2018-10-04 腾讯科技(深圳)有限公司 数据迁移方法、迁移服务器及存储介质
CN111045780A (zh) * 2019-11-07 2020-04-21 国云科技股份有限公司 一种适用于跨kubernetes集群的应用迁移方法
CN115480865A (zh) * 2021-05-31 2022-12-16 中移雄安信息通信科技有限公司 云原生应用跨集群迁移方法、装置及存储介质
CN116594734A (zh) * 2023-05-09 2023-08-15 中国工商银行股份有限公司 容器迁移方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN116954870A (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US11894972B2 (en) System and method for data replication using a single master failover protocol
US9411873B2 (en) System and method for splitting a replicated data partition
CN108833197B (zh) 一种基于云的主动探测方法和探测平台
US9489434B1 (en) System and method for replication log branching avoidance using post-failover rejoin
US11201936B2 (en) Input and output schema mappings
US9330161B2 (en) Creating global aggregated namespaces for storage management
JP2019200580A (ja) 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード
CN107430603A (zh) 大规模并行处理数据库的系统和方法
CN105653425A (zh) 基于复杂事件处理引擎的监控系统
US11411830B2 (en) Systems and methods for determining entry points for mapping a network
US11343355B1 (en) Automated mapping of multi-tier applications in a distributed system
US20120159021A1 (en) Storage topology manager
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN113867600A (zh) 处理流式数据的开发方法、装置和计算机设备
Simić et al. Towards edge computing as a service: Dynamic formation of the micro data-centers
CN114448983A (zh) 基于ZooKeeper的分布式数据交换方法
CN113127526A (zh) 一种基于Kubernetes的分布式数据存储和检索系统
CN116954870B (zh) 跨集群应用的迁移方法、恢复方法、装置及集群系统
CN105847364A (zh) 基于统一域名的公有云对象存储方法及系统
CN104657240B (zh) 多内核操作系统的失效控制方法及装置
CN112395269B (zh) MySQL高可用组的搭建方法及装置
CN112804313B (zh) 基于跨域边缘节点的数据同步方法、装置、设备及介质
EP3424182B1 (en) Neighbor monitoring in a hyperscaled environment
CN114443302A (zh) 容器集群扩容方法、系统、终端及存储介质
CN115344361A (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
GR01 Patent grant
GR01 Patent grant