容器镜像文件的下载方法、提供方法及设备技术

技术编号:19783245 阅读:31 留言:0更新日期:2018-12-15 12:52
本申请实施例提供了一种容器镜像文件的下载方法、提供方法及设备。该方法应用于第一容器节点中,第一容器节点包括容器引擎模块和代理模块,该方法包括:容器引擎模块发送第一获取请求;代理模块拦截第一获取请求,并通过点对点p2p方式从存储有容器镜像文件的目标容器节点获取容器镜像文件;代理模块向容器引擎模块发送容器镜像文件。在本申请实施例中,通过由代理模块通过p2p方式获取容器镜像文件,由于通过p2p方式获取容器镜像文件时无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。

【技术实现步骤摘要】
容器镜像文件的下载方法、提供方法及设备
本申请实施例涉及虚拟化
,特别涉及一种容器镜像文件的下载方法、提供方法及设备。
技术介绍
容器(container)技术是一种轻量级的虚拟化技术。在某一节点中部署容器时,先需要将该容器的容器镜像下载至该容器。容器镜像是指部署容器时所需的资源文件,包括操作系统、软件环境以及应用程序等内容。相关技术中,待部署容器的节点通过HTTPGET方式从容器云平台中获取容器镜像。该过程具体如下:待部署容器的节点向容器云平台发送超文本传输协议(HyperTextTransferProtocol,HTTP)请求,该HTTP请求用去请求获取容器镜像,容器云平台根据该HTTP请求从数据库中获取容器镜像,之后向上述待部署容器的节点发送获取到的容器镜像。相关技术中,当需要获取容器镜像的节点较多时,由于容器云平台的带宽、负载等限制,导致容器镜像的下载时间过长,甚至无法下载的情况发生,下载效率较低。
技术实现思路
本申请实施例提供了一种容器镜像文件的下载方法、提供方法及设备,可用于解决相关技术中下载容器镜像的效率较低的问题。一方面,本申请实施例提供了一种容器镜像文件的下载方法,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述方法包括:所述容器引擎模块发送第一获取请求,所述第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件;所述代理模块拦截所述第一获取请求,并通过p2p(peertopeer,点对点)方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;所述代理模块向所述容器引擎模块发送所述容器镜像文件。另一方面,本申请实施例提供了一种容器镜像文件的提供方法,应用于容器云平台中,所述方法包括:接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;获取所述中间文件;向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。再一方面,本申请实施例提供了一种容器镜像文件的下载装置,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述装置包括:所述容器引擎模块,用于发送第一获取请求,所述第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件;所述代理模块,用于拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;所述代理模块,用于向所述容器引擎模块发送所述容器镜像文件。又一方面,本申请实施例提供了一种容器镜像文件的下载装置,应用于容器云平台中,所述装置包括:请求接收模块,用于接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;文件获取模块,用于获取所述中间文件;文件发送模块,用于向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。又一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。又一方面,提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。本申请实施例提供的技术方案带来的有益效果至少包括:通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。附图说明图1是本申请一个实施例提供的实施环境的示意图;图2是本申请一个实施例提供的系统架构的示意图;图3是本申请一个实施例提供的容器镜像文件的下载方法的流程图;图4是本申请一个实施例提供的容器镜像文件的提供方法的流程图;图5是本申请另一个实施例提供的容器镜像文件的下载方法的流程图;图6是本申请一个实施例提供的局部随机下载的示意图;图7是本申请一个实施例提供的效果图;图8是本申请一个实施例提供的效果图;图9是本申请一个实施例提供的容器镜像文件的下载装置的框图;图10是本申请一个实施例提供的容器镜像文件的提供装置的框图;图11是本申请一个实施例提供的计算机设备的框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。请参考图1,其示出了本申请一个示例性实施例示出的实施环境的示意图。该实施环境包括:至少两个容器节点和容器云平台13、资源管理设备14。容器节点是用于部署容器的节点,其可以是物理节点(例如服务器),也可以是虚拟节点(例如虚拟机)。容器节点可以部署一个或多个容器。可选地,容器节点包括容器引擎(Dockerengine)模块以及代理(Agent)模块。其中,容器引擎模块用于对容器节点中部署的容器进行管理,比如创建容器、删除容器等等。代理模块用于通过p2p方式获取容器镜像文件。在本申请实施例中,至少两个容器节点中存在第一容器节点11和目标容器节点12。第一容器节点11是请求获取容器镜像文件的容器节点。目标容器节点12是向第一容器节点11提供容器镜像文件的容器节点。容器云平台13存储有容器镜像文件,以及容器镜像文件所对应的中间文件。中间文件中也可以称之为种子文件,其包括资源管理设备14的地址。可选地,容器云平台13可以包括文件下载模块、资源声明模块、文件获取接口。容器镜像文件的数量较为庞大,其通常不直接存储在云容器平台中,而是存储在后端存储设备中,文件下载模块用于从后端存储模块中获取容器镜像文件,文件下载模块也可以称之为blobupload。文件获取接口用于获取中间文件,也可以称之为gettorrent接口。当文件下载模块从后端存储设备中完成容器镜像文件的下载时,容器云平台13根据相关协议生成中间文件,当p2p方式为BT下载方式时,上述相关协议可以是BT协议。此外,资源声明模块用于向资源管理设备14声明容器云本文档来自技高网...

