一种面向边缘计算的容器镜像构建方法技术

技术编号:24613117 阅读:54 留言:0更新日期:2020-06-24 00:57
本发明专利技术涉及一种面向边缘计算的容器镜像构建方法,容器镜像构建方法至少包括如下步骤:镜像重构模块将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将索引和备用文件按照彼此单独存储的方式分别存储于镜像仓库与备用文件存储模块中;下载引擎模块将用于更新索引的配置信息从镜像仓库抓取至边缘端相应的容器中,以使得镜像文件查询模块基于配置信息查询本地文件共享模块以获取配置信息对应的本地共享文件,镜像文件查询模块能够从备用文件存储模块中下载基于配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器将基于配置信息记录到的本地共享文件和缺省文件上传至镜像重构模块,以匹配生成索引。

A method of container image construction for edge computing

【技术实现步骤摘要】
一种面向边缘计算的容器镜像构建方法
本专利技术涉及计算机应用系统
,尤其涉及一种面向边缘计算的容器镜像构建方法。
技术介绍
容器技术因为其快速启动、较小的资源开销以及轻量级的资源隔离,已经成为云环境中应用部署的实施标准。当前,容器因为其轻量的优点,也逐渐应用于边缘计算领域。但是边缘计算领域相比于云环境而言,网络宽带小,因此传统适用于云的占据大量网络带宽的容器镜像构建方法并不适用于边缘计算场景。例如,公开号为CN108399094A的中国专利公开的一种应用的部署方法、其部署装置及边缘数据中心。其通过虚拟机和容器两种虚拟化技术结合,实现了对不同安全等级的应用的部署,对请求部署应用的安全等级为高级时,采用容器在虚拟机中启动的方式进行部署,而对于请求部署应用的安全等级为低级时,采用容器在物理机上启动的方式进行部署;如此,将虚拟机的安全隔离性与容器的轻量快速部署的优势相结合,既保留了虚拟机的隔离性特点,又充分使用了容器快速高效部署应用的优势,为应用提供了不同级别的安全隔离性。容器镜像是启动容器实例的基础,包含了容器运行所需的所有数据。在启动容器实例之前,完整的容器镜像必须下载到本地。当前广泛使用的Docker容器框架采用了客户端-仓库端模型,客户端负责实际容器生命周期的管理,包括启动、暂停、恢复和销毁,仓库端负责集中存放需要部署的容器镜像,供客户端自由获取需要的镜像。Docker容器镜像采用分层结构,即一个容器镜像由多个镜像层组成,每个镜像层保存部分镜像数据,当需要启动容器实例的时候,使用联合文件系统将所有镜像层联合挂载至一个目录下,为容器实例提供完整的文件系统视图,使得容器能够正常运行。采用分层结构的优点在于当多个不同的镜像中存在相同的镜像层时,该镜像层不会下载多次,而是可以被多个镜像进行共享,这样既能够减少网络和存储资源的使用,也能够加快容器实例的部署速度。然而,用户在制作容器镜像时,往往会引入许多笔不要的数据,因而使得镜像体积远大于其实际使用到的数据的体积。而且,分层结构在使用时,由于其共享粒度过大而导致共享效果不佳。因此,这种分层结构在启动前必须下载完整镜像到本地的镜像格式,在实际使用过程中并不高效,这给将容器技术运用到边缘计算场景带来了极大的难题。目前,还缺乏一种面向边缘计算的容器镜像构建方法。此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于专利技术人做出本专利技术时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本专利技术不具备这些现有技术的特征,相反本专利技术已经具备现有技术的所有特征,而且申请人保留在
技术介绍
中增加相关现有技术之权利。
技术实现思路
针对现有技术之不足,本专利技术提供了一种面向边缘计算的容器镜像构建方法,所述容器镜像构架方法至少包括如下步骤:在云端,镜像重构模块将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块分别存储于镜像仓库与备用文件存储模块中;在边缘端,下载引擎模块将用于构建索引的配置信息从镜像仓库抓取至所述边缘端相应的容器中,以使得镜像文件查询模块基于所述配置信息查询本地文件共享模块以获取所述配置信息对应的本地共享文件,并且,所述镜像文件查询模块能够从备用文件存储模块中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块,以使得所述镜像重构模块能够将所述访问文件与所述配置信息匹配生成所述索引。根据一种优选的实施方式,将所述缺省文件和本地共享文件链接至该容器的私有目录存储模块中,为容器实例模块提供根目录挂载点;在容器实例模块请求目标文件的情况下,所述私有目录存储模块根据目标文件请求基于索引中的所述目标文件对应的哈希值,所述私有目录存储模块在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将所述目标文件加载至所述容器实例模块;否则,所述私有目录存储模块在本地文件共享模块查询是否存在以该哈希值命名的所述目标文件,如果存在,将所述目标文件链接到该索引的私有目录中,供容器实例模块加载;否则,所述镜像文件查询模块从备用文件存储模块中下载所述目标文件到本地文件共享模块,供容器实例模块加载。根据一种优选的实施方式,所述镜像重构模块至少按照如下重构子步骤将所述旧镜像重构为所述新镜像:联合挂载旧镜像,获取其完整的文件信息;遍历文件信息,将完整文件信息中的普通文件的内容提取出加以哈希运算,并以哈希值的方式替换普通文件的内容以生成所述备用文件,且以替换后的文件作为索引;获取旧镜像的配置信息,所述配置信息至少包括环境变量、暴露的端口号和数据卷信息,用于构建所述索引;使用所述服务器的服务功能,将服务处理中产生的访问文件信息和获取到的配置信息上传至所述镜像重构模块以更新所述索引。根据一种优选的实施方式,所述服务处理器按照如下方式构建所述索引,在基于配置信息服务之前,判定配置信息是否是首次引用;如果索引是非首次引用,则所述容器实例模块能够在不对索引更新的情况下以基于所述索引请求所述目标文件的方式启动容器而完成从所述索引的私有目录存储模块中的私有文件加载所述目标文件;如果索引是首次引用,则所述容器实例模块需要在所述镜像重构模块对该索引进行更新后以基于索引请求所述目标文件的方式启动容器而完成从所述索引的私有目录存储模块中的私有文件加载所述目标文件。根据一种优选的实施方式,在云端中,所述新镜像管理模块在所述镜像重构模块请求上传备用文件的情况下检索备用文件存储模块中已有的备用文件,以使得其能够按照不重复上传已有备用文件的方式将不存在于备用文件存储模块中上的备用文件传至备用文件存储模块中。根据一种优选的实施方式,在所述云端中,所述镜像重构模块响应于镜像监控模块从所述镜像仓库中识别到所述旧容器镜像而启动。根据一种优选的实施方式,所述服务处理器将缺省文件和访问到的本地共享文件发送至镜像重构模块;所述镜像重构模块将缺省文件和访问到的本地共享文件与配置信息匹配以更新索引;所述镜像管理模块将该索引存储至所述镜像仓库中。根据一种优选的实施方式,本专利技术还公开了一种面向边缘计算的容器镜像构建系统,以执行上述构建方法。本专利技术提供一种面向边缘计算的容器镜像构建方法和系统,至少具有根据下优势:(1)本专利技术通过按需获取的方法,在维持新镜像使用对用户透明的前提下,能够有效提高容器的部署效率,并降低网络资源的使用量以及客户端存储资源的使用量。(2)本专利技术通过将数据缓存在本地的方法,不同容器间如果需要访问相同数据,可以实现本地直接共享,进一步减少网络资源和存储资源的使用量。同时容器应用直接访问本地数据,保证容器应用的I/O性能。(3)本专利技术通过将原本的层级共享细化成文件级共享,细粒度的共享可以极大的减少镜像仓库的存储资源使用。附图说明图1是本专利技术提供的一种面向边缘计算的容器镜像构建系统的模块架构示意图;图2是本专利技术提本文档来自技高网
...

