CN109871384B - 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质 - Google Patents

基于PaaS平台进行容器迁移的方法、系统、设备和存储介质 Download PDF

Info

Publication number
CN109871384B
CN109871384B CN201910134234.8A CN201910134234A CN109871384B CN 109871384 B CN109871384 B CN 109871384B CN 201910134234 A CN201910134234 A CN 201910134234A CN 109871384 B CN109871384 B CN 109871384B
Authority
CN
China
Prior art keywords
container
migrated
migration
cluster
metadata
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
CN201910134234.8A
Other languages
English (en)
Other versions
CN109871384A (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.)
Ctrip Travel Information Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Information Technology Shanghai 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 Ctrip Travel Information Technology Shanghai Co Ltd filed Critical Ctrip Travel Information Technology Shanghai Co Ltd
Priority to CN201910134234.8A priority Critical patent/CN109871384B/zh
Publication of CN109871384A publication Critical patent/CN109871384A/zh
Application granted granted Critical
Publication of CN109871384B publication Critical patent/CN109871384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种基于PaaS平台进行容器迁移的方法、系统、设备和存储介质,涉及云计算技术领域。其中基于PaaS平台进行容器迁移的方法包括:数据模型获取步骤,获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型;元数据迁移步骤,实现应用流量入口层的元数据迁移;容器迁移步骤,实现容器的迁移;容器健康检查步骤,实现容器的健康检查;以及容器接入流量步骤,实现容器接入流量。本申请能够自动化迁移容器,对运行于容器上的应用基本无影响,无需人工参与,无需额外机器资源,只需给出待迁移数据表,就可完成元数据和容器的自动迁移和容器流量的自动接入。

Description