【技术保护点】
1.一种容器镜像文件的下载方法,其特征在于,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述方法包括:所述容器引擎模块发送第一获取请求,所述第一获取请求用于向容器云平台请求通过超文本传输协议HTTP方式获取容器镜像文件;所述代理模块拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;所述代理模块向所述容器引擎模块发送所述容器镜像文件。

【技术特征摘要】
1.一种容器镜像文件的下载方法,其特征在于,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述方法包括:所述容器引擎模块发送第一获取请求,所述第一获取请求用于向容器云平台请求通过超文本传输协议HTTP方式获取容器镜像文件;所述代理模块拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;所述代理模块向所述容器引擎模块发送所述容器镜像文件。2.根据权利要求1所述的方法,其特征在于,所述代理模块通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件,包括:所述代理模块通过所述容器云平台获取资源声明文件,所述资源声明文件用于指示所述目标容器节点的网络地址;所述代理模块根据所述目标容器节点的网络地址,从所述目标容器节点获取所述容器镜像文件。3.根据权利要求2所述的方法,其特征在于,所述代理模块通过所述容器云平台获取资源声明文件,包括:所述代理模块向所述容器云平台发送第二获取请求,所述第二获取请求用于请求获取中间文件;所述代理模块接收所述容器云平台发送的所述中间文件;所述代理模块对所述中间文件进行解析处理,得到所述资源声明文件的获取地址;所述代理模块根据所述资源声明文件的获取地址,获取所述资源声明文件。4.根据权利要求2所述的方法,其特征在于,所述容器镜像文件包括至少两个文件块,所述代理模块根据所述目标容器节点的网络地址,从所述目标容器节点获取所述容器镜像文件,包括:所述代理模块向所述目标容器节点发送文件获取请求,所述文件获取请求中携带有所述至少两个文件块分别对应的优先级,所述文件块对应的优先级用于指示发送所述文件块的顺序;所述代理模块接收所述目标容器节点按照所述至少两个文件块分别对应的优先级所指示的顺序发送的所述至少两个文件块。5.根据权利要求4所述的方法,其特征在于,所述代理模块向所述容器引擎模块发送所述容器镜像文件,包括:所述代理模块每接收到一个文件块时,向所述容器引擎模块发送接收到的所述文件块。6.根据权利要求4所述的方法,其特征在于,所述至少两个文件块按照在所述容器镜像文件中的位置划分为文件块组,所述文件块组包括优先级相同的文件块;所述代理模块根向所述容器引擎返回所述镜像文件,包括:所述代理模块在接收到优先级相同的所有文件块时,向所述容器引擎返回所述接收到的文件块。7.根据权利要求1至6...

【专利技术属性】
技术研发人员:王康瑾马林龚军罗韩梅
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1