【技术保护点】
1.一种面向边缘计算的容器镜像构建方法,其特征在于,所述容器镜像构建方法至少包括如下步骤:/n在云端(100),镜像重构模块(100b)将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块(100a)分别存储于镜像仓库(100d)与备用文件存储模块(100e)中;/n在边缘端,首次部署时,下载引擎模块(200a)将索引从镜像仓库(100d)抓取至所述边缘端相应的容器(200)中,以使得容器实例模块(200b)基于所述索引中的配置信息查询本地文件共享模块(200f)以获取所述配置信息对应的本地共享文件,/n并且,所述镜像文件查询模块(200e)能够从备用文件存储模块(100e)中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器(200d)将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块(100b),以使得所述镜像重构模块(100b)能够将所述访问文件与所述配置信息匹配生成所述索引。/n

【技术特征摘要】
1.一种面向边缘计算的容器镜像构建方法,其特征在于,所述容器镜像构建方法至少包括如下步骤:
在云端(100),镜像重构模块(100b)将旧容器镜像重构以获取包含彼此对应的索引和备用文件的新容器镜像,并且将所述索引和所述备用文件按照彼此单独存储的方式由镜像管理模块(100a)分别存储于镜像仓库(100d)与备用文件存储模块(100e)中;
在边缘端,首次部署时,下载引擎模块(200a)将索引从镜像仓库(100d)抓取至所述边缘端相应的容器(200)中,以使得容器实例模块(200b)基于所述索引中的配置信息查询本地文件共享模块(200f)以获取所述配置信息对应的本地共享文件,
并且,所述镜像文件查询模块(200e)能够从备用文件存储模块(100e)中下载基于所述配置信息检索到的本地共享文件中不存在的缺省文件,服务处理器(200d)将基于所述配置信息记录到的本地共享文件和缺省文件上传至所述镜像重构模块(100b),以使得所述镜像重构模块(100b)能够将所述访问文件与所述配置信息匹配生成所述索引。


