CN114968283A - 一种容器镜像的拉取方法、装置、设备及可读存储介质 - Google Patents
一种容器镜像的拉取方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114968283A CN114968283A CN202210611110.6A CN202210611110A CN114968283A CN 114968283 A CN114968283 A CN 114968283A CN 202210611110 A CN202210611110 A CN 202210611110A CN 114968283 A CN114968283 A CN 114968283A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- container mirror
- pulling
- target
- edge
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种容器镜像的拉取方法,包括:对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像;当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点;其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。本发明提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖。本发明还公开了一种容器镜像的拉取装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及容器技术领域,特别是涉及一种容器镜像的拉取方法、装置、设备及计算机可读存储介质。
背景技术
在容器(Docker)技术中,容器是一个标准化的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境可靠快速地运行到另一个计算环境。容器镜像是一个轻量的独立的可执行的软件包,包含应用程序运行时所需的各种资源,比如代码、运行时间、系统工具、系统库和设置等等。
现有的容器镜像拉取方式主要分为两种,一种是从远程服务器的harbor容器镜像仓库拉取镜像,这个过程会导致云端的网络出口流量大,镜像分发的效率依赖于稳定的高带宽网络,然而边缘云和边缘节点之前的网络不稳定,经常出现网络抖动或者不稳定的场景,导致传统的镜像下载速率较慢,失败率比较高。另一种是先将镜像保存到中心节点,中心节点再复制镜像到边缘节点,该镜像拉取方式相较于harbor容器镜像仓库的镜像拉取方式,减少了镜像拉取的失败率,但是从中心节点拉取容器镜像的方式也存在一定的不足,首先中心节点的缓存数据较多,需要定期清理本地数据,其次是大批量边缘节点同时从中心节点下载镜像时,会占用大量的连接数。
综上所述,如何有效地解决镜像下载速率较慢,失败率比较高,需要定期清理中心节点数据,占用大量的连接数等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种容器镜像的拉取方法,该方法提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖;本发明的另一目的是提供一种容器镜像的拉取装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种容器镜像的拉取方法,包括:
对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;
当从预设数据库表中查找到边缘节点集群中存在所述目标容器镜像时,从所述边缘节点集群中拉取所述目标容器镜像;
当从所述预设数据库表中未查找到所述节点集群中存在所述目标容器镜像时,向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点;其中,所述中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
在本发明的一种具体实施方式中,对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像,包括:
对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数;
从所述边缘节点集群中拉取所述目标容器镜像,包括:
获取所述边缘节点集群中存在所述目标容器镜像的各边缘节点分别对应的边缘权重;
根据所述层数和各所述边缘节点分别对应的边缘权重,计算各所述边缘节点分别对应的待调度层数;
根据各所述边缘节点分别对应的待调度层数,向各所述边缘节点分配待拉取的目标层;
从各所述边缘节点拉取分配得到的各所述目标层。
在本发明的一种具体实施方式中,在从各所述边缘节点拉取分配得到的各所述目标层的过程中,还包括:
判断所述边缘节点集群是否存在新添加的部署有所述目标容器镜像的边缘节点;
若是,则获取当前待拉取的各目标层和层数;
重复执行所述获取所述边缘节点集群中存在所述目标容器镜像的各边缘节点分别对应的边缘权重的步骤。
在本发明的一种具体实施方式中,在从各所述边缘节点拉取分配得到的各所述目标层的过程中,还包括:
分别获取每个目标层的拉取结果;
根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作;
重复执行所述根据所述层数和各所述边缘节点分别对应的边缘权重,计算各所述边缘节点分别对应的待调度层数的步骤。
在本发明的一种具体实施方式中,根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作,包括:
当所述拉取结果为拉取失败时,从对所述目标层拉取失败的边缘节点重复拉取所述目标层;
当重复拉取预设次数的拉取结果均为失败时,将所述边缘节点的边缘权重调整为0。
在本发明的一种具体实施方式中,根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作,包括:
当所述拉取结果为拉取成功时,按照预设权重调整规则上调对所述目标层拉取成功的边缘节点的边缘权重。
在本发明的一种具体实施方式中,在向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点之后,还包括:
获取镜像同步结果;
根据所述镜像同步结果对所述预设数据库表进行更新操作。
一种容器镜像的拉取装置,包括:
请求解析模块,用于对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;
镜像拉取模块,用于当从预设数据库表中查找到边缘节点集群中存在所述目标容器镜像时,从所述边缘节点集群中拉取所述目标容器镜像;
镜像同步模块,用于当从所述预设数据库表中未查找到所述节点集群中存在所述目标容器镜像时,向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点;其中,所述中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
一种容器镜像的拉取设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述容器镜像的拉取方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述容器镜像的拉取方法的步骤。
本发明所提供的容器镜像的拉取方法,对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像;当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点;其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
由上述技术方案可知,通过当需要拉取容器镜像时,优先查找边缘节点集群中是否存在待拉取的目标容器镜像,若边缘节点集群中存在该目标容器镜像,则直接从边缘节点集群中拉取目标容器镜像。若边缘节点集群中不存在该目标容器镜像,则通过向中心节点发送调取请求,进而中心节点将预存的目标容器镜像同步至发送容器镜像拉取请求的目标边缘节点。通过优先选择边缘节点进行镜像拉取,提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖。
相应的,本发明还提供了与上述容器镜像的拉取方法相对应的容器镜像的拉取装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中容器镜像的拉取方法的一种实施流程图;
图2为本发明实施例中容器镜像的拉取方法的另一种实施流程图;
图3为本发明实施例中一种容器镜像的拉取系统的结构框图;
图4为本发明实施例中一种容器镜像的拉取装置的结构框图;
图5为本发明实施例中一种容器镜像的拉取设备的结构框图;
图6为本实施例提供的一种容器镜像的拉取设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本发明实施例中容器镜像的拉取方法的一种实施流程图,该方法可以包括以下步骤:
S101:对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像。
当需要进行镜像容器拉取是,向镜像容器拉取控制中心发送容器镜像拉取请求,容器镜像拉取请求中包含发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像。镜像容器拉取控制中心接收容器镜像拉取请求,并对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像。如容器镜像拉取请求中可以包含发送容器镜像拉取请求的目标边缘节点的节点标识信息和待拉取的目标容器镜像的容器镜像标识信息,镜像容器拉取控制中心可以根据解析到的发送容器镜像拉取请求的目标边缘节点的节点标识信息和待拉取的目标容器镜像的容器镜像标识信息,确定发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像。
S102:当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像。
预先设置有边缘节点集群和数据库表,在预设数据库表中预先存储边缘节点集群中各边缘节点分别存在的容器镜像。在解析得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像之后,从预设数据库表中查找边缘节点集群中是否存在待拉取的目标容器镜像,当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像。
例如,当确定发送容器镜像拉取请求的目标边缘节点本身存在目标容器镜像,则可以优先从目标边缘节点中调取目标容器镜像。还可以对边缘节点进行可用区划分,将同一网段的边缘节点纳管到同一可用区,在将边缘节点添加到边缘节点集群后,给边缘节点添加指定可用区域的标签,根据节点的标签,为同一可用区的边缘节点创建P2P(peer-to-peer)网络,使边缘节点之间形成P2P对等关系,可以实现边缘节点之间P2P网络的管理,优先从P2P网络内实现容器镜像互传。当目标边缘节点中不存在目标容器镜像,但目标边缘节点同一可用区的其他边缘节点中存在目标容器镜像时,从目标边缘节点同一可用区的其他边缘节点中拉取目标容器镜像。当目标边缘节点和目标边缘节点同一可用区的其他边缘节点中均不存在目标容器镜像,但其他可用区的边缘节点中存在目标容器镜像时,从其他可用区的边缘节点中拉取目标容器镜像。这样既可以实现保证节点之间数据的直接共享,也可以高效的进行容器镜像的拉取。
S103:当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点。
其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
预先设置中心节点,harbor容器镜像仓库的容器镜像预先同步到中心节点,如定期使用job service将容器镜像同步到指定的存储(一般是中心节点的本地存储或者外接存储)。中心节点部署Inget-server,边缘节点部署Insget-client,可以通过边缘节点Insget截获容器镜像拉取请求,并进行请求解析。新建一个数据库image_local标用来维护镜像的信息,当harbor的容器镜像同步到中心节点后,还可以将中心节点已有的容器镜像更新到数据库表image_local汇总。当从预设数据库表中未查找到节点集群中存在目标容器镜像时,说明边缘节点中均不存在目标容器镜像,向中心节点发送调取请求。中心节点将预存的目标容器镜像同步至目标边缘节点。通过优先选择边缘节点进行镜像拉取,提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖。
在本发明的一种具体实施方式中,在向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点之后,该方法还可以包括以下步骤:
步骤一:获取镜像同步结果;
步骤二:根据镜像同步结果对预设数据库表进行更新操作。
为方便描述,可以将上述两个步骤结合起来进行说明。
在中心节点将预存的目标容器镜像同步至目标边缘节点之后,获取镜像同步结果,根据镜像同步结果对预设数据库表进行更新操作。即,当目标边缘节点同步到目标容器镜像后,将目标边缘节点中存在目标容器镜像这一信息记录到预设数据库表中,方便后续需要拉取目标容器镜像时,从目标边缘节点中拉取目标容器镜像,如可以是从目标边缘节点中拉取目标容器镜像中某些容器镜像层。
由上述技术方案可知,通过当需要拉取容器镜像时,优先查找边缘节点集群中是否存在待拉取的目标容器镜像,若边缘节点集群中存在该目标容器镜像,则直接从边缘节点集群中拉取目标容器镜像。若边缘节点集群中不存在该目标容器镜像,则通过向中心节点发送调取请求,进而中心节点将预存的目标容器镜像同步至发送容器镜像拉取请求的目标边缘节点。通过优先选择边缘节点进行镜像拉取,提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
参见图2,图2为本发明实施例中容器镜像的拉取方法的另一种实施流程图,该方法可以包括以下步骤:
S201:对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数。
在进行容器镜像拉取时,需要拉取的可以是目标容器镜像所用镜像层中的部分镜像层。容器镜像拉取请求中可以包含发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数。当接收到容器镜像拉取请求时,对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数。镜像拉取时,不是下载整个镜像,而是按照需要定向拉取所需的层,提升了镜像拉取效率。
S202:当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,获取边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重。
预先设置边缘节点集群中存在目标容器镜像的各边缘节点分别对应的初始的边缘权重。由于首次拉取时,同一可用区的节点都是一致的,可以设置本可用区域节点的边缘权重为100,其他可用区节点的边缘权重为80。容器镜像的权重是双向的,比如边缘节点A拉取边缘节点B的边缘权重是100,那么边缘节点B拉取边缘节点A的边缘权重也是100。
当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,获取边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重。
在进行镜像拉取时,可以是根据镜像(image)的名称+标签(tag)找到相应镜像的manifest,根据manifest里面镜像层(layer)的sha256和媒体类型(media type)从各边缘节点中查找相应的镜像层layer。
S203:根据层数和各边缘节点分别对应的边缘权重,计算各边缘节点分别对应的待调度层数。
在获取到边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重之后,根据层数和各边缘节点分别对应的边缘权重,计算各边缘节点分别对应的待调度层数。可以通过下公式计算各边缘节点分别对应的待调度层数:
Math.Round((WP_n/(WP_1+WP_2+..+WP_n))*N);
其中,N为待拉取的目标容器镜像的层数,WP_n为每个边缘节点对应的权重,Math.Round(.)表示四舍五入取整函数。
S204:根据各边缘节点分别对应的待调度层数,向各边缘节点分配待拉取的目标层。
在计算得到各边缘节点分别对应的待调度层数之后,根据各边缘节点分别对应的待调度层数,向各边缘节点分配待拉取的目标层。
参见图3,图3为本发明实施例中一种容器镜像的拉取系统的结构框图。节点A下发容器镜像拉取(docker pull)命令,(以节点B、C、D、F有可用镜像为例),为了能从性能相对好,网络相对稳定的边缘节点去拉取镜像,假设共需要拉取10个目标层,通过计算可以为节点B和节点C分别分配3个待拉取的目标层,为节点D和节点F分别分配3个待拉取的目标层。
边缘节点中的Insget-client根据容器镜像的id(identity document,身份标识号)获取到镜像的所有目标层,并根据调度策略,不同的目标层去不同的节点下载,这样分散下载,既可以提高下载的效率,也可以减少同一个节点的进程数。
S205:从各边缘节点拉取分配得到的各目标层。
在根据各边缘节点分别对应的待调度层数,向各边缘节点分配待拉取的目标层之后,从各边缘节点拉取分配得到的各目标层。拉取容器镜像时,支持同时从多个节点并发拉取,提高镜像拉取效率。
在本发明的一种具体实施方式中,在从各边缘节点拉取分配得到的各目标层的过程中,该方法还可以包括以下步骤:
步骤一:判断边缘节点集群是否存在新添加的部署有目标容器镜像的边缘节点,若是,则执行步骤二,若否,则不做处理;
步骤二:获取当前待拉取的各目标层和层数,并重复执行步骤S202中获取边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重的步骤。
为方便描述,可以将上述两个步骤结合起来进行说明。
在从各边缘节点拉取分配得到的各目标层的过程中,判断边缘节点集群是否存在新添加的部署有目标容器镜像的边缘节点,若是,则需要对存在目标容器镜像的边缘节点分配的待拉取层数进行调整,随着有可用节点的和下载层数的不断变化,获取当前待拉取的各目标层和层数,并获取边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重,按照当前的边缘权重、待拉取的各目标层和层数为各边缘节点重新分配待拉取的目标层。若否,则说明不需要对存在目标容器镜像的边缘节点分配的待拉取层数进行调整,不做处理。
在本发明的一种具体实施方式中,在从各边缘节点拉取分配得到的各目标层的过程中,该方法还可以包括以下步骤:
步骤一:分别获取每个目标层的拉取结果;
步骤二:根据拉取结果对目标层对应的边缘节点的边缘权重进行更新操作,并重复执行步骤S203。
为方便描述,可以将上述两个步骤结合起来进行说明。
在从各边缘节点拉取分配得到的各目标层的过程中,分别获取每个目标层的拉取结果,根据拉取结果对目标层对应的边缘节点的边缘权重进行更新操作,并根据当前的待拉取层数和各边缘节点分别对应的边缘权重,计算各边缘节点分别对应的待调度层数。
在本发明的一种具体实施方式中,根据拉取结果对目标层对应的边缘节点的边缘权重进行更新操作,可以包括以下步骤:
步骤一:当拉取结果为拉取失败时,从对目标层拉取失败的边缘节点重复拉取目标层;
步骤二:当重复拉取预设次数的拉取结果均为失败时,将边缘节点的边缘权重调整为0。
为方便描述,可以将上述两个步骤结合起来进行说明。
当拉取结果为拉取失败时,从对目标层拉取失败的边缘节点重复拉取目标层,当重复拉取预设次数的拉取结果均为失败时,说明该边缘节点可能存在故障,将边缘节点的边缘权重调整为0,从而避免故障节点的干扰,提升容器镜像拉取的成功率,提升容器镜像拉取效率。
需要说明的是,预设次数可以根据实际情况进行设定和调整,本发明实施例对此不作限定。
在本发明的一种具体实施方式中,根据拉取结果对目标层对应的边缘节点的边缘权重进行更新操作,可以包括以下步骤:
当拉取结果为拉取成功时,按照预设权重调整规则上调对目标层拉取成功的边缘节点的边缘权重。
当拉取结果为拉取成功时,按照预设权重调整规则上调对目标层拉取成功的边缘节点的边缘权重。可以通过公式WP_n*R*101/100对目标层对应的边缘节点的边缘权重进行更新,其中,WP_n为边缘节点的原节点权重,边缘节点的拉取成功率R=T/(T+C),T拉取成功的层数,C为拉取失败的层数。通过对拉取成功的边缘节点的边缘权重进行上调,进而能从性能相对较好,网络相对稳定的边缘节点去拉取镜像,进一步提升容器镜像拉取的成功率,提升容器镜像拉取效率
S206:当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点。
其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
相应于上面的方法实施例,本发明还提供了一种容器镜像的拉取装置,下文描述的容器镜像的拉取装置与上文描述的容器镜像的拉取方法可相互对应参照。
参见图4,图4为本发明实施例中一种容器镜像的拉取装置的结构框图,该装置可以包括:
请求解析模块41,用于对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;
镜像拉取模块42,用于当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像;
镜像同步模块43,用于当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点;其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
由上述技术方案可知,通过当需要拉取容器镜像时,优先查找边缘节点集群中是否存在待拉取的目标容器镜像,若边缘节点集群中存在该目标容器镜像,则直接从边缘节点集群中拉取目标容器镜像。若边缘节点集群中不存在该目标容器镜像,则通过向中心节点发送调取请求,进而中心节点将预存的目标容器镜像同步至发送容器镜像拉取请求的目标边缘节点。通过优先选择边缘节点进行镜像拉取,提高了镜像拉取的成功率,提升了镜像拉取的效率,降低了对中心节点的依赖。
在本发明的一种具体实施方式中,请求解析模块41具体为对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数的模块;
镜像拉取模块包括:
边缘权重获取子模块,用于获取边缘节点集群中存在目标容器镜像的各边缘节点分别对应的边缘权重;
待调度层数计算子模块,用于根据层数和各边缘节点分别对应的边缘权重,计算各边缘节点分别对应的待调度层数;
镜像层分配子模块,用于根据各边缘节点分别对应的待调度层数,向各边缘节点分配待拉取的目标层;
镜像层拉取子模块,用于从各边缘节点拉取分配得到的各目标层。
在本发明的一种具体实施方式中,该装置还可以包括:
判断模块,用于在从各边缘节点拉取分配得到的各目标层的过程中,判断边缘节点集群是否存在新添加的部署有目标容器镜像的边缘节点;
待拉取层和层数获取模块,用于当确定边缘节点集群存在新添加的部署有目标容器镜像的边缘节点时,获取当前待拉取的各目标层和层数,并触发边缘权重获取子模块。
在本发明的一种具体实施方式中,该装置还可以包括:
拉取结果获取模块,用于在从各边缘节点拉取分配得到的各目标层的过程中,分别获取每个目标层的拉取结果;
权重更新模块,用于根据拉取结果对目标层对应的边缘节点的边缘权重进行更新操作,并触发待调度层数计算子模块。
在本发明的一种具体实施方式中,权重更新模块包括:
重复拉取子模块,用于当拉取结果为拉取失败时,从对目标层拉取失败的边缘节点重复拉取目标层;
权重调整子模块,用于当重复拉取预设次数的拉取结果均为失败时,将边缘节点的边缘权重调整为0。
在本发明的一种具体实施方式中,权重更新模块具体为当拉取结果为拉取成功时,按照预设权重调整规则上调对目标层拉取成功的边缘节点的边缘权重的模块。
在本发明的一种具体实施方式中,该装置还可以包括:
镜像同步结果获取模块,用于在向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点之后,获取镜像同步结果;
数据库表更新模块,用于根据镜像同步结果对预设数据库表进行更新操作。
相应于上面的方法实施例,参见图5,图5为本发明所提供的容器镜像的拉取设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的容器镜像的拉取方法的步骤。
具体的,请参考图6,图6为本实施例提供的一种容器镜像的拉取设备的具体结构示意图,该容器镜像的拉取设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在容器镜像的拉取设备301上执行存储器332中的一系列指令操作。
容器镜像的拉取设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的容器镜像的拉取方法中的步骤可以由容器镜像的拉取设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
对接收到的容器镜像拉取请求进行解析,得到发送容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;当从预设数据库表中查找到边缘节点集群中存在目标容器镜像时,从边缘节点集群中拉取目标容器镜像;当从预设数据库表中未查找到节点集群中存在目标容器镜像时,向中心节点发送调取请求,以使中心节点将预存的目标容器镜像同步至目标边缘节点;其中,中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种容器镜像的拉取方法,其特征在于,包括:
对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;
当从预设数据库表中查找到边缘节点集群中存在所述目标容器镜像时,从所述边缘节点集群中拉取所述目标容器镜像;
当从所述预设数据库表中未查找到所述节点集群中存在所述目标容器镜像时,向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点;其中,所述中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
2.根据权利要求1所述的容器镜像的拉取方法,其特征在于,对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像,包括:
对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像的各目标层和层数;
从所述边缘节点集群中拉取所述目标容器镜像,包括:
获取所述边缘节点集群中存在所述目标容器镜像的各边缘节点分别对应的边缘权重;
根据所述层数和各所述边缘节点分别对应的边缘权重,计算各所述边缘节点分别对应的待调度层数;
根据各所述边缘节点分别对应的待调度层数,向各所述边缘节点分配待拉取的目标层;
从各所述边缘节点拉取分配得到的各所述目标层。
3.根据权利要求2所述的容器镜像的拉取方法,其特征在于,在从各所述边缘节点拉取分配得到的各所述目标层的过程中,还包括:
判断所述边缘节点集群是否存在新添加的部署有所述目标容器镜像的边缘节点;
若是,则获取当前待拉取的各目标层和层数;
重复执行所述获取所述边缘节点集群中存在所述目标容器镜像的各边缘节点分别对应的边缘权重的步骤。
4.根据权利要求2或3所述的容器镜像的拉取方法,其特征在于,在从各所述边缘节点拉取分配得到的各所述目标层的过程中,还包括:
分别获取每个目标层的拉取结果;
根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作;
重复执行所述根据所述层数和各所述边缘节点分别对应的边缘权重,计算各所述边缘节点分别对应的待调度层数的步骤。
5.根据权利要求4所述的容器镜像的拉取方法,其特征在于,根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作,包括:
当所述拉取结果为拉取失败时,从对所述目标层拉取失败的边缘节点重复拉取所述目标层;
当重复拉取预设次数的拉取结果均为失败时,将所述边缘节点的边缘权重调整为0。
6.根据权利要求4所述的容器镜像的拉取方法,其特征在于,根据所述拉取结果对所述目标层对应的边缘节点的边缘权重进行更新操作,包括:
当所述拉取结果为拉取成功时,按照预设权重调整规则上调对所述目标层拉取成功的边缘节点的边缘权重。
7.根据权利要求1所述的容器镜像的拉取方法,其特征在于,在向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点之后,还包括:
获取镜像同步结果;
根据所述镜像同步结果对所述预设数据库表进行更新操作。
8.一种容器镜像的拉取装置,其特征在于,包括:
请求解析模块,用于对接收到的容器镜像拉取请求进行解析,得到发送所述容器镜像拉取请求的目标边缘节点和待拉取的目标容器镜像;
镜像拉取模块,用于当从预设数据库表中查找到边缘节点集群中存在所述目标容器镜像时,从所述边缘节点集群中拉取所述目标容器镜像;
镜像同步模块,用于当从所述预设数据库表中未查找到所述节点集群中存在所述目标容器镜像时,向中心节点发送调取请求,以使所述中心节点将预存的目标容器镜像同步至所述目标边缘节点;其中,所述中心节点中的目标容器镜像为从harbor容器镜像仓库下载并保存得到。
9.一种容器镜像的拉取设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述容器镜像的拉取方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述容器镜像的拉取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611110.6A CN114968283A (zh) | 2022-05-31 | 2022-05-31 | 一种容器镜像的拉取方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611110.6A CN114968283A (zh) | 2022-05-31 | 2022-05-31 | 一种容器镜像的拉取方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968283A true CN114968283A (zh) | 2022-08-30 |
Family
ID=82958550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210611110.6A Pending CN114968283A (zh) | 2022-05-31 | 2022-05-31 | 一种容器镜像的拉取方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968283A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794319A (zh) * | 2023-02-07 | 2023-03-14 | 天翼云科技有限公司 | 一种边缘计算存储服务提供方法、装置、电子设备和介质 |
CN115794139A (zh) * | 2023-01-16 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 镜像数据处理方法、装置、设备以及介质 |
-
2022
- 2022-05-31 CN CN202210611110.6A patent/CN114968283A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794139A (zh) * | 2023-01-16 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 镜像数据处理方法、装置、设备以及介质 |
CN115794319A (zh) * | 2023-02-07 | 2023-03-14 | 天翼云科技有限公司 | 一种边缘计算存储服务提供方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120678B (zh) | 用于分布式存储系统的服务托管的方法和装置 | |
US11514304B2 (en) | Continuously provisioning large-scale machine learning models | |
EP3667500B1 (en) | Using a container orchestration service for dynamic routing | |
US20180373517A1 (en) | Systems, methods, and apparatuses for docker image downloading | |
CN114968283A (zh) | 一种容器镜像的拉取方法、装置、设备及可读存储介质 | |
CN106657314B (zh) | 跨数据中心数据同步系统及方法 | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN111897550B (zh) | 镜像预加载方法、设备及存储介质 | |
CN112910937B (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN113382077B (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
CN113315754A (zh) | 容器出访防火墙智能联动方法及装置、设备、介质 | |
CN109951551B (zh) | 一种容器镜像管理系统及方法 | |
CN112261125B (zh) | 集中单元的云化部署方法、装置及系统 | |
CN112398669A (zh) | 一种Hadoop部署方法和装置 | |
CN113608838A (zh) | 应用镜像文件的部署方法、装置、计算机设备和存储介质 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
CN113535220B (zh) | 一种代码包管理方法和装置 | |
CN117435324A (zh) | 基于容器化的任务调度方法 | |
CN113472638B (zh) | 边缘网关控制方法及系统、装置、电子设备、存储介质 | |
US11288092B2 (en) | Dynamically adjusting reconciliation time-delays | |
CN114546631A (zh) | 任务调度方法、控制方法、核心、电子设备、可读介质 | |
CN112860505A (zh) | 一种分布式集群的调控方法及装置 | |
CN113556402B (zh) | 数据下载调度方法、装置及电子设备 | |
CN114356214B (zh) | 一种针对kubernetes系统提供本地存储卷的方法及系统 |
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 |