镜像部署方法、服务器和系统与流程

文档序号:36472588发布日期:2023-12-21 23:31阅读:22来源:国知局
镜像部署方法与流程

本公开的实施例涉及计算机,并且更具体地涉及镜像部署方法、服务器和系统。


背景技术:

1、docker是一种开源的应用容器引擎,用于自动化部署应用。它可以允许开发者打包应用以及依赖包到容器(container)中,并且允许在主机或虚拟机上运行若干个容器,每个容器即是一个独立的虚拟环境或应用。

2、在边缘应用场景中,边缘节点(edge node)(也可以称为边缘端节点)所运行的容器来源于镜像(image),而镜像可以由用户自制或由运行中的容器提交来生成,镜像生成后,可以推送(push)到云端的docker仓库服务(registry)中进行保存,边缘节点也可以从docker仓库拉取(pull)所需镜像到本地节点以运行容器。


技术实现思路

1、根据本公开的示例实施例,提供了一种镜像部署方案,用于解决docker镜像部署时网络传输开销较大、部署总时间较长的问题。

2、在本公开的第一方面中,提供了一种镜像部署方法,应用于docker系统,docker系统包括仓库服务器和多个节点,该方法可以包括:由仓库服务器接收来自于多个节点的拉取镜像的请求,其中,第一节点请求拉取的镜像为第一镜像。仓库服务器检测到多个节点所请求拉取的多个镜像的层均包括共同层。仓库服务器生成共同层的数据的传输路径,传输路径包括由仓库服务器将共同层的数据传输给第二节点,第二节点为仓库服务器在多个节点中所选择的用于将从仓库服务器获取到的共同层的数据分发给其他节点的起始节点。仓库服务器根据传输路径向第一节点发送设置信息,设置信息包括指示第一节点从第三节点获取共同层的数据。仓库服务器向第二节点发送共同层的数据。第一节点根据设置信息从第三节点获取到共同层的数据。

3、实施第一方面提供的方法,可以使得相同的镜像层只需从云端向边缘端传输一次,避免不同边缘节点向仓库服务器重复拉取相同的镜像层,进而减少了网络传输开销,提高了docker镜像下载、传输和部署的效率,缩短了镜像部署的总时间。

4、在一些实施例中,该方法还可以包括:响应于第一节点向仓库服务器拉取剩余层的请求,仓库服务器向第一节点发送剩余层的数据,剩余层是第一镜像中除去共同层之外的其他层。

5、在一些实施例中,该方法还可以包括:仓库服务器根据获取到的第一镜像所包括的层,生成第一镜像的层列表,层列表中包括共同层。仓库服务器向第一节点发送第一镜像的层列表。

6、在一些实施例中,层列表中还包括剩余层,该方法还可以包括:在完成获取共同层的数据之后,第一节点根据层列表中指示的剩余层向仓库服务器发送拉取剩余层的请求。

7、在一些实施例中,该方法还可以包括:根据第四节点发送的部署参数,第一节点向仓库服务器发送拉取第一镜像的请求,部署参数包括标识第一节点的待部署的镜像为第一镜像的参数,第四节点用于安排多个节点中的待部署的镜像。

8、在一些实施例中,传输路径为有向无环图。

9、在一些实施例中,该方法还可以包括:仓库服务器将共同层分成多个数据块,多个数据块中的每个数据块对应一个哈希值。其中,仓库服务器向第一节点发送的设置信息还包括多个数据块对应的哈希值。

10、在一些实施例中,第一节点可以根据多个数据块对应的哈希值向第三节点请求获取组成共同层的多个数据块。

11、在本公开的第二方面中,提供了一种镜像部署方法,应用于服务器,该方法可以包括:接收来自于多个节点的拉取镜像的请求,其中,第一节点请求拉取的镜像为第一镜像。检测到多个节点所请求拉取的多个镜像的层均包括共同层。生成共同层的数据的传输路径,该传输路径包括将共同层的数据传输给第二节点,第二节点为在多个节点中被选择用于将共同层的数据分发给其他节点的起始节点。根据传输路径向第一节点发送设置信息,设置信息包括指示第一节点从第三节点获取共同层的数据。向第二节点发送共同层的数据,其中,第一节点根据设置信息从第三节点获取到共同层的数据。

