一种容器运行数据同步方法及装置与流程

文档序号:24346688发布日期:2021-03-19 12:30阅读:64来源:国知局
一种容器运行数据同步方法及装置与流程

本发明涉及通信技术领域,具体涉及一种容器运行数据同步方法及装置。



背景技术:

目前,服务器上的容器技术被广泛使用,但是当容器由于某些原因需要重启时,在重启完成后,容器在之前运行过程中生成的一些数据或配置会丢失。

例如,对于实现域名解析功能的容器,在容器运行过程中,由于用户对域名的增删查改,会在容器中生成域名解析数据,这些域名解析数据用于实现容器的域名解析功能,当由于某些原因导致容器重启后,就会出现域名解析数据丢失的问题,容器需要重新生成域名解析数据,降低了访问效率。



技术实现要素:

本发明的目的是针对上述现有技术的不足提出的一种容器运行数据同步方法及装置,该目的是通过以下技术方案实现的。

本发明的第一方面提出了一种容器运行数据同步方法,应用于第一节点,所述方法包括:

获取用于创建容器的配置文件,并根据所述配置文件在所述第一节点上创建容器;

将用于存储容器运行数据的文件同步到目标节点的存储空间中,以使重启的容器中,从重启的容器所处的目标节点的存储空间中加载所述文件。

本发明的第二方面提出了一种容器运行数据同步装置,应用于第一节点,所述装置包括:

获取模块,用于获取用于创建容器的配置文件;

创建模块,用于根据所述配置文件在所述第一节点上创建容器;

同步模块,用于将用于存储容器运行数据的文件同步到目标节点的存储空间中,以使重启的容器中,从重启的容器所处的目标节点的存储空间中加载所述文件。

本发明的第三方面提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述方法的步骤。

本发明的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面所述方法的步骤。

基于上述第一方面和第二方面所述的容器运行数据同步方法及装置,本发明具有的有益效果如下:

在容器创建之后,由于容器运行过程中产生的数据相当于存储在容器的内存,在容器关闭/重启后,这些数据便消失,本发明通过将容器运行过程中产生的数据同步存储到目标节点的存储空间中,该目标节点包括创建容器的节点或者其他节点,从而容器在目标节点重启后,能够重新从目标节点的存储空间中将数据加载到容器中,避免数据丢失的问题,可以提升访问效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明根据一示例性实施例示出的一种云平台集群的结构示意图;

图2为本发明根据一示例性实施例示出的一种容器运行数据同步方法实施例流程图;

图3为本发明根据一示例性实施例示出的一种容器运行数据同步装置结构示意图;

图4为本发明根据一示例性实施例示出的一种计算机设备的硬件结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

云平台集群通常由多个服务器(节点)组成,参见图1所示,云平台集群包括有三个节点:节点1、节点2及节点3,节点1为主节点,节点2和节点3为从节点。在创建容器时,作为主节点的节点1用于根据各节点上的资源情况选择由哪个节点创建容器。假设当前节点1上运行有容器a,节点2上运行有容器b,节点3上运行有容器c。

在云平台集群中,对于dns(domainnamesystem,域名系统)功能通常由一个节点上的其中一个容器实现,假设节点2上的容器b实现dns功能,容器b运行过程进行域名解析时,会生成域名解析数据,而在节点2的资源不足情况下,容器b关闭,并且生成的域名解析数据也被清除,当容器b重启后,由于域名解析数据消失,在进行域名解析时,需要重新生成域名解析数据,从而降低了访问效率。

为解决上述技术问题,本申请提出一种容器运行数据同步方法,下面以具体实施例对容器运行数据同步方法进行详细阐述。

图2为本发明根据一示例性实施例示出的一种容器运行数据同步方法实施例流程图,该容器运行数据同步方法可以应用于第一节点。参见图2所示,该容器运行数据同步方法包括如下步骤:

步骤201:获取用于创建容器的配置文件,并根据配置文件在第一节点上创建容器。