基于PaaS平台进行容器迁移的方法、系统、设备和存储介质
技术领域
本申请涉及云计算技术领域,具体地说,涉及一种基于PaaS平台进行容器迁移的方法、系统、设备和存储介质。
背景技术
随着云计算的发展,容器云平台逐渐成为业界标准,容器云平台具有持续集成和弹性伸缩的特点。Kubernetes(简称K8S)是近几年火热的开源系统,K8S作为容器编排系统用来自动部署、维护和伸缩容器,具有可拓展和自修复的特点。随着K8S的兴盛,越来越多曾使用Mesos的公司选择转型K8S,这样就会面临如何将大量的Mesos应用透明迁移到K8S的问题。
也就是说,随着K8S的日益兴起,技术栈从Mesos迁至K8S的需求逐渐浮出水面。这一需求造成运行在Mesos上的大量应用需要透明迁移至K8S,以节省同时维护Mesos和K8S两套技术栈的人力和物力。为了新技术的顺利落地,迁移应满足以下条件:
无需用户参与,保持容器IP和部分元信息不变,尽量减少对应用的影响;
大量应用的迁移涉及面很广,必然会很繁琐和费时,应做到批量且无需人工值守;
从可用性的角度出发,应用的迁移应是灰度的,处于灰度迁移状态的应用,其发布和扩容不应该受到迁移的影响,扩容出来的新容器应尽量部署在K8S上;
从资源池的角度来说,迁移不应增加额外机器资源。
需要说明的是,在上述背景技术部分申请的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种基于PaaS平台进行容器迁移的方法、系统、设备和存储介质,实现容器云平台自动化迁移Mesos应用到K8S,风险低、无需额外机器资源、对应用基本无影响、无需人工参与。
根据本申请的一个方面,提供一种基于PaaS平台进行容器迁移的方法,包括:数据模型获取步骤,获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型;元数据迁移步骤,将应用流量入口层与所述目标容器集群的发布扩容接口建立关联,按所述数据模型对所述应用流量入口层的元数据进行重组计算、更新至所述待迁移数据表、并标记为所述源容器集群;容器迁移步骤,从经重组计算的元数据中复制与待迁移容器的IP关联的数据,按所述数据模型对复制的数据进行重组计算、更新至所述待迁移数据表、并标记为所述目标容器集群,并将所述待迁移容器的IP标记为所述目标容器集群;将所述待迁移容器拉出所述源容器集群,在所述目标容器集群中创建pod,并为所述pod分配所述待迁移容器的IP;容器健康检查步骤,对所述待迁移容器进行健康检查;以及容器接入流量步骤,将通过健康检查的待迁移容器拉入所述目标容器集群。
优选地,所述容器接入流量步骤还包括:若超时时间内待迁移容器的健康检查未通过,则将所述待迁移容器的流量接入任务赋予流量接入控制器,由所述流量接入控制器执行所述待迁移容器的流量接入任务。
优选地,所述流量接入控制器执行:监听所述源容器集群中待迁移容器的变化,将监听到的流量接入任务加入事件队列;循环地从所述事件队列中取出关键词,根据所述关键词获得对应的待迁移容器;将对应的待迁移容器拉入所述目标容器集群。
优选地,所述元数据迁移步骤中,将应用流量入口层与所述目标容器集群的发布扩容接口建立关联的步骤包括:备份所述应用流量入口层的元数据;在PaaS层将所述应用流量入口层的发布扩容方式设置为所述目标容器集群的发布扩容方式,使所述应用流量入口层的发布扩容操作调用所述目标容器集群的发布扩容接口。
优选地,所述元数据迁移步骤中,按所述数据模型对所述应用流量入口层的元数据进行重组计算前,还包括:从PaaS层和网络层获得所述应用流量入口层的容器配置数据、发布数据和网络数据,作为所述应用流量入口层的元数据。
优选地,所述容器迁移步骤中,从经重组计算的元数据中复制与待迁移容器的IP关联的数据前,还包括:备份与待迁移容器的IP关联的数据。
优选地,所述容器迁移步骤中,将所述待迁移容器拉出所述源容器集群前,还包括:按所述数据模型对所述待迁移数据表进行减1运算,并更新所述待迁移数据表中被影响到的数据。
优选地,通过Stackstorm管理所述数据模型获取步骤、所述元数据迁移步骤、所述容器迁移步骤、所述容器健康检查步骤和所述容器接入流量步骤的工作流。
优选地,当任意步骤失败,进行回滚操作,并发出告警信息。
优选地,所述源容器集群为Mesos,所述目标容器集群为Kubernetes。
根据本申请的另一个方面,提供一种基于PaaS平台进行容器迁移的系统,包括:数据模型获取模块,用于获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型;元数据迁移模块,用于将应用流量入口层与所述目标容器集群的发布扩容接口建立关联,按所述数据模型对所述应用流量入口层的元数据进行重组计算、更新至所述待迁移数据表、并标记为所述源容器集群;容器迁移模块,用于从经重组计算的元数据中复制与待迁移容器的IP关联的数据,按所述数据模型对复制的数据进行重组计算、更新至所述待迁移数据表、并标记为所述目标容器集群,并将所述待迁移容器的IP标记为所述目标容器集群;将所述待迁移容器拉出所述源容器集群,在所述目标容器集群中创建pod,并为所述pod分配所述待迁移容器的IP;容器健康检查模块,用于对所述待迁移容器进行健康检查;以及容器接入流量模块,用于将通过健康检查的待迁移容器拉入所述目标容器集群。
优选地,上述的系统还包括:流量接入控制器,用于将超时时间内未通过健康检查的待迁移容器拉入所述目标容器集群。
优选地,通过Stackstorm管理所述数据模块获取模块,所述元数据迁移模块、所述容器迁移模块、所述容器健康检查模块和所述容器接入流量模块之间的工作流。
根据本申请的另一个方面,提供一种基于PaaS平台进行容器迁移的设备,包括:处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的基于PaaS平台进行容器迁移的方法的步骤。
根据本申请的另一个方面,提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述的基于PaaS平台进行容器迁移的方法的步骤。
本申请的有益效果在于:
本申请实现自动化迁移容器,对运行于容器上的应用基本无影响,无需人工参与,无需额外机器资源,只需给出待迁移数据表,就可完成元数据和容器的自动迁移和容器流量的自动接入;
本申请拆解迁移过程为多个checkpoint,利用Stackstorm实现自动化工作流、异常情况的自动处理、失败情况的自动告警,借助流量接入控制器实现容器流量的自动接入,无需值守。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例中一种基于PaaS平台进行容器迁移的方法的步骤示意图;
图2示出本申请实施例中一种基于PaaS平台进行容器迁移的方法的工作流示意图;
图3示出本申请实施例中一种基于PaaS平台进行容器迁移的方法的架构示意图;
图4示出本申请实施例中一种基于PaaS平台进行容器迁移的系统的模块示意图;
图5示出本申请实施例中一种基于PaaS平台进行容器迁移的设备的结构示意图;
图6示出本申请实施例中一种计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本申请将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
本申请的基于PaaS平台进行容器迁移的方法可用于从源容器集群自动化迁移容器至目标容器集群,例如从源容器集群Mesos自动化迁移容器至目标容器集群Kubernetes,下文即以源容器集群为Mesos,目标容器集群为Kubernetes进行基于PaaS平台进行容器迁移的方法的阐述。Mesos是一种开源的分布式资源管理框架,被称为是分布式系统的内核。Kubernetes(即K8S)是一个开源的,用于管理云平台中多个主机上的容器化的应用。相比于Mesos,Kubernetes的有点在于使部署容器化的应用简单且高效,且具有可拓展和自修复的特点。当然,根据本申请公开的构思,本领域技术人员也可以在其他源容器集群和目标容器集群之间进行容器迁移。
图1示出实施例中基于PaaS平台进行容器迁移的方法的步骤示意图,图3示出实施例中基于PaaS平台进行容器迁移的方法的架构示意图。结合图1和图3所示,在一些实施例中,基于PaaS平台进行容器迁移的方法包括:
S10数据模型获取步骤,获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型。
其中,PaaS平台Platform-as-a-Service(平台即服务),用于提供应用程序的开发和运行环境。适配器模式(Adapter)是PaaS平台的一种结构型模式,用于将原始接口转换成预期接口,以消除由于接口不匹配所造成的兼容性问题。待迁移数据表存储于数据库(DB)中,其中存储有待迁移容器和相关数据。数据模型是指通过PaaS发布K8S容器的数据模型,本申请不限定具体的数据模型,从高可用的角度出发,数据模型的设计应满足应用跨可用区部署的需求。
S20元数据迁移步骤,将应用流量入口层与目标容器集群的发布扩容接口建立关联,按数据模型对应用流量入口层的元数据进行重组计算、更新至待迁移数据表、并标记为源容器集群。
其中,将应用流量入口层与目标容器集群的发布扩容接口建立关联的步骤包括:备份应用流量入口层的元数据;在PaaS层将应用流量入口层的发布扩容方式设置为目标容器集群的发布扩容方式,使应用流量入口层的发布扩容操作调用目标容器集群的发布扩容接口。应用流量入口层的元数据包括容器配置数据、发布数据和网络数据,按数据模型对应用流量入口层的元数据进行重组计算前还包括:从PaaS层和网络层获得应用流量入口层的容器配置数据、发布数据和网络数据,作为应用流量入口层的元数据。
也即,在执行应用流量入口层(Group)维度的元数据迁移步骤时,首先备份数据,然后在PaaS层将该Group的发布扩容方式置为K8S,从PaaS层和网络层获得该Group的容器配置数据、发布数据和网络数据,得到这些数据后按K8S的数据模型对元数据进行重组和计算,然后更新待迁移数据表并标记为Mesos。若元数据迁移步骤执行时失败,则回滚该跨系统操作。经过元数据迁移步骤的Group,其发布和扩容调用K8S发布扩容接口。
S30、容器迁移步骤,从经重组计算的元数据中复制与待迁移容器的IP关联的数据,按数据模型对复制的数据进行重组计算、更新至待迁移数据表、并标记为目标容器集群,并将待迁移容器的IP标记为目标容器集群;将待迁移容器拉出源容器集群,在目标容器集群中创建pod,并为pod分配待迁移容器的IP。
Pod是Kubernetes为部署、管理、编排容器化应用提出的概念,是Kubernetes中的最小部署单元。Pod是由一组紧耦合的容器组成的容器组,可以作为一个或者多个容器的载体。其中,从经重组计算的元数据中复制与待迁移容器的IP关联的数据前还包括:备份与待迁移容器的IP关联的数据。将待迁移容器拉出源容器集群前还包括:按数据模型对待迁移数据表进行减1运算,并更新待迁移数据表中被影响到的数据。
也即,在执行容器迁移步骤时,首先备份数据,然后从元数据迁移步骤更新的数据(即经重组计算的元数据)中复制与待迁移该容器的IP相关的数据,按K8S的数据模型对复制的数据进行重组和计算后,更新待迁移数据表并标记为K8S,同时网络层将迁移该容器的IP标记为K8S。由于待迁移容器迁走后会对Mesos的数据产生减1影响,因此需按照K8S的数据模型进行减1运算并更新待迁移数据表中被影响到的数据,至此容器迁移前的数据准备完成。接着将待迁移容器拉出源容器集群Mesos,删除Mesos中相应的容器,然后在K8S中创建相应pod,网络层采取手段使新建pod被分配对应的待迁移容器的IP。若容器迁移步骤执行时失败,则回滚该跨系统操作。
S40容器健康检查步骤,对待迁移容器进行健康检查。
待迁移容器在K8S上重新创建后,从到可以接入流量需要一定的预热时间,因此需要在一定的超时时间内轮询查看各待迁移容器的状态,即对待迁移容器进行健康检查。
S50容器接入流量步骤,将通过健康检查的待迁移容器拉入目标容器集群。待迁移容器健康检查通过后,即可拉入K8S对外提供服务。
进一步的,容器接入流量步骤还包括:若超时时间内待迁移容器的健康检查未通过,则将待迁移容器的流量接入任务赋予流量接入控制器,由流量接入控制器执行待迁移容器的流量接入任务。流量接入控制器具体执行:监听源容器集群中待迁移容器的变化,将监听到的流量接入任务加入事件队列;循环地从事件队列中取出关键词,根据关键词获得对应的待迁移容器;将对应的待迁移容器拉入目标容器集群。
流量接入控制器(Controller)基于K8S面向终态的思想,用于处理容器迁移步骤中未拉入的待迁移容器。具体来说,流量接入控制器监听源容器集群中Endpoint的变化,将监听到的Add/Delete/Update事件加入事件队列中;接着启动多个Worker循环地从事件队列里取出关键词进行处理,根据关键词从本地缓存中取出object。从object获得已ready的pod IP列表,从SLB/SOA获得已接入流量的容器IP列表,经过简单的运算即可得出需要拉入K8S的待迁移容器IP列表,最后执行拉入操作。若执行失败,重新将该key加入事件队列等待下一次处理。
进一步的,参照图2所示的种基于PaaS平台进行容器迁移的方法的工作流示意图。在优选的实施例中,通过Stackstorm管理容器迁移(Migration)所包含的数据模型获取步骤、元数据迁移步骤、容器迁移步骤、容器健康检查步骤和容器接入流量步骤的工作流。StackStorm是一个自动化平台,提供可扩展、灵活和健壮的工具链用于应用、服务和工作流的自动化能力。Stackstorm的外层Workflow(工作流)管理S10数据模型获取步骤的执行,获得待迁移数据表和数据模型。内层Workflow管理元数据迁移步骤(Init)、容器迁移步骤(Migrate)、容器健康检查步骤(HealthCheck)和容器接入流量步骤(Pullin)的执行。通过Stackstorm实现自动化工作流,Stackstorm具有自动处理异常和邮件告警的能力,能当任意步骤失败时进行回滚操作,并发出告警信息,无需人工值守。从资源池的角度出发,可以按宿主机维度进行容器迁移。此时,可以在Stackstorm工作流中增加自动下线和重装上线的action,每迁完一台Mesos机器,自动下线并重装上线加入K8S集群,无需额外机器资源。
本申请将基于PaaS平台进行容器迁移过程拆解为元数据迁移步骤、容器迁移步骤、容器健康检查步骤和容器接入流量步骤等四个主要步骤。通过合理地拆解迁移过程为多个checkpoint,有效地利用Stackstorm工作流和K8S流量接入控制器,在容器云平台上实现自动化迁移Mesos应用到K8S。本申请能有效且快速地完成容器迁移,按宿主机维度灰度、批量操作,风险低且不需要额外机器资源;能保持容器IP不变,对应用基本无影响,无需用户参与;且具有自动处理异常和邮件告警的能力,无需人工值守。
本申请实施例还提供一种基于PaaS平台进行容器迁移的系统。参照图4所示,在一些实施例中,基于PaaS平台进行容器迁移的系统包括:
数据模型获取模块301,用于获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型。数据模型获取模块301可用于执行上述基于PaaS平台进行容器迁移的方法实施例中的步骤S10。
元数据迁移模块302,用于将应用流量入口层与目标容器集群的发布扩容接口建立关联,按数据模型对所述应用流量入口层的元数据进行重组计算、更新至待迁移数据表、并标记为源容器集群。元数据迁移模块302可用于执行上述基于PaaS平台进行容器迁移的方法实施例中的步骤S20。
容器迁移模块303,用于从经重组计算的元数据中复制与待迁移容器的IP关联的数据,按数据模型对复制的数据进行重组计算、更新至待迁移数据表、并标记为目标容器集群,并将待迁移容器的IP标记为目标容器集群;将待迁移容器拉出所述源容器集群,在目标容器集群中创建pod,并为pod分配待迁移容器的IP。其中,源容器集群为Mesos,目标容器集群为Kubernetes。容器迁移模块303可用于执行上述基于PaaS平台进行容器迁移的方法实施例中的步骤S30。
容器健康检查模块304,用于对待迁移容器进行健康检查。容器健康检查模块304可用于执行上述基于PaaS平台进行容器迁移的方法实施例中的步骤S40。
容器接入流量模块305,用于将通过健康检查的待迁移容器拉入目标容器集群。容器接入流量模块305可用于执行上述基于PaaS平台进行容器迁移的方法实施例中的步骤S50。
进一步的,基于PaaS平台进行容器迁移的系统还可以包括:流量接入控制器,用于将超时时间内未通过健康检查的待迁移容器拉入目标容器集群。
进一步的,可以通过Stackstorm管理数据模块获取模块301,元数据迁移模块302、容器迁移模块303、容器健康检查模块304和容器接入流量模块305之间的工作流。
本申请的基于PaaS平台进行容器迁移的系统通过数据模块获取模块301,元数据迁移模块302、容器迁移模块303、容器健康检查模块304和容器接入流量模块305等多个checkpoint执行容器迁移,有效利用Stackstorm工作流和流量接入控制器,在容器云平台上实现自动化迁移Mesos应用到K8S;能有效且快速地完成容器迁移,按宿主机维度灰度、批量操作,风险低且不需要额外机器资源;能保持容器IP不变,对应用基本无影响,无需用户参与;且具有自动处理异常和邮件告警的能力,无需人工值守。
本申请实施例还提供一种基于PaaS平台进行容器迁移的设备,包括处理器和存储器,存储器中存储有可执行指令,处理器被配置为经由执行可执行指令来执行上述实施例中的基于PaaS平台进行容器迁移的方法的步骤。
如上所述,本申请的基于PaaS平台进行容器迁移的设备通过合理地拆解迁移过程为多个checkpoint,有效利用Stackstorm工作流和K8S流量接入控制器,在容器云平台上实现自动化迁移Mesos应用到K8S;能有效且快速地完成容器迁移,按宿主机维度灰度、批量操作,风险低且不需要额外机器资源;能保持容器IP不变,对应用基本无影响,无需用户参与;且具有自动处理异常和邮件告警的能力,无需人工值守。
图5是本申请实施例中基于PaaS平台进行容器迁移的设备(下文简称电子设备)的结构示意图,应当理解的是,图5仅仅是示意性地示出各个模块,这些模块可以是虚拟的软件模块或实际的硬件模块,这些模块的合并、拆分及其余模块的增加都在本申请的保护范围之内。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
下面参照图5来描述本申请的电子设备400。图5显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同平台组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,存储单元存储有程序代码,程序代码可以被处理单元410执行,使得处理单元410执行上述实施例中描述的基于PaaS平台进行容器迁移的方法的步骤。例如,处理单元410可以执行如图1至所示的步骤。
存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。
存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本申请实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述实施例描述的基于PaaS平台进行容器迁移的方法的步骤。在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行上述实施例描述的基于PaaS平台进行容器迁移的方法的步骤。
如上所述,本申请的计算机可读存储介质通过合理地拆解迁移过程为多个checkpoint,有效利用Stackstorm工作流和K8S流量接入控制器,在容器云平台上实现自动化迁移Mesos应用到K8S;能有效且快速地完成容器迁移,按宿主机维度灰度、批量操作,风险低且不需要额外机器资源;能保持容器IP不变,对应用基本无影响,无需用户参与;且具有自动处理异常和邮件告警的能力,无需人工值守。
图6是本申请的计算机可读存储介质的结构示意图。参考图6所示,描述了根据本申请的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
以上内容是结合具体的优选实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本申请的保护范围。