12、实施第二方面提供的方法,可以使得相同的镜像层只需从云端向边缘端传输一次,避免不同边缘节点向仓库服务器重复拉取相同的镜像层,进而减少了网络传输开销,提高了docker镜像下载、传输和部署的效率,缩短了镜像部署的总时间。

13、在一些实施例中,该方法还可以包括:响应于第一节点拉取剩余层的请求,向第一节点发送剩余层的数据,剩余层是第一镜像中除去共同层之外的其他层。

14、在一些实施例中,该方法还可以包括:根据获取到的第一镜像所包括的层,生成第一镜像的层列表,层列表中包括共同层。向第一节点发送第一镜像的层列表。

15、在一些实施例中,层列表中还包括剩余层,该方法还可以包括:在完成获取共同层的数据之后,接收到第一节点根据层列表中指示的剩余层而生成的拉取剩余层的请求。

16、在一些实施例中,所接收到的第一节点拉取第一镜像的请求是根据第四节点发送的部署参数而生成的,部署参数包括标识第一节点的待部署的镜像为第一镜像的参数,第四节点用于安排多个节点的待部署的镜像。

17、在一些实施例中,该传输路径为有向无环图。

18、在一些实施例中,该方法还可以包括:将共同层分成多个数据块,多个数据块中的每个数据块对应一个哈希值。向第一节点发送的设置信息还包括多个数据块对应的哈希值。

19、在一些实施例中,该方法还可以包括:第一节点根据多个数据块对应的哈希值从第三节点获取到组成共同层的多个数据块。

20、在本公开的第三方面中,提供了一种用于镜像部署的服务器。该服务器包括:处理器,以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使服务器执行动作,该动作包括:接收来自于多个节点的拉取镜像的请求,其中,第一节点请求拉取的镜像为第一镜像。检测到多个节点所请求拉取的多个镜像的层均包括共同层。生成共同层的数据的传输路径,传输路径包括将共同层的数据传输给第二节点,第二节点为在多个节点中被选择用于将共同层的数据分发给其他节点的起始节点。根据传输路径向第一节点发送设置信息,设置信息包括指示第一节点从第三节点获取共同层的数据。向第二节点发送共同层的数据,其中,第一节点根据设置信息从第三节点获取到共同层的数据。

21、实施第三方面提供的服务器,可以使得相同的镜像层只需从云端向边缘端传输一次,避免不同边缘节点向仓库服务器重复拉取相同的镜像层,进而减少了网络传输开销,提高了docker镜像下载、传输和部署的效率,缩短了镜像部署的总时间。

22、在一些实施例中,该动作还包括:响应于第一节点拉取剩余层的请求,向第一节点发送剩余层的数据,剩余层是第一镜像中除去共同层之外的其他层。

23、在一些实施例中,该动作还包括:根据获取到的第一镜像所包括的层,生成第一镜像的层列表,层列表中包括共同层。向第一节点发送第一镜像的层列表。

24、在一些实施例中,层列表中还包括剩余层,该动作还包括:在完成获取共同层的数据之后,接收到第一节点根据层列表中指示的剩余层而生成的拉取剩余层的请求。

25、在一些实施例中,所接收到的第一节点拉取第一镜像的请求是根据第四节点发送的部署参数而生成的,部署参数包括标识第一节点的待部署的镜像为第一镜像的参数,第四节点用于安排多个节点的待部署的镜像。

26、在一些实施例中,传输路径为有向无环图。

27、在一些实施例中,该动作还包括:将共同层分成多个数据块,多个数据块中的每个数据块对应一个哈希值。其中,向第一节点发送的设置信息还包括多个数据块对应的哈希值。

28、在一些实施例中,该动作还包括:第一节点根据多个数据块对应的哈希值从第三节点获取到组成共同层的多个数据块。

29、在本公开的第四方面中,提供了一种docker系统,包括仓库服务器和多个节点,其中仓库服务器可以实现为本公开的第三方面中的服务器。

30、在本公开的第五方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据本公开的第二方面的方法。

31、在本公开的第六方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序在由设备执行时使得设备执行根据本公开的第二方面的方法。

32、通过以上描述可以看到,根据本公开的各实施例的方案,可以使得相同的镜像层只需从云端向边缘端传输一次,避免不同边缘节点向仓库服务器重复拉取相同的镜像层,进而减少了网络传输开销,提高了docker镜像下载、传输和部署的效率,缩短了镜像部署的总时间。

33、应当理解的是,提供
技术实现要素:
部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。

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