2.根据权利要求1所述的构建方法,其特征在于,将所述缺省文件和本地共享文件链接至该容器(200)的私有目录存储模块(200c)中,为容器实例模块(200b)提供根目录挂载点;
在容器实例模块(200b)请求目标文件的情况下,所述私有目录存储模块(200c)根据目标文件请求基于索引中的所述目标文件对应的哈希值,
所述私有目录存储模块(200c)在索引的私有目录中查询是否存在以该哈希值命名的目标文件,如果存在,将所述目标文件加载至所述容器实例模块(200b);
否则,所述私有目录存储模块(200c)在本地文件共享模块(200f)查询是否存在以该哈希值命名的所述目标文件,如果存在,将所述目标文件链接到该索引的私有目录中,供容器实例模块(200b)加载;
否则,所述镜像文件查询模块(200e)从备用文件存储模块(100e)中下载所述目标文件到本地文件共享模块(200f),供容器实例模块(200b)加载。


3.根据权利要求1或2所述的构建方法,其特征在于,所述镜像重构模块(100b)至少按照如下重构子步骤将所述旧镜像重构为所述新镜像:
联合挂载旧镜像,获取其完整的文件信息;
遍历文件信息,将完整文件信息中的普通文件的内容提取出加以哈希运算,并以哈希值的方式替换普通文件的内容以生成所述备用文件,且以替换后的文件作为索引;
获取旧镜像的配置信息,所述配置信息至少包括环境变量、暴露的端口号和数据卷信息,用于构建所述索引;
使用所述服务器(200d)的服务功能,将服务处理中产生的访问文件信息和获取到的配置信息上传至所述镜像重构模块(100b)以构建所述索引。


4.根据前述权利要求之一所述的构建方法,其特征在于,所述服务处理器(200d)按照如下方式更新所述索引,在基于配置信息服务之前,判定配置信息是否是首次引用;
如果索引是非首次引用,则所述容器实例模块(200b)能够在不对索引更新的情况下以基于所述索引请求所述目标文件的方式启动容器(200)而完成从所述索引的私有目录存储模块(200c)中的私有文件加载所述目标文件;
如果索引是首次引用,则所述容器实例模块(200b)需要在所述镜像重构模块(100b)对该索引进行更新后以基于索引请求所述目标文件的方式启动容器(200)而完成从所述索引的私有目录存储模块(200c)中的私有文件加载所述目标文件。


5.根据前述权利要求之一所述的构建方法,其特征在于,在云端(100)中,所述新镜像管理模块(100c)在所述镜像重构模块(...

【专利技术属性】
技术研发人员:吴松卞盛伟金海樊浩
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1