Claims (15)

1.一种基于PaaS平台进行容器迁移的方法,其特征在于,包括:
数据模型获取步骤,获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型,所述待迁移数据表中存储待迁移容器;
元数据迁移步骤,将应用流量入口层与所述目标容器集群的发布扩容接口建立关联,按所述数据模型对所述应用流量入口层的元数据进行重组计算并标记为所述源容器集群;
容器迁移步骤,从经重组计算的元数据中复制与一当前待迁移容器的IP关联的数据,按所述数据模型对复制的数据进行重组计算并标记为所述目标容器集群,并将所述当前待迁移容器的IP标记为所述目标容器集群;将所述当前待迁移容器拉出所述源容器集群,在所述目标容器集群中创建pod,并为所述pod分配所述当前待迁移容器的IP;
容器健康检查步骤,对所述当前待迁移容器进行健康检查;以及
容器接入流量步骤,将通过健康检查的待迁移容器拉入所述目标容器集群。
2.如权利要求1所述的方法,其特征在于,所述容器接入流量步骤还包括:
若预设时间内一待迁移容器的健康检查未通过,则将所述待迁移容器的流量接入任务赋予流量接入控制器,由所述流量接入控制器执行所述待迁移容器的流量接入任务。
3.如权利要求2所述的方法,其特征在于,所述流量接入控制器执行:
监听所述源容器集群中待迁移容器的变化,将监听到的流量接入任务加入事件队列;
循环地从所述事件队列中取出关键词,根据所述关键词获得对应的待迁移容器;
将对应的待迁移容器拉入所述目标容器集群。
4.如权利要求1所述的方法,其特征在于,所述元数据迁移步骤中,将应用流量入口层与所述目标容器集群的发布扩容接口建立关联的步骤包括:
备份所述应用流量入口层的元数据;
在PaaS层将所述应用流量入口层的发布扩容方式设置为所述目标容器集群的发布扩容方式,使所述应用流量入口层的发布扩容操作调用所述目标容器集群的发布扩容接口。
5.如权利要求1所述的方法,其特征在于,所述元数据迁移步骤中,按所述数据模型对所述应用流量入口层的元数据进行重组计算前,还包括:
从PaaS层和网络层获得所述应用流量入口层的容器配置数据、发布数据和网络数据,作为所述应用流量入口层的元数据。
6.如权利要求1所述的方法,其特征在于,所述容器迁移步骤中,从经重组计算的元数据中复制与一当前待迁移容器的IP关联的数据前,还包括:
备份与所述当前待迁移容器的IP关联的数据。
7.如权利要求1所述的方法,其特征在于,所述容器迁移步骤中,将所述当前待迁移容器拉出所述源容器集群前,还包括:
按所述数据模型对所述待迁移数据表中待迁移容器的个数进行减1运算。
8.如权利要求1所述的方法,其特征在于,通过Stackstorm管理所述数据模型获取步骤、所述元数据迁移步骤、所述容器迁移步骤、所述容器健康检查步骤和所述容器接入流量步骤的工作流。
9.如权利要求8所述的方法,其特征在于,当任意步骤失败,进行回滚操作,并发出告警信息。
10.如权利要求1所述的方法,其特征在于,所述源容器集群为Mesos,所述目标容器集群为Kubernetes。
11.一种基于PaaS平台进行容器迁移的系统,其特征在于,包括:
数据模型获取模块,用于获得源容器集群的待迁移数据表,和通过PaaS平台在目标容器集群发布容器的数据模型,所述待迁移数据表中存储待迁移容器;
元数据迁移模块,用于将应用流量入口层与所述目标容器集群的发布扩容接口建立关联,按所述数据模型对所述应用流量入口层的元数据进行重组计算并标记为所述源容器集群;
容器迁移模块,用于从经重组计算的元数据中复制与一当前待迁移容器的IP关联的数据,按所述数据模型对复制的数据进行重组计算并标记为所述目标容器集群,并将所述当前待迁移容器的IP标记为所述目标容器集群;将所述当前待迁移容器拉出所述源容器集群,在所述目标容器集群中创建pod,并为所述pod分配所述当前待迁移容器的IP;
容器健康检查模块,用于对所述当前待迁移容器进行健康检查;以及
容器接入流量模块,用于将通过健康检查的待迁移容器拉入所述目标容器集群。
12.如权利要求11所述的系统,其特征在于,还包括:
流量接入控制器,用于将预设时间内未通过健康检查的待迁移容器拉入所述目标容器集群。
13.如权利要求11所述的系统,其特征在于,通过Stackstorm管理所述数据模块获取模块,所述元数据迁移模块、所述容器迁移模块、所述容器健康检查模块和所述容器接入流量模块之间的工作流。
14.一种基于PaaS平台进行容器迁移的设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至10任一项所述的基于PaaS平台进行容器迁移的方法的步骤。
15.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至10任一项所述的基于PaaS平台进行容器迁移的方法的步骤。
CN201910134234.8A 2019-02-22 2019-02-22 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质 Active CN109871384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910134234.8A CN109871384B (zh) 2019-02-22 2019-02-22 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910134234.8A CN109871384B (zh) 2019-02-22 2019-02-22 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109871384A CN109871384A (zh) 2019-06-11
CN109871384B true CN109871384B (zh) 2021-04-30

