System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及容器云,尤其涉及一种应用迁移方法、系统、设备及介质。
技术介绍
1、容器技术作为云原生领域的新兴虚拟化技术,在云计算和容器云领域中扮演着重要的角色。它的兴起催生了一系列应用编排管理系统,其中包括kubernetes(简称k8s)、docker swarm和mesosphere等。在这些系统中,kubernetes凭借其强大的应用编排能力和智能化调度算法成为容器编排领域的领导者。调度器(scheduler)作为kubernetes的核心组件,负责将编排的应用程序调度到适合的节点上,并进行资源分配。在调度过程中,调度器会考虑节点的可用资源、约束条件和健康状态等因素,以确保应用程序能够得到有效的部署和运行。
技术实现思路
1、本申请实施例提供了一种应用迁移方法、系统、设备及介质,用以当应用在源节点不可用时,实现将该应用迁移到目的节点上,使其可以在目的节点上正常运行,使得该应用可以继续为用户提供服务。
2、本申请实施例提供的一种应用迁移方法,包括:
3、确定需要将源节点的目标应用迁移到目的节点;
4、将所述目标应用所关联的持久化卷声明pvc解绑,并且为所述pvc设置迁移标签,用于指示应用编排管理系统的控制器不对设置有所述迁移标签的pvc进行绑定;
5、删除所述目标应用的源持久化卷pv与所述pvc的绑定关系;
6、驱逐所述源节点上的所述目标应用的容器pod,触发所述应用编排管理系统的调度器将所述pod重新调度到目的节点上;
7、通过容器存储接口csi组件将所述目标应用的源pv数据迁移到所述目的节点上,并创建目的pv,以及删除所述pvc的迁移标签;
8、通过所述控制器建立所述目的pv与所述pvc的绑定关系。
9、由此可见,本申请实施例,可以针对资源不足、反亲和性以及卷信息变更等,导致的目标应用在源节点不可用的情况,实现将该目标应用迁移到目的节点上,使该目标应用可以在目的节点上正常运行,避免该目标应用无法为用户提供服务的问题,使得该目标应用可以在目的节点上继续为用户提供服务。
10、在一些实施例中,通过容器存储接口csi组件将所述目标应用的源pv数据迁移到所述目的节点上,包括:
11、当所述csi组件监控到设置有所述迁移标签的pvc时,通过创建工作流任务,将所述目标应用的源pv数据迁移到所述目的节点上;其中,所述创建工作流任务包括在所述源节点创建客户端pod,以及在所述目的节点创建服务端pod,所述客户端pod用于从所述源节点的第一路径获取所述源pv数据并发送给所述服务端pod,所述服务端pod用于接收所述客户端pod发送的所述源pv数据,并存储到所述目的节点的第二路径。
12、在一些实施例中,所述客户端pod,通过启动远程数据同步进程,从所述源节点的第一路径获取所述源pv数据并发送给所述服务端pod。
13、在一些实施例中,所述方法还包括:
14、通过所述客户端pod周期性地获取数据传输进度;
15、当基于所述数据传输进度,确定所述客户端pod传输数据完毕时,设置所述工作流任务为成功状态。
16、在一些实施例中,所述方法还包括:
17、当发生所述客户端pod与所述服务端pod之间的数据传输中断的异常情况时,通过所述客户端pod获取异常原因,并重新启动所述客户端pod从所述源节点的第一路径获取所述源pv数据并发送给所述服务端pod,其中,当所述客户端pod重启次数超过预设次数时,标记所述工作流任务为失败状态并通知用户。
18、在一些实施例中,所述确定需要将源节点的目标应用迁移到目的节点,包括:
19、通过设置在所述应用编排管理系统的调度器中的预设第一调度插件,监控到满足如下条件之一或组合时,确定需要将源节点的目标应用迁移到目的节点:
20、所述源节点的cpu被所述目标应用之外的其他应用占用,并且,所述源节点没有可以驱逐的无状态应用;
21、所述目标应用重新上线后,所述源节点上的原有应用与所述重新上线的目标应用具有反亲和性;
22、所述目标应用重新上线后,所述目标应用所关联的pvc的卷信息发生变更。
23、在一些实施例中,所述方法还包括:
24、当所述源节点的cpu被所述目标应用之外的其他应用占用时,驱逐所述源节点上的无状态应用,直到所述源节点的cpu满足运行所述目标应用的条件。
25、在一些实施例中,所述方法还包括:
26、通过设置在所述应用编排管理系统的调度器中的预设第二调度插件,监控所述目标应用所关联的pvc处于非绑定状态的时长,当所述时长超过预设值时,触发对所述pvc的重新绑定操作。
27、相应地,本申请实施例提供的一种应用迁移系统,包括:调度器组件、重调度组件、csi组件、控制器组件;其中,
28、所述调度器组件,用于确定需要将源节点的目标应用迁移到目的节点;以及,在所述重调度组件的触发下,将所述pod重新调度到目的节点上;
29、所述重调度组件,用于:
30、将所述目标应用所关联的持久化卷声明pvc解绑,并且为所述pvc设置迁移标签,用于指示所述控制器组件不对设置有所述迁移标签的pvc进行绑定;
31、删除所述目标应用的源持久化卷pv与所述pvc的绑定关系;
32、驱逐所述源节点上的所述目标应用的容器pod,触发所述调度器组件将所述pod重新调度到目的节点上;
33、所述csi组件,用于将所述目标应用的源pv数据迁移到所述目的节点上,并创建目的pv,以及删除所述pvc的迁移标签;
34、所述控制器组件,用于建立所述目的pv与所述pvc的绑定关系。
35、本申请另一实施例提供了一种电子设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
36、本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
本文档来自技高网...【技术保护点】
1.一种应用迁移方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,通过容器存储接口CSI组件将所述目标应用的源PV数据迁移到所述目的节点上,包括:
3.根据权利要求2所述的方法,其特征在于,所述客户端Pod,通过启动远程数据同步进程,从所述源节点的第一路径获取所述源PV数据并发送给所述服务端Pod。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述确定需要将源节点的目标应用迁移到目的节点,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种应用迁移系统,其特征在于,所述系统包括:调度器组件、重调度组件、CSI组件、控制器组件;其中,
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至
...【技术特征摘要】
1.一种应用迁移方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,通过容器存储接口csi组件将所述目标应用的源pv数据迁移到所述目的节点上,包括:
3.根据权利要求2所述的方法,其特征在于,所述客户端pod,通过启动远程数据同步进程,从所述源节点的第一路径获取所述源pv数据并发送给所述服务端pod。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
...
【专利技术属性】
技术研发人员:韩超,刘超,高伟,周明伟,
申请(专利权)人:浙江大华技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。