其中,配置文件的格式可以为yaml格式,在配置文件中记录有用于控制容器的内存、环境变量、健康检查等信息。在配置文件中,指定有启动容器所对应的镜像文件。不同的镜像文件可以使启动的容器实现不同的功能。

在一实施例中,在容器为实现dns功能的容器时,用于存储容器运行数据的文件为域名解析文件,容器运行过程中生成的运行数据为域名解析数据。

其中,这些生成的域名解析数据用于实现域名的解析,例如,在容器的配置文件中指定/var/named目录来存储域名解析数据,从而容器运行过程中生成的域名解析数据以域名解析文件的形式实时写入/var/named目录中。

步骤202:将用于存储容器运行数据的文件同步到目标节点的存储空间中,以使重启的容器中,从重启的容器所处的目标节点的存储空间中加载所述文件。

在一实施例中,如果本实施例中的第一节点为单一节点的情况,则目标节点为第一节点,可以通过挂载方式实现文件同步,即第一节点将用于存储容器运行数据的文件挂载到本节点的存储空间中。

其中,挂载过程相当于将用于存储容器运行数据的文件存储了一个备份到本节点的存储空间中,也即本节点的存储空间中存储的文件中的数据始终与容器中存储的文件中的数据一致。

在另一实施例中,如果第一节点位于包括多个节点的云平台集群中,则目标节点可以包括第一节点或其他节点两种情况:

如果目标节点为第一节点,则文件同步过程可以采用上述实施例描述的挂载方式实现,即第一节点将文件挂载到本节点的存储空间中。

如果目标节点为云平台集群中的其他节点,则在容器运行过程中,第一节点可以实时监控用于存储容器运行数据的文件是否有变化,如果有变化,则第一节点将该文件增量同步到其他节点的存储空间。

示例性的,可以通过在容器中启动一个进程,通过该进程来监控容器中的文件是否有新增、删除、修改等事件。

可以理解的是,为了保证目标节点和容器中的运行数据的一致性,用于存储容器运行数据的文件的变化可以包括新增、删除、修改等事件。也就是说,无论文件中有数据被删除,还是被修改,均会触发监控到文件有变化的流程。

需要说明的是,增量同步指的是将文件中发生变化的数据同步到目标节点的存储空间中,如果有新生成的容器运行数据,则将该容器运行数据和操作标识为新增的数据同步到目标节点上,如果有被删除的容器运行数据,则将该容器运行数据和操作标识为删除的数据同步到目标节点上,如果有被修改的容器运行数据,则将修改后的容器运行数据和操作标识为修改的数据同步到目标节点上。

在一些实施例中,在云平台集群中,每个节点上都维护有其他节点的私钥,从而各节点间可以免密登录访问,因此可以将第一节点中存储的其他节点的私钥挂载到容器中,以由容器获取到其他节点的地址后,利用其他节点的私钥与该其他节点建立连接,并由容器调用同步命令,并通过该连接将文件增量同步到其他节点的存储空间中,从而实现容器与其他节点之间的免密同步,无需在同步的过程中人为地输入其他节点的用户名和密码,即可自动进行数据同步传输。其中,针对由容器利用其他节点的地址和私钥与其他节点建立连接的过程,可以由容器利用其他节点的地址向其他节点发送连接请求,其他节点基于接收到的连接请求向容器发送经过加密的响应,从而容器利用其他节点的私钥对经过加密的响应进行解密,并将解密后的数据发送至该其他节点,其他节点验证加密前的响应与接收到的数据一致后,建立起用于免密传输的连接。

其中,上述所描述的容器与其他节点之间的免密传输连接的建立过程可以通过在容器中安装openssh安全传输工具实现,上述所描述的容器与其他节点之间的文件同步过程可以通过在容器中安装rsync数据同步工具实现。

此时,在容器的镜像文件中还包含有rsync数据同步工具和openssh安全传输工具,从而在用镜像文件启动容器过程中,可以将rsync数据同步工具和openssh安全传输工具固化到容器中运行。