Family

ID=66919142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910134234.8A Active CN109871384B (zh) 2019-02-22 2019-02-22 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109871384B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377395B (zh) * 2019-07-03 2021-11-02 华云数据控股集团有限公司 一种Kubernetes集群中的Pod迁移方法
CN112291288B (zh) * 2019-07-24 2022-10-04 北京金山云网络技术有限公司 一种容器集群伸缩方法、装置、电子设备及可读存储介质
CN113127558A (zh) * 2019-12-31 2021-07-16 北京懿医云科技有限公司 元数据同步方法、系统、设备及存储介质
CN111371696B (zh) * 2020-03-24 2022-07-12 广西梯度科技股份有限公司 一种在Kubernetes中实现Pod网络流控的方法
CN111884883A (zh) * 2020-07-29 2020-11-03 北京宏达隆和科技有限公司 一种用于业务接口的快速审计处理方法
CN113778613B (zh) * 2021-07-15 2024-04-26 上海浦东发展银行股份有限公司 一种多数据中心双栈容器云平台的统一管理方法
CN113704270B (zh) * 2021-09-03 2023-10-17 携程金融科技(上海)有限公司 SQL Server数据库的自增主键扩容方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468759A (zh) * 2014-11-27 2015-03-25 中国联合网络通信集团有限公司 PaaS平台中实现应用迁移的方法和装置
CN108681451A (zh) * 2018-05-14 2018-10-19 浪潮软件集团有限公司 一种可视化的kubernetes微服务编排的实现方法
CN109067828A (zh) * 2018-06-22 2018-12-21 杭州才云科技有限公司 基于Kubernetes和OpenStack容器云平台多集群构建方法、介质、设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294172A1 (en) * 2006-05-23 2007-12-20 Microplex Cinemas, Llc Coalescence of compartmental entertainment units for intellectual property screening

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468759A (zh) * 2014-11-27 2015-03-25 中国联合网络通信集团有限公司 PaaS平台中实现应用迁移的方法和装置
CN108681451A (zh) * 2018-05-14 2018-10-19 浪潮软件集团有限公司 一种可视化的kubernetes微服务编排的实现方法
CN109067828A (zh) * 2018-06-22 2018-12-21 杭州才云科技有限公司 基于Kubernetes和OpenStack容器云平台多集群构建方法、介质、设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PaaS云中Web容器及调度的设计与实现;余浩维;《中国优秀硕士学位论文全文数据库信息科技辑》;20150831(第08期);I139-247 *
电信BS架构系统迁移及云化研究;李书生等;《电信科学》;20121231(第5期);第133-141页 *

