CN109005232A - 容器镜像文件的下载方法、提供方法及设备 - Google Patents
容器镜像文件的下载方法、提供方法及设备 Download PDFInfo
- Publication number
- CN109005232A CN109005232A CN201810908030.0A CN201810908030A CN109005232A CN 109005232 A CN109005232 A CN 109005232A CN 201810908030 A CN201810908030 A CN 201810908030A CN 109005232 A CN109005232 A CN 109005232A
- Authority
- CN
- China
- Prior art keywords
- container
- file
- image file
- proxy module
- node
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种容器镜像文件的下载方法、提供方法及设备。该方法应用于第一容器节点中,第一容器节点包括容器引擎模块和代理模块,该方法包括:容器引擎模块发送第一获取请求;代理模块拦截第一获取请求,并通过点对点p2p方式从存储有容器镜像文件的目标容器节点获取容器镜像文件;代理模块向容器引擎模块发送容器镜像文件。在本申请实施例中,通过由代理模块通过p2p方式获取容器镜像文件,由于通过p2p方式获取容器镜像文件时无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
Description
技术领域
本申请实施例涉及虚拟化技术领域,特别涉及一种容器镜像文件的下载方法、提供方法及设备。
背景技术
容器(container)技术是一种轻量级的虚拟化技术。在某一节点中部署容器时,先需要将该容器的容器镜像下载至该容器。容器镜像是指部署容器时所需的资源文件,包括操作系统、软件环境以及应用程序等内容。
相关技术中,待部署容器的节点通过HTTPGET方式从容器云平台中获取容器镜像。该过程具体如下:待部署容器的节点向容器云平台发送超文本传输协议(HyperTextTransfer Protocol,HTTP)请求,该HTTP请求用去请求获取容器镜像,容器云平台根据该HTTP请求从数据库中获取容器镜像,之后向上述待部署容器的节点发送获取到的容器镜像。
相关技术中,当需要获取容器镜像的节点较多时,由于容器云平台的带宽、负载等限制,导致容器镜像的下载时间过长,甚至无法下载的情况发生,下载效率较低。
发明内容
本申请实施例提供了一种容器镜像文件的下载方法、提供方法及设备,可用于解决相关技术中下载容器镜像的效率较低的问题。
一方面,本申请实施例提供了一种容器镜像文件的下载方法,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述方法包括:
所述容器引擎模块发送第一获取请求,所述第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件;
所述代理模块拦截所述第一获取请求,并通过p2p(peer topeer,点对点)方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;
所述代理模块向所述容器引擎模块发送所述容器镜像文件。
另一方面,本申请实施例提供了一种容器镜像文件的提供方法,应用于容器云平台中,所述方法包括:
接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;
获取所述中间文件;
向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。
再一方面,本申请实施例提供了一种容器镜像文件的下载装置,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述装置包括:
所述容器引擎模块,用于发送第一获取请求,所述第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件;
所述代理模块,用于拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;
所述代理模块,用于向所述容器引擎模块发送所述容器镜像文件。
又一方面,本申请实施例提供了一种容器镜像文件的下载装置,应用于容器云平台中,所述装置包括:
请求接收模块,用于接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;
文件获取模块,用于获取所述中间文件;
文件发送模块,用于向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。
又一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。
又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。
又一方面,提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的容器镜像文件的下载方法,或者,如上述方面所述的容器镜像文件的提供方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
附图说明
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的系统架构的示意图;
图3是本申请一个实施例提供的容器镜像文件的下载方法的流程图;
图4是本申请一个实施例提供的容器镜像文件的提供方法的流程图;
图5是本申请另一个实施例提供的容器镜像文件的下载方法的流程图;
图6是本申请一个实施例提供的局部随机下载的示意图;
图7是本申请一个实施例提供的效果图;
图8是本申请一个实施例提供的效果图;
图9是本申请一个实施例提供的容器镜像文件的下载装置的框图;
图10是本申请一个实施例提供的容器镜像文件的提供装置的框图;
图11是本申请一个实施例提供的计算机设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个示例性实施例示出的实施环境的示意图。该实施环境包括:至少两个容器节点和容器云平台13、资源管理设备14。
容器节点是用于部署容器的节点,其可以是物理节点(例如服务器),也可以是虚拟节点(例如虚拟机)。容器节点可以部署一个或多个容器。可选地,容器节点包括容器引擎(Docker engine)模块以及代理(Agent)模块。其中,容器引擎模块用于对容器节点中部署的容器进行管理,比如创建容器、删除容器等等。代理模块用于通过p2p方式获取容器镜像文件。
在本申请实施例中,至少两个容器节点中存在第一容器节点11和目标容器节点12。第一容器节点11是请求获取容器镜像文件的容器节点。目标容器节点12是向第一容器节点11提供容器镜像文件的容器节点。
容器云平台13存储有容器镜像文件,以及容器镜像文件所对应的中间文件。中间文件中也可以称之为种子文件,其包括资源管理设备14的地址。可选地,容器云平台13可以包括文件下载模块、资源声明模块、文件获取接口。容器镜像文件的数量较为庞大,其通常不直接存储在云容器平台中,而是存储在后端存储设备中,文件下载模块用于从后端存储模块中获取容器镜像文件,文件下载模块也可以称之为blobupload。文件获取接口用于获取中间文件,也可以称之为gettorrent接口。当文件下载模块从后端存储设备中完成容器镜像文件的下载时,容器云平台13根据相关协议生成中间文件,当p2p方式为BT下载方式时,上述相关协议可以是BT协议。此外,资源声明模块用于向资源管理设备14声明容器云平台13中存储有容器镜像文件,该过程可以称之为seeding。
资源管理设备14用于存储资源声明文件,资源声明文件包括存储有不同容器镜像文件的不同设备的网络地址。上述设备可以是容器云平台13,也可以是容器节点。当p2p方式为BT下载方式时,资源管理设备14可以称之为BT tracker。
另外,需要说明的是,容器云平台13与资源管理设备14可以是同一设备,也可以是不同的设备。当某一设备既能够实现容器云平台13所具备的功能,也能够实现资源管理设备14所具备的功能时,则容器云平台13与资源管理设备14可以是同一设备。
在一个具体地例子中,结合参考图2,其示出了本申请一个示例性实施例示出的系统架构的示意图。该系统架构中包括p2p注册表(p2p registry)、共享存储器(SharedStorage)、容器节点、BT追踪设备(BT tracker)。
p2p registry包括存储驱动器(storage Driver)、HTTP服务器(HTTP server)、BT模块。storage Driver用于从shared storage中获取容器镜像文件(blob)以及相应的种子文件(torrent)。HTTP server用于接收BT模块发送的获取种子文件的请求。BT模块用于向BT tracker声明p2p registry中存储有容器镜像文件。
Shared Storage用于存储容器镜像文件以及相应的种子文件。
容器节点包括代理模块(Agent)与容器引擎模块(Docker Engine)。代理模块包括BT子模块与过滤子模块(filter)。过滤子模块用于拦截容器引擎模块发送的获取容器镜像文件的请求;BT子模块用于向BT tracker声明容器节点中存储有容器镜像文件,并用于获取BT tracker中的资源声明文件。容器引擎模块用于发送获取容器镜像文件的请求。
BT tracker用于管理资源声明文件,包括更新、删除、新建资源声明文件等等。此外,BT tracker还用于向各个容器节点提供资源声明文件。
在本申请实施例中,通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
请参考图3,其示出了本申请一个示例性实施例示出的容器镜像文件的下载方法的流程图。该方法可以应用于第一容器节点中,第一容器节点包括容器引擎模块和代理模块,该方法可以包括如下几个步骤:
步骤301,容器引擎模块发送第一获取请求。
第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件。第一获取请求携带有第一容器节点的标识,以及第一获取请求所请求的容器镜像文件的标识。可选地,第一获取请求所请求的容器镜像文件的标识可以根据用户选择创建的容器实际确定。
容器镜像文件是指部署容器时所需的资源文件。容器镜像文件可以是一个,也可以是多个。当多个容器镜像文件用于部署同一容器时,其可以称为容器镜像层文件。
可选地,第一容器节点显示有容器创建页面,容器创建页面包括容器创建选项,当用户触发该容器创建选项时,容器引擎模块发送第一获取请求。
步骤302,代理模块拦截第一获取请求,并通过点对点p2p方式从存储有容器镜像文件的目标容器节点获取容器镜像文件。
在本申请实施例中,第一获取请求对应的目的地址是云容器平台的地址。第一获取请求在发送至云容器平台的过程中需要多个中间节点进行转发。其中,代理模块是其中的一个中间节点。然而,代理模块在接收到第一获取请求时,并不会执行后续的转发步骤,也即拦截第一获取请求。
P2p方式是指一种数据传输方式。该数据传输方式无需经过服务器,而是各个在网络用户之间直接传递数据。P2p方式可以是BT(Bit Torrent)下载方式,在本申请实施例中,第一容器平台所接收的容器镜像文件并非由容器云平台发送的,而是由存储有第一获取请求所请求的容器镜像文件的目标容器节点发送的。目标容器节点可以是一个,也可以是多个,本申请实施例对目标容器节点的数量不作限定。目标容器节点中存储有第一获取请求所请求的容器镜像文件。
步骤303,代理模块向容器引擎模块发送容器镜像文件。
代理模块在接收到目标容器节点发送的容器镜像文件之后,向容器引擎模块返回上述容器镜像文件,以响应容器引擎模块发送的第一获取请求。
相应地,容器引擎模块接收代理模块发送的容器镜像文件。
综上所述,本申请实施例提供的技术方案,通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
请参考图4,其示出了本申请一个示例性实施例示出的容器镜像文件的提供方法的流程图。该方法可以应用于容器云平台,该方法可以包括如下几个步骤:
步骤401,接收第一容器节点中的代理模块发送的第二获取请求。
第二获取请求用于请求获取中间文件。第二获取请求携带有容器镜像文件的标识和第一容器节点的标识。中间文件包括资源声明文件的获取地址。资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址。
可选地,代理模块在拦截到容器云平台中的容器引擎模块发送的第一获取请求后,向容器云平台发送第二获取请求。第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件。
步骤402,获取中间文件。
中间文件用于指示资源声明文件的获取地址。容器云平台直接从后端存储设备中获取中间文件。
另外,需要说明得是,容器云平台在获取中间文件的同时,也可以获取容器镜像文件。当容器云平台获取容器镜像文件时,容器云平台还会向资源管理设备发送资源更新声明,该资源更新声明用于向资源管理设备声明容器云平台中存储有容器镜像文件,之后第一容器节点可以其它存储有该容器镜像文件的目标容器节点中获取该容器镜像文件,也可以从容器云平台中获取该容器镜像文件。该过程可以称之为seeding,容器云平台中的文件获取接口调用资源声明模块完成该过程。该过程涉及的算法可以参考下列表-1。
表-1
另外,在本申请实施例中,容器云平台可以在下载容器镜像文件的过程中向资源管理设备发送资源更新声明,而无须等到容器镜像文件被下载完成后才向资源管理设备发送资源更新声明,避免代理模块获取资源声明文件所需的时间过长,从而提高容器镜像文件的下载效率。该过程涉及的算法可以参考下列表-2。
表-2
步骤403,向第一容器节点中的代理模块发送中间文件,以使得代理模块根据中间文件获取资源声明文件,并根据资源声明文件从目标容器节点中获取容器镜像文件。
相应地,第一容器节点中的代理模块接收云容器平台发送的资源声明文件。
综上所述,本申请实施例提供的技术方案,通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
请参考图5,其示出了本申请一个实施例示出的容器镜像文件的下载方法。该方法可以应用于图1所示实施环境中,该方法包括如下几个步骤:
步骤501,容器引擎模块发送第一获取请求。
第一获取请求用于向容器云平台请求通过HTTP方式获取容器镜像文件。
步骤502,代理模块拦截第一获取请求。
步骤503,代理模块向容器云平台发送第二获取请求。
第二获取请求用于请求获取中间文件。第二获取请求用于请求获取中间文件。第二获取请求中携带有容器镜像文件的标识和第一容器节点的标识。
步骤504,容器云平台获取中间文件。
步骤505,容器云平台向代理模块发送中间文件。
相应地,代理模块接收容器云平台发送的中间文件。
步骤506,代理模块对中间文件进行解析处理,得到资源声明文件的获取地址。
资源声明文件用于指示目标容器节点的网络地址。资源声明文件的获取地址也即是资源管理设备的网络地址。
步骤507,代理模块根据资源声明文件的获取地址,获取资源声明文件。
代理模块在获取到资源声明文件的获取地址,之后向该获取地址发送第三获取请求,第三获取请求携带有容器镜像文件的标识和第一容器节点的标识。
资源声明文件的获取地址对应的设备(也即资源管理设备)根据第三获取请求向代理模块返回资源声明文件。
需要说明的是,在其它可能的实现方式中,若容器云平台与资源管理设备为同一设备,步骤504至步骤507可以替代实现为:该设备先获取中间文件,之后对中间文件进行解析,得到资源声明文件的获取地址,并根据资源声明文件的获取地址,获取资源声明文件,之后直接向代理模块发送资源声明文件。
步骤508,代理模块向目标容器节点发送文件获取请求。
文件获取请求用于向目标容器节点请求容器镜像文件。文件获取请求中携带有第一容器节点的标识和容器镜像文件的标识。在本申请实施例中,容器镜像文件可以包括至少两个文件块,文件获取请求中还携带有至少两个文件块分别对应的优先级。
文件块对应的优先级可以根据该文件块在容器镜像文件中的位置实际确定。文件块在容器镜像文件中的位置越靠前,则该文件块的优先级越高;文件块在容器镜像文件中的位置越靠后,则该文件快的优先级越低。在一种可能的实现方式中,至少两个文件块对应的优先级互不相同。在另一种可能的实现方式中,至少两个文件块中存在优先级相同的文件块,上述优先级相同的文件块在容器镜像文件中的位置是相邻的。另外,本申请实施例对优先级相同的文件块的数量不作限定。
文件块对应的优先级用于指示发送文件块的顺序。文件块对应的优先级越高,则发送该文件块的顺序越靠前;文件块对应的优先级越低,则发送该文件块的顺序越靠后。而对于优先级相同的文件块,本申请实施例对发送上述优先级相同的文件块的顺序不作限定。
由于优先级相同的文件块的数量通常小于容器镜像文件所包括的文件块的数量,因此目标容器节点可以随机发送容器镜像文件中的部分文件块。该种方式可以称之为“局部随机策略”。该过程涉及的算法可以参考表-3。
表-3
步骤509,目标容器节点按照至少两个文件块分别对应的优先级所指示的顺序向代理模块发送至少两个文件块。
当至少两个文件块分别对应的优先级互不相同时,目标容器节点按照至少两个文件块分别对应的优先级的高低顺序,顺次向代理模块发送至少两个文件块。当至少两个文件块中存在优先级相同的文件块时,本申请实施例对目标容器节点发送优先级相同的文件块的顺序不作限定。示例性地,文件块1、文件块2的优先级相同,则目标容器节点可以先向代理模块发送文件块1,也可以先向代理模块发送文件块2。
相应地,代理模块接收目标容器节点按照至少两个文件块分别对应的优先级所指示的顺序发送的至少两个文件块。
步骤510,代理模块向容器引擎模块发送容器镜像文件。
代理模块可以在接收到容器镜像文件所包括的全部文件块时向容器引擎模块发送容器镜像文件,也可以在接收到容器镜像文件中所包括的部分文件块时,向容器引擎模块发送已接收到的文件块。
在一个示例中,当至少两个文件块分别对应的优先级互不相同时,代理模块每接收到一个文件块,就向容器引擎模块发送接收到的文件块。在另一个示例中,当至少两个文件块中存在优先级相同的文件块时,代理模块在接收到优先级相同的全部文件块时,向容器引擎模块发送接收到的文件块。另外,需要说明的是,代理模块在向容器引擎模块发送优先级相同的文件块时,需要按照文件块在容器镜像文件中的顺序依次发送。
结合参考图6,其示出了本申请一个实施例示出的局部随机策略的示意图。P2pregistry从后端存储设备中按照容器镜像文件所包括的文件块的顺序依次读取文件块;而代理模块在请求文件块时,文件块1、文件块2和文件块3的优先级相同,文件块4、文件块5和文件块6的优先级相同,代理模块先随机接收文件1、文件块2和文件块3,并读取接收到的文件块,之后将上述接收到的文件块按照文件块在容器镜像文件中的顺序发送至容器引擎模块,并随机接收后续的文件块4、文件块5和文件块6,之后将上述接收到的文件块按照文件块在容器镜像文件中的顺序发送至容器引擎模块,最后获取文件块7,并将文件块7发送至容器引擎模块。
可选地,在代理模块下载完成容器镜像文件之后,还可以向资源声明文件的获取地址所对应的设备发送下载完成通知。
资源声明文件的获取地址所对应的设备也即是资源管理设备。
下载完成通知用于指示容器镜像文件已成功下载。再在完成通知携带有容器镜像文件的标识与第一容器节点的标识。下载完成通知用于指示资源声明文件的获取地址所对应的设备更新资源声明文件。
资源管理设备在接收到下载完成通知之后,在资源声明文件中声明第一容器节点中也存储有容器镜像文件,并记录第一容器节点的网络地址。后续其它容器节点可以根据资源声明文件从第一容器节点中获取容器镜像文件。
相应地,资源声明文件的获取地址所对应的设备接收代理模块发送的下载完成通知。
本申请实施例提供的技术方案,在多个容器节点并发请求获取容器镜像文件时,各个容器节点获取容器镜像文件的效率得到明显提升。
结合参考图7,其示出了本申请一个实施例示出的效果图。线条1表示通过本申请实施例提供的技术方案获取数据量为30M的容器镜像文件;线条2表示通过本申请实施例提供的技术方案获取数据量为200M的容器镜像文件;线条3用于表示通过相关技术提供的方法获取数据量为30M的容器镜像文件;线条3用于表示通过相关技术提供的方法获取数据量为200M的容器镜像文件。
结合参考图8,其示出了本申请另一个示例性实施例示出的效果图。线条1表示通过本申请实施例提供的技术方案获取数据量为500M的容器镜像文件;线条2表示通过本申请实施例提供的技术方案获取数据量为1G的容器镜像文件;线条3用于表示通过相关技术提供的方法获取数据量为500M的容器镜像文件;线条3用于表示通过相关技术提供的方法获取数据量为1G的容器镜像文件。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图9,其示出了本申请一个实施例提供的容器镜像文件的下载装置的框图。该装置应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,具有实现上述方法示例中第一容器节点一侧的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:容器引擎模块901和代理模块902。
所述容器引擎模块901,用于发送第一获取请求,所述第一获取请求用于向容器云平台请求通过超文本传输协议HTTP方式获取容器镜像文件。
所述代理模块902,用于拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件。
所述代理模块902,用于向所述容器引擎模块发送所述容器镜像文件。
综上所述,本申请实施例提供的技术方案,通过由代理模块拦截容器引擎模块所发送的容器镜像文件的获取请求,并按照p2p方式获取容器镜像文件,之后再向代理模块发送容器镜像文件,由于在p2p方式下,代理模块并非从容器云平台获取容器镜像文件,而是从存储有容器镜像文件的其它容器节点中获取镜像文件,无需受到容器云平台的带宽、负载等限制,此外,由于容器引擎模块请求容器镜像文件的请求方式并没有改变,因此可以在用户没有感知的条件下,提高获取容器镜像文件的效率。
在基于图9所示实施例提供的一个可选实施例中,所述代理模块902,用于:
通过所述容器云平台获取资源声明文件,所述资源声明文件用于指示所述目标容器节点的网络地址;
根据所述目标容器节点的网络地址,从所述目标容器节点获取所述容器镜像文件。
可选地,所述代理模块902,用于:
向所述容器云平台发送第二获取请求,所述第二获取请求用于请求获取中间文件;
接收所述容器云平台发送的所述中间文件;
对所述中间文件进行解析处理,得到所述资源声明文件的获取地址;
根据所述资源声明文件的获取地址,获取所述资源声明文件。
可选地,所述代理模块902,用于:
向所述目标容器节点发送文件获取请求,所述文件获取请求中携带有所述至少两个文件块分别对应的优先级,所述文件块对应的优先级用于指示发送所述文件块的顺序;
接收所述目标容器节点按照所述至少两个文件块分别对应的优先级所指示的顺序发送的所述至少两个文件块。
可选地,所述代理模块902,用于每接收到一个文件块时,向所述容器引擎模块发送接收到的所述文件块。
可选地,所述至少两个文件块按照在所述容器镜像文件中的位置划分为文件块组,所述文件块组包括优先级相同的文件块;所述代理模块902,用于在接收到优先级相同的所有文件块时,向所述容器引擎返回所述接收到的文件块。
在基于图9所示实施例提供的另一个可选实施例中,所述代理模块902,还用于向资源声明文件的获取地址所对应的设备发送下载完成通知,所述下载完成通知用于指示所述容器镜像文件已成功下载,所述下载完成通知用于指示所述资源声明文件的获取地址所对应的设备更新所述资源声明文件。
请参考图10,其示出了本申请一个实施例提供的容器镜像文件的提供装置的框图。该装置应用于云容器平台中,具有实现上述方法示例中云容器平台一侧的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:请求接收模块1001、文件获取模块1002和文件发送模块1003。
请求接收模块1001,用于接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址。
文件获取模块1002,用于获取所述中间文件。
文件发送模块1003,用于向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。
请参考图11,其示出了本发明一个实施例提供的电子设备的结构示意图。该电子设备可以是服务器。该电子设备用于实施上述实施例中的容器镜像文件的下载方法,或者,容器镜像文件的提供方法。具体来讲:
电子设备1100包括中央处理单元(CPU)1101、包括随机存取存储器(RAM)1102和只读存储器(ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。电子设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。大容量存储设备1107及其相关联的计算机可读介质为电子设备1100提供非易失性存储。也就是说,大容量存储设备1107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本发明的各种实施例,电子设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即电子设备1100可以通过连接在系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述容器镜像文件的下载方法,或者,容器镜像文件的提供方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由电子设备的处理器加载并执行以实现上述方法实施例中的容器镜像文件的下载方法,或者,容器镜像文件的提供方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
又一方面,提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的容器镜像文件的下载方法,或者,上述方面所述的容器镜像文件的提供方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本文中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种容器镜像文件的下载方法,其特征在于,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述方法包括:
所述容器引擎模块发送第一获取请求,所述第一获取请求用于向容器云平台请求通过超文本传输协议HTTP方式获取容器镜像文件;
所述代理模块拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;
所述代理模块向所述容器引擎模块发送所述容器镜像文件。
2.根据权利要求1所述的方法,其特征在于,所述代理模块通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件,包括:
所述代理模块通过所述容器云平台获取资源声明文件,所述资源声明文件用于指示所述目标容器节点的网络地址;
所述代理模块根据所述目标容器节点的网络地址,从所述目标容器节点获取所述容器镜像文件。
3.根据权利要求2所述的方法,其特征在于,所述代理模块通过所述容器云平台获取资源声明文件,包括:
所述代理模块向所述容器云平台发送第二获取请求,所述第二获取请求用于请求获取中间文件;
所述代理模块接收所述容器云平台发送的所述中间文件;
所述代理模块对所述中间文件进行解析处理,得到所述资源声明文件的获取地址;
所述代理模块根据所述资源声明文件的获取地址,获取所述资源声明文件。
4.根据权利要求2所述的方法,其特征在于,所述容器镜像文件包括至少两个文件块,所述代理模块根据所述目标容器节点的网络地址,从所述目标容器节点获取所述容器镜像文件,包括:
所述代理模块向所述目标容器节点发送文件获取请求,所述文件获取请求中携带有所述至少两个文件块分别对应的优先级,所述文件块对应的优先级用于指示发送所述文件块的顺序;
所述代理模块接收所述目标容器节点按照所述至少两个文件块分别对应的优先级所指示的顺序发送的所述至少两个文件块。
5.根据权利要求4所述的方法,其特征在于,所述代理模块向所述容器引擎模块发送所述容器镜像文件,包括:
所述代理模块每接收到一个文件块时,向所述容器引擎模块发送接收到的所述文件块。
6.根据权利要求4所述的方法,其特征在于,所述至少两个文件块按照在所述容器镜像文件中的位置划分为文件块组,所述文件块组包括优先级相同的文件块;所述代理模块根向所述容器引擎返回所述镜像文件,包括:
所述代理模块在接收到优先级相同的所有文件块时,向所述容器引擎返回所述接收到的文件块。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述代理模块根据所述第一获取请求向所述容器引擎返回所述镜像文件之后,还包括:
所述代理模块向资源声明文件的获取地址所对应的设备发送下载完成通知,所述下载完成通知用于指示所述容器镜像文件已成功下载,所述下载完成通知用于指示所述资源声明文件的获取地址所对应的设备更新所述资源声明文件。
8.一种容器镜像文件的提供方法,其特征在于,应用于容器云平台中,所述方法包括:
接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;
获取所述中间文件;
向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。
9.一种容器镜像文件的下载装置,其特征在于,应用于第一容器节点中,所述第一容器节点包括容器引擎模块和代理模块,所述装置包括:
所述容器引擎模块,用于发送第一获取请求,所述第一获取请求用于向容器云平台请求通过超文本传输协议HTTP方式获取容器镜像文件;
所述代理模块,用于拦截所述第一获取请求,并通过点对点p2p方式从存储有所述容器镜像文件的目标容器节点获取所述容器镜像文件;
所述代理模块,用于向所述容器引擎模块发送所述容器镜像文件。
10.一种容器镜像文件的提供装置,其特征在于,应用于容器云平台中,所述装置包括:
请求接收模块,用于接收第一容器节点中的代理模块发送的第二获取请求,所述第二获取请求用于请求获取中间文件,所述中间文件包括资源声明文件的获取地址,所述资源声明文件用于指示存储有容器镜像文件的目标容器节点的网络地址;
文件获取模块,用于获取所述中间文件;
文件发送模块,用于向所述第一容器节点中的代理模块发送所述中间文件,以使得所述代理模块根据所述中间文件获取所述资源声明文件,并根据所述资源声明文件从所述目标容器节点中获取所述容器镜像文件。
11.一种计算机设备,其特征在所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一项所述的容器镜像文件的下载方法,或者,如权利要8所述的容器镜像文件的提供方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810908030.0A CN109005232A (zh) | 2018-08-10 | 2018-08-10 | 容器镜像文件的下载方法、提供方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810908030.0A CN109005232A (zh) | 2018-08-10 | 2018-08-10 | 容器镜像文件的下载方法、提供方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109005232A true CN109005232A (zh) | 2018-12-14 |
Family
ID=64595808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810908030.0A Pending CN109005232A (zh) | 2018-08-10 | 2018-08-10 | 容器镜像文件的下载方法、提供方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109005232A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111131487A (zh) * | 2019-12-30 | 2020-05-08 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及系统 |
CN111459611A (zh) * | 2020-03-27 | 2020-07-28 | 新浪网技术(中国)有限公司 | 针对Kubernetes系统的镜像拉取方法及装置 |
WO2020207267A1 (zh) * | 2019-04-08 | 2020-10-15 | 阿里巴巴集团控股有限公司 | 网络系统、镜像管理方法、设备及存储介质 |
CN112019643A (zh) * | 2020-10-30 | 2020-12-01 | 杭州朗澈科技有限公司 | Docker镜像下载方法及系统 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112653717A (zh) * | 2019-10-11 | 2021-04-13 | 达闼科技(北京)有限公司 | 一种多云协作分布式系统和应用分发的方法 |
US11709665B2 (en) | 2021-04-01 | 2023-07-25 | Red Hat, Inc. | Hybrid approach to performing a lazy pull of container images |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836822A (zh) * | 2014-02-10 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 获取下载数据方法及装置、下载数据的方法及系统 |
CN105187905A (zh) * | 2015-09-19 | 2015-12-23 | 北京暴风科技股份有限公司 | 一种基于dlna边下边播p2p视频的方法 |
US20170048079A1 (en) * | 2015-08-12 | 2017-02-16 | Cisco Technology, Inc. | Distributed application hosting environment to mask heterogeneity |
CN108322496A (zh) * | 2017-01-17 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 镜像文件分发方法及系统、计算机可读存储介质、电子设备 |
-
2018
- 2018-08-10 CN CN201810908030.0A patent/CN109005232A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836822A (zh) * | 2014-02-10 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 获取下载数据方法及装置、下载数据的方法及系统 |
US20170048079A1 (en) * | 2015-08-12 | 2017-02-16 | Cisco Technology, Inc. | Distributed application hosting environment to mask heterogeneity |
CN105187905A (zh) * | 2015-09-19 | 2015-12-23 | 北京暴风科技股份有限公司 | 一种基于dlna边下边播p2p视频的方法 |
CN108322496A (zh) * | 2017-01-17 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 镜像文件分发方法及系统、计算机可读存储介质、电子设备 |
Non-Patent Citations (1)
Title |
---|
云效平台: "直击阿里双11神秘技术:PB级大规模文件分发系统"蜻蜓",https://yq.aliyun.com/articles/244897", 《阿里云》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800442B (zh) * | 2019-04-08 | 2022-10-28 | 阿里巴巴集团控股有限公司 | 网络系统、镜像管理方法、设备及存储介质 |
CN115633050B (zh) * | 2019-04-08 | 2023-08-04 | 阿里巴巴集团控股有限公司 | 镜像管理方法、设备及存储介质 |
WO2020207267A1 (zh) * | 2019-04-08 | 2020-10-15 | 阿里巴巴集团控股有限公司 | 网络系统、镜像管理方法、设备及存储介质 |
CN111800442A (zh) * | 2019-04-08 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 网络系统、镜像管理方法、设备及存储介质 |
CN115633050A (zh) * | 2019-04-08 | 2023-01-20 | 阿里巴巴集团控股有限公司 | 镜像管理方法、设备及存储介质 |
CN112653717A (zh) * | 2019-10-11 | 2021-04-13 | 达闼科技(北京)有限公司 | 一种多云协作分布式系统和应用分发的方法 |
CN112653717B (zh) * | 2019-10-11 | 2023-04-07 | 达闼科技(北京)有限公司 | 一种多云协作分布式系统和应用分发的方法 |
CN111131487A (zh) * | 2019-12-30 | 2020-05-08 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及系统 |
CN111459611A (zh) * | 2020-03-27 | 2020-07-28 | 新浪网技术(中国)有限公司 | 针对Kubernetes系统的镜像拉取方法及装置 |
CN112019643A (zh) * | 2020-10-30 | 2020-12-01 | 杭州朗澈科技有限公司 | Docker镜像下载方法及系统 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112383606B (zh) * | 2020-11-09 | 2023-12-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
US11709665B2 (en) | 2021-04-01 | 2023-07-25 | Red Hat, Inc. | Hybrid approach to performing a lazy pull of container images |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109005232A (zh) | 容器镜像文件的下载方法、提供方法及设备 | |
US10515058B2 (en) | Unified file and object data storage | |
CN103248684B (zh) | 一种互联网中资源获取方法和装置 | |
US20140059217A1 (en) | Method for content change notification in a cloud storage system, a corresponding cloud broker and cloud agent | |
KR101885408B1 (ko) | 예측 다층 캐싱 아키텍처들 | |
CN110308917B (zh) | 小程序发布方法、装置、设备及计算机存储介质 | |
CN110493350A (zh) | 文件上传方法和装置、电子设备和计算机可读介质 | |
JP2012104063A (ja) | サービス処理装置、サービス処理システム及びプログラム | |
KR101991537B1 (ko) | 자율형 네트워크 스트리밍 기법 | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
CN107623729A (zh) | 一种缓存方法、设备及缓存服务系统 | |
CN104750372B (zh) | 一种文件共享方法和装置 | |
WO2001082224A2 (en) | Distributed rendering | |
CN109558378A (zh) | 文件管理方法、装置、设备及存储介质 | |
KR101701110B1 (ko) | 공동 편집 문서를 공유하는 방법 및 장치 | |
US8930518B2 (en) | Processing of write requests in application server clusters | |
CN105897754A (zh) | 一种数据处理系统、数据拉取方法以及客户端 | |
CN110267077B (zh) | 离线缓存方法、装置、终端及可读存储介质 | |
CN110457380A (zh) | 一种数据存储系统 | |
CN107145449A (zh) | 存储设备和存储方法 | |
CN104378396B (zh) | 数据管理装置及方法 | |
CN109582417A (zh) | 一种界面展示方法、客户端及图片服务器 | |
JP2004139200A (ja) | ファイル管理プログラム及びファイル管理装置 | |
Choi et al. | Sdm: A scientific dataset delivery platform | |
CN112688980A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181214 |