容器迁移方法、装置、存储介质及电子设备与流程

未命名 08-18 阅读:119 评论:0


1.本技术涉及云计算领域,具体而言,涉及一种容器迁移方法、装置、存储介质及电子设备。


背景技术:

2.随着云计算领域的技术高速发展,部分有状态应用程序已实现全面容器化,比如mysql(relational datebase management system,关系型数据库管理系统)、elasticsearch(分布式全文搜索引擎)等,由于有状态应用程序的运行方式需要保持网址固定、存储内容固定,因此需要将容器固定在一台宿主机上运行。在宿主机出现故障的情况下,相关技术中,通过人工搭建一台新的物理机作为宿主机,然后将故障宿主机上的存储内容、网址信息等迁移至新宿主机,再将新宿主机中的容器重新启动以提供服务。
3.然而,相关技术中,人工搭建一台新的物理机作为宿主机涉及较多手动处理,比如搭建物理机、迁移存储内容、网址等,在容器需要大规模故障迁移时,对容器进行迁移需要大量人工、时间,耗费较多运维成本,并且在容器迁移期间应用程序提供的服务是不可用的,故障迁移的时间越久,服务不可用的时间也越久,影响应用程序处理业务的效率。
4.针对相关技术中人工进行容器迁移的效率低的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术的主要目的在于提供一种容器迁移方法、装置、存储介质及电子设备,以解决相关技术中人工进行容器迁移的效率低的问题。
6.为了实现上述目的,根据本技术的一个方面,提供了一种容器迁移方法。该方法包括:按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点。
7.可选地,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障包括:获取每个工作节点的内存,并判断内存是否大于等于内存阈值;在内存大于等于内存阈值的情况下,确定工作节点出现故障。
8.可选地,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障还包括:向每个工作节点写入检测文件,判断工作节点中的检测文件是否写入成功;在检测文件写入失败的情况下,确定工作节点出现故障;在检测文件写入成功的情况下,对工作节点执行对检测文件的读取操作;在检测文件读取失败的情况下,确定工作节点出现故障。
9.可选地,依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点包括:在目标区域创建与故障节点包含相同节点信息的目标工作节点,其中,故障节点的节点信息至少包括以下之一:故障节点部署的容器数量、故障节点的内存和故障节点的中央处理器类型;将目标工作节点与故障节点中部署的每种容器所属的目标应用程序建立通信连接。
10.可选地,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序包括:确定每个目标应用程序中包含的容器数量;将所有目标应用程序按照容器数量从少到多的顺序进行排序,得到目标序列;将目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序,得到更新后的目标序列;按照故障节点中每个容器所属目标应用程序在目标序列中的顺序对容器进行排序,得到容器迁移顺序。
11.可选地,将目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序包括:确定每个目标应用程序的优先级;按照优先级从高到低的顺序对容器数量相同的多个目标应用程序进行排序,得到更新后的目标序列。
12.可选地,基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点包括:将故障节点中部署的每个容器的网址和存储信息复制到目标工作节点;在网址和存储信息复制成功的情况下,按照容器迁移顺序将故障节点中部署的每个容器迁移至目标工作节点。
13.为了实现上述目的,根据本技术的另一方面,提供了一种容器迁移装置。该装置包括:检测单元,用于按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;第一确定单元,用于在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;创建单元,用于依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;第二确定单元,用于确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;迁移单元,用于基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点。
14.通过本技术,采用以下步骤:按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点,解决了相关技术中人工进行容器迁移的效率低的问题。通过对故障节点所在的目标区域创建目标工作节点,将故障节点中的容器按照容器迁移顺序迁移至目标工作节点,进而达到了提高容器迁移效率的效果。
附图说明
15.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
16.图1是根据本技术实施例提供的容器迁移方法的流程图;
17.图2是根据本技术实施例提供的目标管理工具的结构图;
18.图3是根据本技术实施例提供的可选的容器迁移方法的流程图;
19.图4是根据本技术实施例提供的容器迁移装置的示意图;
20.图5是根据本技术实施例提供的电子设备的示意图。
具体实施方式
21.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
22.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
23.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
25.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例提供的容器迁移方法的流程图,如图1所示,该方法包括如下步骤:
26.步骤s101,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器。
27.具体地,预设时间周期可以设置为一天,目标管理工具可以为k8s(kubernetes,可移植容器的编排管理工具)。工作节点是应用程序中的容器运行依赖的底层资源,目标管理工具中包含多个工作节点,每个工作节点部署有多种类型的容器。容器是封装了所有运行应用程序所必须的相关细节的虚拟装置,比如应用依赖的操作系统。本实施例中的容器可以为有状态容器,有状态容器是应用该有状态容器时处理的历史请求或操作,对现在或未来的操作存在影响,需要记录历史数据的容器,例如mysql容器。通过对目标管理工具中的每个工作节点按照预设时间周期进行循环探测,观测工作节点的运行指标,例如内存,通过判断内存会不会出现内存溢出的情况来确定工作节点是否出现故障。
28.需要说明的是,在工作节点出现故障时对故障节点中的容器进行迁移需要向kubernetes中的管理节点发送容器调度请求,管理节点再根据容器的资源需求将故障节点中的容器调度至目标工作节点。目标工作节点提供容器的运行环境。
29.需要说明的是,图2是根据本技术实施例提供的目标管理工具的结构图,如图2所
示,目标管理工具是k8s,是为容器服务而生的一个可移植容器的编排管理工具。k8s以集群模式部署,由master节点、node节点、etcd节点组成。master节点也即管理节点,管理和控制整个集群。node节点也即工作节点,每个node节点都会被master节点分配一些工作负载,也即容器,当某个node节点宕机时,该节点上的工作负载会被master节点自动转移至其他节点。etcd节点也即存储节点是一个高可用分布式键值数据库,用于存储目标管理工具的元数据。
30.步骤s102,在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息。
31.具体地,在出现故障节点的情况下,获取故障节点的节点信息,例如节点所在可用区(az)、规格(中央处理器、内存)、故障节点中的容器数量、每个容器所属目标应用程序,例如图2中,故障节点在可用区a1,节点规格16c32g,中央处理器类型为16c,内存大小为32g。容器数量为3,每个容器,分别属于应用a、应用b、应用c,以及每个容器的网址及存储信息。
32.步骤s103,依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点。
33.具体地,目标区域也即目标管理工具中的可用区(az),例如图2中故障节点所在的目标区域即为a1区域,在确定故障节点的节点信息后,依据节点信息在故障节点的同可用区a1创建一台同规格(16c32g)的目标工作节点。
34.步骤s104,确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序。
35.具体地,每个目标应用程序包含有一种容器,故障节点中部署的多个容器属于不同的目标应用程序,每个目标应用程序对外提供服务时需要通过工作节点中部署的容器实现业务内容。因此在工作节点出现故障时,对故障节点中的容器迁移时参考目标应用程序的优先级和目标应用程序包含的容器数量来确定容器迁移顺序。例如故障节点中的容器进行迁移时会先按照目标应用程序包含的容器数量来判定迁移顺序,容器数量相同的情况下再按照目标应用程序的优先级来决定迁移顺序。
36.步骤s105,基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点。
37.具体地,基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点时,需要先将故障节点上容器的网址、存储信息复制到目标工作节点后。再按照容器迁移顺序开始迁移容器。
38.本技术实施例提供的容器迁移方法,通过按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点,解决了相关技术中人工进行容器迁移的效率低的问题。通过对故障节点所在的目标区域创建目标工作节点,将故障节点中的容器按照容器迁移顺序迁移至明白工作节点,进而达到了提高容器迁移效率的效果。
39.工作节点出现故障的原因可能是工作节点的内存超过内存阈值引起的,可选地,在本技术实施例提供的容器迁移方法中,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障包括:获取每个工作节点的内存,并判断内存是否大于等于内存阈值;在内存大于等于内存阈值的情况下,确定工作节点出现故障。
40.具体地,随着工作节点处理的业务越来越多可能导致工作节点的内存出现超出工作阈值的情况,若工作节点的内存超过内存阈值则会影响业务的处理效率,因而每隔预设时间周期检测目标管理工具中每个工作节点的内存是否大于等于内存阈值,若某个工作节点的内存大于等于内存阈值,则确定该工作节点出现故障。通过检测工作节点的内存是否超过内存阈值来确定故障节点,及时对故障节点中的容器进行迁移,避免目标应用程序的业务受到影响。
41.工作节点出现故障的原因还可能是磁盘损坏,可选地,在本技术实施例提供的容器迁移方法中,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障还包括:向每个工作节点写入检测文件,判断工作节点中的检测文件是否写入成功;在检测文件写入失败的情况下,确定工作节点出现故障;在检测文件写入成功的情况下,对工作节点执行对检测文件的读取操作;在检测文件读取失败的情况下,确定工作节点出现故障。
42.具体地,工作节点的磁盘存在损坏的情况,磁盘损坏会导致工作节点对数据的读取或写入操作失败,因此每隔预设时间周期向每个工作节点写入检测文件,若检测到某一工作节点的检测文件写入失败,则确定该工作节点出现故障,若工作节点的检测文件写入成功,还需要检测写入到工作节点中的检测文件能否正常读取,若读取检测文件失败,则确定该工作节点出现故障。通过判断工作节点中的检测文件能否正常写入和读取来确定工作节点是否出现故障,避免故障节点发现不及时影响业务处理效率。
43.目标工作节点中的节点信息需要与故障节点的节点信息保持相同,可选地,在本技术实施例提供的容器迁移方法中,依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点包括:在目标区域创建与故障节点包含相同节点信息的目标工作节点,其中,故障节点的节点信息至少包括以下之一:故障节点部署的容器数量、故障节点的内存和故障节点的中央处理器类型;将目标工作节点与故障节点中部署的每种容器所属的目标应用程序建立通信连接。
44.例如图2中故障节点所在的目标区域为a1区域,故障节点的节点信息中容器数量为3,内存为32g,中央处理器类型为16c,依据节点信息在故障节点的同可用区a1创建一台同规格(16c32g)的目标工作节点,目标工作节点中设置可部署的容器数量为3,同时将目标工作节点与故障节点中部署的每种容器所属的程序a、程序b和程序c建立通信连接,以方便目标应用程序调用目标工作节点中的容器。
45.容器迁移顺序由目标应用程序中包含的容器数量和目标应用程序的优先级确定,可选地,在本技术实施例提供的容器迁移方法中,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序包括:确定每个目标应用程序中包含的容器数量;将所有目标应用程序按照容器数量从少到多的顺序进行排序,得到目标序列;将目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序,得到更新后的目标序列;按照故障节点中每个容器所属目标应用程序在目标序列中的顺序对容器进行排序,得到容器迁移顺序。
46.具体地,目标应用程序的有状态容器数量是按照目标应用程序的业务需要创建的,例如应用a有4个容器,应用b、应用c各有2个容器,每个目标应用程序的容器共同协作提供服务,图2中故障节点上部署有1个a应用容器,1个b应用容器,1个c应用容器,目标应用程序按照容器数量从少到多的顺序是:应用b(2个)=应用c(2个)《应用a(4个),则目标序列为先迁移应用b容器或者c容器,再迁移应用a容器。应用b和应用c的迁移顺序根据目标应用程序的优先级确定,确定后得到更新后的目标序列,容器迁移顺序也即故障节点中每个容器所属目标应用程序在目标序列中的顺序。通过目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序,保障容器数量少的目标应用程序在进行容器迁移时受到的影响较小。
47.可选地,在本技术实施例提供的容器迁移方法中,将目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序包括:确定每个目标应用程序的优先级;按照优先级从高到低的顺序对容器数量相同的多个目标应用程序进行排序,得到更新后的目标序列。
48.具体地,目标应用程序的优先级可以为人为设备的应用程序的重要程度,例如目标应用程序的使用率越高,使用用户越多则设置该目标应用程序的优先级越高。应用a的优先级》应用b的优先级》应用c的优先级,目标序列中目标应用程序的顺序为先迁移应用b或者c,再迁移应用a,应用b(优先级:4)》应用c(优先级:3),最终确定更新后的目标序列:先迁移应用b容器、再迁移应用c容器、最后迁移应用a容器。通过按照目标应用程序的优先级决定容器数量相同的多个目标应用程序的迁移顺序,保障了优先级高的目标应用程序在进行容器迁移时受到的影响较小。减少因手工带来的业务中断时间,充分保障各个有状态应用的业务可用性。
49.迁移容器时需要先将容器的网址和存储信息复制到目标工作节点,可选地,在本技术实施例提供的容器迁移方法中,基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点包括:将故障节点中部署的每个容器的网址和存储信息复制到目标工作节点;在网址和存储信息复制成功的情况下,按照容器迁移顺序将故障节点中部署的每个容器迁移至目标工作节点。
50.具体地,容器网址、存储信息和工作节点是强绑定关系,所以在迁移容器时也要同时迁移。因此先将故障节点中的网址、存储信息复制到目标工作节点。再根据容器迁移顺序将故障节点中的容器逐个迁移至目标工作节点。通过对故障节点中的有状态应用容器进行自主、快速迁移,大大减少服务中断时间、减少运维成本、提升有状态服务高可用性,节省目标管理工具的运维成本,提升运维效率。
51.根据本技术的另一个实施例,还提供了一种可选的容器迁移方法,图3是根据本技术实施例提供的可选的容器迁移方法的流程图。如图3所示,该方法包括:
52.步骤s301:工作节点提供容器运行环境。
53.具体地,工作节点是应用程序中的容器运行依赖的底层资源,目标管理工具中包含多个工作节点,每个工作节点部署有多种类型的容器。容器是封装了所有运行应用程序所必须的相关细节的虚拟装置,比如应用依赖的操作系统。本实施例中的容器可以为有状态容器,有状态容器是应用该有状态容器时处理的历史请求或操作,对现在或未来的操作存在影响,需要记录历史数据的容器,例如mysql容器。
54.步骤s302:对工作节点循环探测。
55.具体地,按照预设时间周期观测工作节点的运行指标,例如内存,预判其会不会出现内存溢出的情形。
56.步骤s303:判断工作节点是否出现故障。
57.具体地,如果工作节点未出现故障,则继续对工作节点循环探测。如果工作节点出现故障,例如内存溢出,或者工作节点中的磁盘损坏,则执行下一步骤。
58.步骤s304:获取故障工作节点信息。
59.具体地,工作节点信息可以为节点所在可用区(az)、规格(cpu、内存)、工作节点上有多少容器、容器分别属于哪些应用,容器的ip及存储信息,例如故障工作节点在可用区(az)a1,节点规格16c32g,有3个容器,分别属于应用a、应用b、应用c。
60.步骤s305:创建目标工作节点。
61.具体地,根据故障工作节点信息在故障工作节点的同可用区a1创建一台同规格(16c32g)的目标工作节点。
62.步骤s306:指定迁移顺序。
63.具体地,每个目标应用程序包含有一种容器,故障节点中部署的多个容器属于不同的目标应用程序,每个目标应用程序对外提供服务时需要通过工作节点中部署的容器实现业务内容。因此在工作节点出现故障时,对故障节点中的容器迁移时参考目标应用程序的优先级和目标应用程序包含的容器数量来指定迁移顺序。例如,故障工作节点上有1个a应用容器,1个b应用容器,1个c应用容器,目标应用程序包含的容器数量由少到多分别是:应用b(1个)=应用c(1个)《应用a(3个),则判定先迁移应用b或者c,再根据目标应用程序的优先级判断,应用b(等级:4)》应用c(等级:3),最终决定迁移顺序:先迁移应用b容器、再迁移应用c容器、最后迁移应用a容器。
64.步骤s307:迁移故障工作节点上容器的ip、存储信息和容器。
65.具体地,基于迁移顺序将故障工作节点中的所有容器迁移至目标工作节点时,需要先将故障工作节点上容器的ip、存储信息复制到目标工作节点后。再按照迁移顺序开始迁移容器。
66.根据本技术实施例提供的可选的容器迁移方法,通过对故障工作节点自主迁移,能够在故障场景下针对有状态应用容器进行自主、快速迁移,大大减少服务中断时间、减少运维成本、提升有状态服务高可用性。
67.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
68.本技术实施例还提供了一种容器迁移装置,需要说明的是,本技术实施例的容器迁移装置可以用于执行本技术实施例所提供的用于容器迁移方法。以下对本技术实施例提供的容器迁移装置进行介绍。
69.图4是根据本技术实施例提供的容器迁移装置的示意图。如图4所示,该装置包括:
70.检测单元10,用于按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;
71.第一确定单元20,用于在目标管理工具中存在工作节点出现故障的情况下,将出
现故障的工作节点确定为故障节点,并获取故障节点的节点信息;
72.创建单元30,用于依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;
73.第二确定单元40,用于确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;
74.迁移单元50,用于基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点。
75.本技术实施例提供的容器迁移装置,通过检测单元10,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;第一确定单元20,在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;创建单元30,依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,目标区域包含故障节点;第二确定单元40,确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;迁移单元50,基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点,解决了相关技术中人工进行容器迁移的效率低的问题,通过对故障节点所在的目标区域创建目标工作节点,将故障节点中的容器按照容器迁移顺序迁移至明白工作节点,进而达到了提高容器迁移效率的效果。
76.可选地,在本技术实施例提供的容器迁移装置中,检测单元10包括:获取模块,用于获取每个工作节点的内存,并判断内存是否大于等于内存阈值;第一确定模块,用于在内存大于等于内存阈值的情况下,确定工作节点出现故障。
77.可选地,在本技术实施例提供的容器迁移装置中,检测单元10包括:写入模块,用于向每个工作节点写入检测文件,判断工作节点中的检测文件是否写入成功;第二确定模块,用于在检测文件写入失败的情况下,确定工作节点出现故障;读取模块,用于在检测文件写入成功的情况下,对工作节点执行对检测文件的读取操作;第三确定模块,用于在检测文件读取失败的情况下,确定工作节点出现故障。
78.可选地,在本技术实施例提供的容器迁移装置中,创建单元30包括:创建模块,用于在目标区域创建与故障节点包含相同节点信息的目标工作节点,其中,故障节点的节点信息至少包括以下之一:故障节点部署的容器数量、故障节点的内存和故障节点的中央处理器类型;建立模块,用于将目标工作节点与故障节点中部署的每种容器所属的目标应用程序建立通信连接。
79.可选地,在本技术实施例提供的容器迁移装置中,第二确定单元40包括:第四确定模块,用于确定每个目标应用程序中包含的容器数量;第一排序模块,用于将所有目标应用程序按照容器数量从少到多的顺序进行排序,得到目标序列;第二排序模块,用于将目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序,得到更新后的目标序列;第三排序模块,用于按照故障节点中每个容器所属目标应用程序在目标序列中的顺序对容器进行排序,得到容器迁移顺序。
80.可选地,在本技术实施例提供的容器迁移装置中,第二排序模块包括:确定子模块,用于确定每个目标应用程序的优先级;排序子模块,用于按照优先级从高到低的顺序对容器数量相同的多个目标应用程序进行排序,得到更新后的目标序列。
81.可选地,在本技术实施例提供的容器迁移装置中,迁移单元50包括:复制模块,用于将故障节点中部署的每个容器的网址和存储信息复制到目标工作节点;迁移模块,用于在网址和存储信息复制成功的情况下,按照容器迁移顺序将故障节点中部署的每个容器迁移至目标工作节点。
82.容器迁移装置包括处理器和存储器,上述检测单元10、第一确定单元20、创建单元30、第二确定单元40和迁移单元50等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
83.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高容器迁移效率。
84.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
85.本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现容器迁移方法。
86.本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行容器迁移方法。
87.图5是根据本技术实施例提供的电子设备的示意图。如图5所示,电子设备501包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:容器迁移方法。本文中的设备可以是服务器、pc、pad、手机等。
88.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:容器迁移方法。
89.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
90.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
91.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
92.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
93.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
94.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
95.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
96.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
97.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
98.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。