进一步地,第一节点也可以每隔一定的周期执行一次同步,从而使其他节点中的文件能够和运行有容器的第一节点上的文件保持一致。

基于上述步骤201至步骤202的描述,再如上述图1所示,容器b首次创建时,节点1选择在节点2上创建,在容器b运行过程中,由于节点2上资源不足,导致容器b需要重启。此时节点1选择在节点3上重启容器b,由于容器b在节点2上运行过程中,会将用于存储容器运行数据的文件同步到目标节点(节点1、节点2和节点3)的存储空间中,因此即使容器b漂移到节点3上重启,容器b也可以从节点3的存储空间中将该文件加载到容器b中,容器b无需再进行一次生成过程,可以提升访问效率。

至此,完成上述图2所示流程,通过图2所示流程,在容器创建之后,通过将容器运行过程中产生的数据同步存储到目标节点的存储空间中,该目标节点可以是创建容器的节点或者其他节点,从而容器在目标节点重启后,能够重新从目标节点的存储空间中将数据加载到容器中,容器无需再进行一次生成过程,可以提升访问效率。

与容器运行数据同步方法的实施例相对应,本发明还提供了容器运行数据同步装置的实施例。

图3为本发明根据一示例性实施例示出的一种容器运行数据同步装置结构示意图,该容器运行数据同步装置可以应用在第一节点上,基于上述图2所示实施例的基础上,参见图3所示,该容器运行数据同步装置包括:

获取模块310,用于获取用于创建容器的配置文件;

创建模块320,用于根据所述配置文件在所述第一节点上创建容器;

同步模块330,用于将用于存储容器运行数据的文件同步到目标节点的存储空间中,以使重启的容器中,从重启的容器所处的目标节点的存储空间中加载所述文件。

在一可选实现方式中,所述目标节点为所述第一节点;

所述同步模块330,具体用于所述第一节点将用于存储容器运行数据的文件挂载到本节点的存储空间中。

在一可选实现方式中,所述第一节点位于包括多个节点的云平台集群中,所述目标节点包括第一节点和其他节点;

所述同步模块330,具体用于如果所述目标节点为第一节点,则所述第一节点将所述文件挂载到本节点的存储空间中;如果所述目标节点为其他节点,则在所述容器运行过程中,所述第一节点监控用于存储容器运行数据的文件是否有变化;如果有变化,则所述第一节点将所述文件增量同步到所述云平台集群中的其他节点的存储空间。

在一可选实现方式中,所述装置还包括(图3中未示出):

私钥挂载模块,用于在所述同步模块330将所述文件增量同步到所述云平台集群中的其他节点的存储空间之前,将所述第一节点本地存储的所述其他节点的私钥挂载到所述容器中;

所述同步模块330,具体用于由所述容器获取其他节点的地址,并利用其他节点的地址和私钥与其他节点建立连接;由所述容器调用同步命令,并通过该连接将所述文件增量同步到其他节点的存储空间。

在一可选实现方式中,所述同步模块330,具体用于在由所述容器利用其他节点的地址和私钥与其他节点建立连接过程中,由所述容器利用其他节点的地址向其他节点发送连接请求;由所述容器接收其他节点基于该连接请求返回的经过加密的响应;由所述容器利用其他节点的私钥对所述响应进行解密,并将解密后的数据发送至其他节点,以建立起用于免密传输的连接。

在一可选实现方式中,所述容器为实现域名系统dns功能的容器,所述文件为域名解析文件。

图4为本发明根据一示例性实施例示出的一种计算机设备的硬件结构图,该计算机设备即为上述实施例中的第一节点,其包括:通信接口401、处理器402、机器可读存储介质403和总线404;其中,通信接口401、处理器402和机器可读存储介质403通过总线404完成相互间的通信。处理器402通过读取并执行机器可读存储介质403中与容器运行数据同步方法的控制逻辑对应的机器可执行指令,可执行上文描述的容器运行数据同步方法,该方法的具体内容参见上述实施例,此处不再累述。

本发明中提到的机器可读存储介质403可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质403可以是ram(randomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1