Also Published As

Publication number Publication date
CN109871384A (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN109871384B (zh) 基于PaaS平台进行容器迁移的方法、系统、设备和存储介质
Kim et al. Nsml: Meet the mlaas platform with a real-world case study
US20230308525A1 (en) Embedded database as a microservice for distributed container cloud platform
CN109120678B (zh) 用于分布式存储系统的服务托管的方法和装置
CN113569987A (zh) 模型训练方法和装置
US20180129570A1 (en) Saving program execution state
US9483314B2 (en) Systems and methods for fault tolerant batch processing in a virtual environment
CN112104723B (zh) 一种多集群的数据处理系统及方法
US20180143856A1 (en) Flexible job management for distributed container cloud platform
US20120192175A1 (en) Method and System to Accelerate Copying of Virtual Machine Images
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN112035293A (zh) 虚拟机集群备份
US20160232065A1 (en) Preserving management services with self-contained metadata through the disaster recovery life cycle
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
CN113886089A (zh) 一种任务处理方法、装置、系统、设备及介质
CN113778486A (zh) 一种代码流水线的容器化处理方法、装置、介质及设备
CN111143028A (zh) 一种基于LXC容器的SaaS平台实现方法及其系统
US20120166641A1 (en) Method, system and apparatus for managing computer processes
US9146816B2 (en) Managing system image backup
CN116089011A (zh) 创建镜像仓库的方法、装置、存储介质以及电子设备
US9832137B1 (en) Provisioning system and method for a distributed computing environment using a map reduce process
CN114064438A (zh) 数据库故障处理方法和装置
CN113835830A (zh) 基于ai的rpa集群管理方法、装置以及存储介质
US20130283297A1 (en) Shared versioned workload partitions
CN116319758A (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