技术特征:
1.一种容器迁移方法,其特征在于,包括:按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;在所述目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取所述故障节点的节点信息;依据所述节点信息在所述目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,所述目标区域包含所述故障节点;确定所述故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和所述目标应用程序的优先级确定容器迁移顺序;基于所述容器迁移顺序将所述故障节点中的所有容器迁移至所述目标工作节点。2.根据权利要求1所述的方法,其特征在于,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障包括:获取每个工作节点的内存,并判断所述内存是否大于等于内存阈值;在所述内存大于等于所述内存阈值的情况下,确定所述工作节点出现故障。3.根据权利要求1所述的方法,其特征在于,按照预设时间周期检测目标管理工具中每个工作节点是否出现故障还包括:向每个工作节点写入检测文件,判断所述工作节点中的所述检测文件是否写入成功;在所述检测文件写入失败的情况下,确定所述工作节点出现故障;在所述检测文件写入成功的情况下,对所述工作节点执行对所述检测文件的读取操作;在所述检测文件读取失败的情况下,确定所述工作节点出现故障。4.根据权利要求1所述的方法,其特征在于,依据所述节点信息在所述目标管理工具中的目标区域创建工作节点,得到目标工作节点包括:在所述目标区域创建与所述故障节点包含相同节点信息的目标工作节点,其中,所述故障节点的节点信息至少包括以下之一:所述故障节点部署的容器数量、所述故障节点的内存和所述故障节点的中央处理器类型;将所述目标工作节点与所述故障节点中部署的每种容器所属的目标应用程序建立通信连接。5.根据权利要求1所述的方法,其特征在于,依据每个目标应用程序中包含的容器数量和所述目标应用程序的优先级确定容器迁移顺序包括:确定每个目标应用程序中包含的容器数量;将所有目标应用程序按照容器数量从少到多的顺序进行排序,得到目标序列;将所述目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序,得到更新后的目标序列;按照所述故障节点中每个容器所属目标应用程序在所述目标序列中的顺序对所述容器进行排序,得到所述容器迁移顺序。6.根据权利要求5所述的方法,其特征在于,将所述目标序列中容器数量相同的目标应用程序按照目标应用程序的优先级进行排序包括:确定每个目标应用程序的优先级;
按照优先级从高到低的顺序对所述容器数量相同的多个目标应用程序进行排序,得到所述更新后的目标序列。7.根据权利要求1所述的方法,其特征在于,基于所述容器迁移顺序将所述故障节点中的所有容器迁移至所述目标工作节点包括:将所述故障节点中部署的每个容器的网址和存储信息复制到所述目标工作节点;在所述网址和所述存储信息复制成功的情况下,按照所述容器迁移顺序将所述故障节点中部署的每个容器迁移至所述目标工作节点。8.一种容器迁移装置,其特征在于,包括:检测单元,用于按照预设时间周期检测目标管理工具中每个工作节点是否出现故障,其中,每个工作节点中部署有多种容器;第一确定单元,用于在所述目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取所述故障节点的节点信息;创建单元,用于依据所述节点信息在所述目标管理工具中的目标区域创建工作节点,得到目标工作节点,其中,所述目标区域包含所述故障节点;第二确定单元,用于确定所述故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和所述目标应用程序的优先级确定容器迁移顺序;迁移单元,用于基于所述容器迁移顺序将所述故障节点中的所有容器迁移至所述目标工作节点。9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,所述程序运行时控制所述非易失性存储介质所在的设备执行权利要求1至7中任意一项所述的容器迁移方法。10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的容器迁移方法。

技术总结
本申请公开了一种容器迁移方法、装置、存储介质及电子设备。涉及云计算领域,该方法包括:按照预设时间周期检测目标管理工具中每个工作节点是否出现故障;在目标管理工具中存在工作节点出现故障的情况下,将出现故障的工作节点确定为故障节点,并获取故障节点的节点信息;依据节点信息在目标管理工具中的目标区域创建工作节点,得到目标工作节点;确定故障节点中部署的每种容器所属的目标应用程序,依据每个目标应用程序中包含的容器数量和目标应用程序的优先级确定容器迁移顺序;基于容器迁移顺序将故障节点中的所有容器迁移至目标工作节点。通过本申请,解决了相关技术中人工进行容器迁移的效率低的问题。行容器迁移的效率低的问题。行容器迁移的效率低的问题。


技术研发人员:蔡中原 沈震宇 孙政清 董杰
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.05.09
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