CN112817606A - 用于容器镜像的部署系统及其部署方法 - Google Patents
用于容器镜像的部署系统及其部署方法 Download PDFInfo
- Publication number
- CN112817606A CN112817606A CN201911116318.5A CN201911116318A CN112817606A CN 112817606 A CN112817606 A CN 112817606A CN 201911116318 A CN201911116318 A CN 201911116318A CN 112817606 A CN112817606 A CN 112817606A
- Authority
- CN
- China
- Prior art keywords
- image
- mirror
- container
- local
- 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
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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种用于容器镜像的部署系统及其部署方法。该部署系统包括中央仓库和多个DC。中央仓库包括中央仓库镜像集和DC级镜像注册表。中央仓库镜像集用于存储容器的镜像全集和镜像信息。DC级镜像注册表用于存储并管理DC级的镜像位置信息。每个DC包括DC仓库和多个容器节点。DC仓库包括镜像代理服务模块、本地DC镜像集和本地仓库注册表。本地DC镜像集用于存储本地DC内的镜像全集。镜像代理服务模块用于为每个容器节点内的容器引擎提供镜像资源地址。本地仓库注册表用于存储并管理本地DC内的镜像层的节点级位置信息。每个容器节点包括容器引擎和节点仓库。本公开提升了多DC容器镜像的可维护性,并降低了DC内单点下载压力。
Description
技术领域
本公开涉及云计算领域,特别涉及一种用于容器镜像的部署系统及其部署方法。
背景技术
目前,NFV(Network Function Virtualization,网络功能虚拟化)、5G网元微服务设计和容器化部署已成趋势。VNF(Virtual Network Function,虚拟网络功能)网元容器部署流程包括打包、发布镜像、下载镜像和运行镜像等。在大并发、低时延的业务场景中,相同的VNF网元往往需要在区域DC(Data Center,数据中心)、本地DC和边缘DC中分布式部署大量的实例。现有容器应用跨集群部署方法均存在一定不足。
在一种方案中,多个集群多个容器节点共用同一个镜像仓库。这中方案导致下载速度慢:容器DC与镜像仓库可能部署在不同地区,存在明显网络时延,影响镜像下载速度。另外,该方案也导致单点压力大:针对VNF网元镜像偏大,DC主机节点偏多的特点,集中式的容器镜像仓库难以承担多DC多节点大镜像的频繁下载压力。
在另一种方案中,为每个DC设立一套镜像仓库。这种方案导致分散难管理。针对多节点的大DC,DC内单点下载压力仍普遍存在,且各个DC间的镜像存在一致性差异,难以统一集中管理。
发明内容
本公开解决的一个技术问题是:提供一种用于容器镜像的部署系统。
根据本公开实施例的一个方面,提供了一种用于容器镜像的部署系统,包括:中央仓库和多个数据中心DC;所述中央仓库包括中央仓库镜像集和DC级镜像注册表,所述中央仓库镜像集用于存储容器的镜像全集和镜像信息,所述DC级镜像注册表用于存储并管理DC级的镜像位置信息;每个DC包括DC仓库和多个容器节点;所述DC仓库包括镜像代理服务模块、本地DC镜像集和本地仓库注册表,所述本地DC镜像集用于存储本地DC内的镜像全集,所述镜像代理服务模块用于为每个容器节点内的容器引擎提供镜像资源地址,所述本地仓库注册表用于存储并管理所述本地DC内的镜像层的节点级位置信息;每个容器节点包括:容器引擎和节点仓库;所述容器引擎用于根据所述镜像代理服务模块指定的镜像资源地址下载所需镜像,所述节点仓库用于存储本地容器节点内的镜像和/或镜像层。
在一些实施例中,所述部署系统还包括:部署工具,用于管理部署脚本和容器镜像,向指定的镜像仓库上传镜像,并向指定的DC下发部署脚本,以在所述DC中部署镜像;其中,所述指定的镜像仓库包括所述中央仓库、所述DC仓库和所述节点仓库中的至少一个;每个DC还包括集群编排器,所述集群编排器用于根据所述部署脚本执行镜像部署,使得相应的容器节点下载由所述部署工具上传到所述中央仓库的所述镜像。
在一些实施例中,所述部署工具还用于将容器的镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该镜像的DC级位置;所述镜像代理服务模块还用于实时监听所述DC级镜像注册表,当监听到所述DC级镜像注册表发生更新时,将所述部署工具上传到所述中央仓库的镜像同步到本地DC中。
在一些实施例中,所述多个容器节点包括第一容器节点;所述第一容器节点的容器引擎用于访问本地DC内的镜像代理服务模块以下载第一镜像,以及在所述第一镜像存储在本地DC内的DC仓库中之后,从所述本地DC内的DC仓库下载所述第一镜像;所述镜像代理服务模块还用于遍历本地仓库注册表,查询到所述本地仓库注册表中不存在所述第一镜像的节点级位置信息,则查询本地DC内的DC仓库中是否存在所述第一镜像;若本地DC内的DC仓库中存在所述第一镜像,则通知所述第一容器节点的容器引擎从本地DC内的DC仓库下载所述第一镜像;若本地DC内的DC仓库中不存在所述第一镜像,则从所述中央仓库下载所述第一镜像,将所述第一镜像存储在本地DC内的DC仓库中,并更新所述DC级镜像注册表的信息。
在一些实施例中,所述多个容器节点还包括第二容器节点;所述第二容器节点的容器引擎用于访问本地DC内的镜像代理服务模块以下载所述第一镜像,以及通过端到端的方式从对应的容器节点下载所述第一镜像,并将所述第一镜像存储到所述第二容器节点的节点仓库;所述镜像代理服务模块还用于遍历本地仓库注册表,查询到所述第一镜像的不同镜像层所在容器节点的位置,则将所述第一镜像的镜像资源地址重定向到对应的容器节点。
在一些实施例中,所述第二容器节点的容器引擎还用于在将所述第一镜像存储到所述第二容器节点的节点仓库后,通知本地DC内的镜像代理服务模块更新本地DC内的本地仓库注册表中的所述第一镜像的镜像层的节点级位置信息。
在一些实施例中,所述部署工具还用于将新版本镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该新版本镜像的版本信息;所述集群编排器还用于监听所述DC级镜像注册表,当监听到所述DC级镜像注册表的更新事件时,通知相应的容器引擎重新下载并运行所述新版本镜像;所述相应的容器引擎用于在将所述新版本镜像下载到相应的节点仓库后,通知相应的镜像代理服务模块更新本地仓库注册表中的所述新版本镜像的节点级位置信息。
根据本公开实施例的另一个方面,提供了一种用于容器镜像的部署方法,包括:所述部署工具将容器的镜像上传到所述中央仓库,并向指定的DC下发部署脚本;所述指定的DC内的集群编排器根据所述部署脚本执行镜像部署,使得相应的容器节点下载由所述部署工具上传到所述中央仓库的所述镜像。
在一些实施例中,所述部署方法还包括:所述部署工具将容器的镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该镜像的DC级位置;所述镜像代理服务模块实时监听所述DC级镜像注册表,当监听到所述DC级镜像注册表发生更新时,将所述部署工具上传到所述中央仓库的镜像同步到本地DC中。
在一些实施例中,所述多个容器节点包括第一容器节点;所述部署方法还包括:所述第一容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载第一镜像;所述镜像代理服务模块遍历本地仓库注册表,查询到所述本地仓库注册表中不存在所述第一镜像的节点级位置信息,则查询本地DC内的DC仓库中是否存在所述第一镜像;若本地DC内的DC仓库中存在所述第一镜像,则所述镜像代理服务模块通知所述第一容器节点的容器引擎从本地DC内的DC仓库下载所述第一镜像;若本地DC内的DC仓库中不存在所述第一镜像,则通过所述镜像代理服务模块从所述中央仓库下载所述第一镜像,将所述第一镜像存储在本地DC内的DC仓库中,并更新所述DC级镜像注册表的信息;在所述第一镜像存储在所述本地DC内的DC仓库中之后,所述第一容器节点的容器引擎从所述本地DC内的DC仓库下载所述第一镜像。
在一些实施例中,所述多个容器节点还包括第二容器节点;所述部署方法还包括:所述第二容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载所述第一镜像;所述镜像代理服务模块遍历本地仓库注册表,查询到所述第一镜像的不同镜像层所在容器节点的位置,则将所述第一镜像的镜像资源地址重定向到对应的容器节点;以及所述第二容器节点的容器引擎通过端到端的方式从所述对应的容器节点下载所述第一镜像,并将所述第一镜像存储到所述第二容器节点的节点仓库。
在一些实施例中,所述部署方法还包括:在所述第二容器节点的容器引擎将所述第一镜像存储到所述第二容器节点的节点仓库后,所述第二容器节点的容器引擎通知本地DC内的镜像代理服务模块更新本地DC内的本地仓库注册表中的所述第一镜像的镜像层的节点级位置信息。
在一些实施例中,所述部署方法还包括:所述部署工具将新版本镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该新版本镜像的版本信息;在所述多个DC中的至少一个DC存储有与所述新版本镜像对应的旧版本镜像的情况下,所述至少一个DC的集群编排器监听到所述DC级镜像注册表的更新事件,通知相应的容器引擎重新下载并运行所述新版本镜像;以及在所述相应的容器引擎将所述新版本镜像下载到相应的节点仓库后,所述相应的容器引擎通知相应的镜像代理服务模块更新本地仓库注册表中的所述新版本镜像的节点级位置信息。
根据本公开实施例的另一个方面,提供了一种用于容器镜像的部署系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。
在上述部署系统中,通过设置中央仓库可以提升多DC容器镜像的可维护性,方便管理。另外,每个DC部署一个本地DC的镜像代理服务模块,提供本地DC内的每个镜像或镜像层的可用地址,容器节点之间可以下载镜像或镜像层,因此,解决了多节点单镜像仓库的下载瓶颈,降低了DC内单点下载压力。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的用于容器镜像的部署系统的结构示意图;
图2是示出根据本公开另一些实施例的用于容器镜像的部署系统的结构示意图;
图3是示出根据本公开一些实施例的用于容器镜像的部署方法的流程图;
图4是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图;
图5是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图;
图6是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图;
图7是示出根据本公开另一些实施例的用于容器镜像的部署系统的结构示意图;
图8是示出根据本公开另一些实施例的用于容器镜像的部署系统的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的用于容器镜像的部署系统的结构示意图。如图1所示,该部署系统包括中央仓库300和多个DC(数据中心)。例如,图1中示出了两个DC100和200。
中央仓库300可以包括中央仓库镜像集(或者称为多DC镜像集)310和DC级镜像注册表320。该中央仓库是多DC容器部署的集中式镜像仓库。
中央仓库镜像集310用于存储容器的镜像全集和镜像信息。即,中央仓库镜像集可以存储全部的容器镜像以及这些镜像的信息(例如镜像的名称等)。例如,中央仓库内的镜像可以作为镜像种子供容器节点下载。这样,容器镜像可以被集中管理维护,提升了多DC容器镜像的可维护性。
DC级镜像注册表320用于存储并管理DC级的镜像位置信息。这里,DC级的镜像位置信息是指镜像位于哪个或哪些DC中。在另一些实施例中,DC级镜像注册表320还可以记录镜像的版本信息。
每个DC包括DC仓库和多个容器节点。以DC 100为例,该DC100可以包括DC仓库140和三个容器节点110、120和130。
DC仓库140可以包括镜像代理服务模块141、本地DC镜像集142和本地仓库注册表143。
本地DC镜像集142用于存储本地DC内的镜像全集。例如,DC 100内的本地DC镜像集142用于存储DC 100内的全部镜像。
本地仓库注册表143用于存储并管理本地DC内的镜像层的节点级位置信息。例如,镜像可以以镜像层的形式存在。例如,一个镜像可以包括多个镜像层,而该镜像的不同镜像层可以位于不同的容器节点中。该节点级位置信息是指镜像或者该镜像的不同镜像层位于哪个或哪些容器节点中。
镜像代理服务模块141用于为每个容器节点内的容器引擎提供镜像资源地址。该镜像资源地址可以是镜像层的节点级位置信息、DC级的镜像位置信息和/或中央仓库的位置等。
每个容器节点包括容器引擎151和节点仓库152。
容器引擎151用于根据镜像代理服务模块141指定的镜像资源地址下载所需镜像。即,该容器引擎151可以与DC仓库内的镜像代理服务模块141交互,到该镜像代理服务模块141指定的镜像资源地址下载所需镜像。
节点仓库152用于存储本地容器节点内的镜像和/或镜像层。
至此,提供了根据本公开一些实施例的部署系统。该部署系统包括中央仓库和多个DC。中央仓库包括中央仓库镜像集和DC级镜像注册表。中央仓库镜像集用于存储容器的镜像全集和镜像信息。DC级镜像注册表用于存储并管理DC级的镜像位置信息。每个DC包括DC仓库和多个容器节点。DC仓库包括镜像代理服务模块、本地DC镜像集和本地仓库注册表。本地DC镜像集用于存储本地DC内的镜像全集。镜像代理服务模块用于为每个容器节点内的容器引擎提供有效的镜像资源地址。本地仓库注册表用于存储并管理本地DC内的镜像层的节点级位置信息。每个容器节点包括容器引擎和节点仓库。容器引擎用于根据镜像代理服务模块指定的镜像资源地址下载所需镜像。节点仓库用于存储本地容器节点内的镜像和/或镜像层。本公开通过设置中央仓库可以提升多DC容器镜像的可维护性,方便管理。另外,每个DC部署一个本地DC的镜像代理服务模块,提供本地DC内的每个镜像或镜像层的可用地址,容器节点之间可以下载镜像或镜像层,因此,解决了多节点单镜像仓库的下载瓶颈,降低了DC内单点下载压力。
图2是示出根据本公开另一些实施例的用于容器镜像的部署系统的结构示意图。如图2所示,该部署系统可以包括中央仓库300和多个DC(例如,DC 100和200)。
在一些实施例中,如图2所示,该部署系统还可以包括部署工具400。部署工具400用于管理部署脚本和容器镜像,向指定的镜像仓库上传镜像,并向指定的DC(例如一个或多个DC)下发部署脚本,以在该DC(例如一个或多个DC)中部署镜像。该指定的镜像仓库可以包括中央仓库、DC仓库和节点仓库中的至少一个。例如,部署工具400可以将部署脚本下发到指定DC的集群编排器中。该部署工具可以完成应用在一个或多个DC的部署。
在一些实施例中,如图2所示,每个DC还可以包括集群编排器160。集群编排器160用于根据部署脚本执行镜像部署,使得相应的容器节点下载由部署工具上传到中央仓库的镜像。
在上述实施例中,部署工具可以根据需要通过部署脚本指示相应的容器节点下载镜像或镜像层等。例如,可以指示部分容器节点执行更新镜像的操作。因此这样可以比较灵活的部署镜像。
在一些实施例中,部署工具400还可以用于将容器的镜像上传到中央仓库300,并更新DC级镜像注册表320中的该镜像的DC级位置。
在一些实施例中,镜像代理服务模块141还可以用于实时监听DC级镜像注册表,当监听到DC级镜像注册表发生更新时,将部署工具上传到中央仓库的镜像同步到本地DC中。
在上述实施中,部署工具将容器的镜像上传到中央仓库,并更新DC级镜像注册表中的该镜像的DC级位置,例如该镜像的DC级位置为DC 100。每个DC的镜像代理服务模块都实时监听DC级镜像注册表。而DC 100的镜像代理服务模块监听到DC级镜像注册表中在DC100中存储的上述镜像发生更新,就将上述镜像同步到本地DC 100中,并按照本地仓库注册表的信息将相应的镜像或镜像层下发到相应的容器节点中。这样可以统一地将上传到中央仓库的镜像部署到相应的容器节点中。
在一些实施例中,多个容器节点可以包括第一容器节点。例如,以容器节点110作为第一容器节点为例进行说明。
第一容器节点110的容器引擎可以用于访问本地DC内的镜像代理服务模块以下载第一镜像,以及在第一镜像存储在本地DC 100内的DC仓库140中之后,从本地DC 100内的DC仓库下载该第一镜像。
本地DC 100内的镜像代理服务模块141还可以用于遍历本地仓库注册表143,查询到本地仓库注册表中不存在第一镜像的节点级位置信息,则查询本地DC 100内的DC仓库140(例如,DC仓库的本地DC镜像集142)中是否存在该第一镜像;若本地DC内的DC仓库中存在该第一镜像,则通知第一容器节点110的容器引擎从本地DC内的DC仓库下载该第一镜像;若本地DC内的DC仓库中不存在该第一镜像,则从中央仓库300下载该第一镜像,将该第一镜像存储在本地DC内的DC仓库中,并更新DC级镜像注册表320的信息。更新后的DC级镜像注册表320记录了DC 100中存储了该第一镜像。
在上述实施例中,第一容器节点作为种子节点。种子节点是指集群内首个申请新镜像的容器节点。种子节点内的容器引擎访问镜像代理服务模块以下载镜像(例如上述第一镜像),镜像代理服务模块遍历本地仓库注册表,发现没有所需镜像信息,则用于下载地址的URL(uniform resource locator,统一资源定位符)默认指向DC仓库以下载所需镜像。若所需镜像在DC仓库中也不存在,则通过镜像代理服务模块到中央仓库下载镜像并存放在DC仓库中,并更新中央仓库的注册表位置信息。然后,种子节点内的容器引擎从本地DC内的DC仓库下载该镜像。这样实现了种子节点首次下载镜像的过程。
在一些实施例中,多个容器节点还可以包括第二容器节点。例如,以容器节点120作为第二容器节点为例进行说明。
第二容器节点120的容器引擎用于访问本地DC内的镜像代理服务模块141以下载第一镜像,以及通过端到端(Peer to Peer,简称为P2P)的方式从对应的容器节点(例如第一容器节点110)下载第一镜像,并将该第一镜像存储到第二容器节点120的节点仓库。
镜像代理服务模块141还可以用于遍历本地仓库注册表143,查询到第一镜像的不同镜像层所在容器节点的位置(例如该第一镜像在第一容器节点110中),则将该第一镜像的镜像资源地址重定向到对应的容器节点(例如第一容器节点110)。
在上述实施例中,除了种子节点之外的其余容器节点(例如第二容器节点)申请镜像(例如上述第一镜像)时,该其余容器节点的容器引擎访问镜像代理服务模块以下载该镜像,镜像代理服务模块遍历本地仓库注册表查询所需镜像的不同镜像层所在容器节点的位置,则重定向镜像层下载URL到对应的容器节点,利用P2P方式到一个或多个容器节点分层下载镜像。需要说明的是,对于查询到的不同镜像层所在的容器节点,第二容器节点可以将这些容器节点看作为种子节点。
在一些实施例中,对于P2P分层镜像下载,在镜像下载时可以以镜像层为最小单位下载。当本地DC仓库或DC内一个容器节点的本地节点仓库中已存在所需镜像的其中一个镜像层,即刻开始下载该镜像层。一个镜像的多个镜像层可以分别从不同的容器节点并行下载。通过向多容器节点的节点仓库并行下载镜像层,提升了VNF网元镜像下载速度。
在另一些实施例中,每个镜像层可以包括多个镜像层切片,在每个容器节点中也可以存在镜像层切片。在镜像下载时也可以以镜像层切片为最小单位下载。
在一些实施例中,第二容器节点120的容器引擎还可以用于在将第一镜像存储到该第二容器节点的节点仓库后,通知本地DC 100内的镜像代理服务模块141更新本地DC内的本地仓库注册表143中的该第一镜像的镜像层的节点级位置信息。更新后的本地仓库注册表143记录了第二容器节点存储了该第一镜像。
在一些实施例中,部署工具400还可以用于将新版本镜像上传到中央仓库300,并更新DC级镜像注册表320中的该新版本镜像的版本信息。集群编排器160还可以用于监听DC级镜像注册表320,当监听到该DC级镜像注册表的更新事件时,通知相应的容器引擎(即存储有旧版本镜像的容器节点的容器引擎)重新下载并运行该新版本镜像。该相应的容器引擎用于在将新版本镜像下载到相应的节点仓库(即本地容器节点的节点仓库)后,通知相应的镜像代理服务模块(即本地DC的镜像代理服务模块)更新本地仓库注册表中的该新版本镜像的节点级位置信息。
例如,部署工具400将新版本的第一镜像上传到中央仓库300,并更新DC级镜像注册表320中的该新版本的第一镜像的版本信息;DC 100内的集群编排器160监听到该DC级镜像注册表的更新事件。例如第一容器节点110存储有旧版本的第一镜像,则集群编排器160通知第一容器节点110的容器引擎重新下载并运行该新版本的第一镜像。该第一容器节点110的容器引擎在将新版本镜像下载到第一容器节点110的节点仓库后,通知DC 100内的镜像代理服务模块141更新本地仓库注册表143中的该新版本镜像的节点级位置信息。
在上述实施例中,在更新中央仓库内的镜像后,集群编排器在监听到更新事件后,自动通知本地DC内的容器节点更新镜像,因而简化了多DC镜像仓库的管理。
在本公开的一些实施例中,提出了一种基于分布式镜像仓库P2P分层镜像下载加速容器应用跨集群部署的方法。在多个DC之外部署中央仓库,该中央仓库存放镜像全集作为镜像种子。每个DC部署一个本地DC的DC仓库。该DC仓库包括镜像代理服务模块,镜像代理服务模块用于提供每个镜像或镜像层的可用地址。另外该DC仓库包括本地DC镜像集,本地DC镜像集存储本地DC的镜像。DC内的容器节点之间通过P2P方式互连。容器引擎指向本地DC的镜像代理服务模块提供的资源可用地址下载相应镜像或镜像层。分布式镜像仓库保证了镜像的可靠性。DC内的容器节点之间的P2P互连将各DC直连中央仓库的单点下载压力转化为DC内部多点下载,解决了集中式镜像仓库瓶颈问题。通过从多个容器节点并行下载镜像层,提升了容器镜像下载速度。上述方案既能降低中央仓库的单点下载压力,又能实现多DC镜像的统一管理,实现了容器应用跨DC快速部署与集中管理。
通过将集中式的镜像管理和P2P镜像下载相结合,简化容器镜像管理,加速容器镜像下载部署,提升了大型容器应用跨DC部署效率,降低跨地区部署网络时延。
图3是示出根据本公开一些实施例的用于容器镜像的部署方法的流程图。如图3所示,该部署方法可以包括步骤S302至S304。
在步骤S302,部署工具将容器的镜像上传到中央仓库,并向指定的DC下发部署脚本。
在步骤S304,指定的DC内的集群编排器根据部署脚本执行镜像部署,使得相应的容器节点下载由部署工具上传到中央仓库的镜像。
至此,提供了根据本公开一些实施例的用于容器镜像的部署方法。在该方法中,部署工具将容器的镜像上传到中央仓库,并向指定的DC下发部署脚本;该指定的DC内的集群编排器根据部署脚本执行镜像部署,使得相应的容器节点下载上述镜像。该部署方法可以比较灵活的部署镜像。
在一些实施例中,上述部署方法还可以包括:部署工具将容器的镜像上传到中央仓库,并更新DC级镜像注册表中的该镜像的DC级位置;该镜像代理服务模块实时监听该DC级镜像注册表,当监听到该DC级镜像注册表发生更新时,将部署工具上传到中央仓库的镜像同步到本地DC中。这样可以统一地将上传到中央仓库的镜像部署到相应的容器节点中。
图4是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图。所述多个容器节点可以包括第一容器节点。如图4所示,该部署方法可以包括步骤S402至S410。
在步骤S402,第一容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载第一镜像。
在步骤S404,镜像代理服务模块遍历本地仓库注册表,查询到本地仓库注册表中不存在第一镜像的节点级位置信息,则查询本地DC内的DC仓库中是否存在第一镜像。如果是,则过程进入步骤S406;否则过程进入步骤S408。
在步骤S406,若本地DC内的DC仓库中存在第一镜像,则镜像代理服务模块通知第一容器节点的容器引擎从本地DC内的DC仓库下载第一镜像。
在步骤S408,若本地DC内的DC仓库中不存在第一镜像,则通过镜像代理服务模块从中央仓库下载第一镜像,将第一镜像存储在本地DC内的DC仓库中,并更新DC级镜像注册表的信息。
在步骤S410,在第一镜像存储在本地DC内的DC仓库中之后,第一容器节点的容器引擎从本地DC内的DC仓库下载第一镜像。
至此,描述了根据本公开另一些实施例的用于容器镜像的部署方法。这实现了第一容器节点的容器引擎从DC仓库或中央仓库下载镜像的过程。
图5是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图。多个容器节点可以包括第二容器节点。如图5所示,该部署方法可以包括步骤S502至S506。
在步骤S502,第二容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载第一镜像。
在步骤S504,镜像代理服务模块遍历本地仓库注册表,查询到第一镜像的不同镜像层所在容器节点的位置,则将第一镜像的镜像资源地址重定向到对应的容器节点。
在步骤S506,第二容器节点的容器引擎通过端到端的方式从对应的容器节点下载第一镜像,并将第一镜像存储到第二容器节点的节点仓库。
至此,描述了第二容器节点从其他容器节点下载镜像的过程。通过以P2P的方式向多个容器节点的节点仓库并行下载镜像层,从而提升了VNF网元镜像下载速度。
在一些实施例中,上述部署方法还可以包括:在第二容器节点的容器引擎将第一镜像存储到第二容器节点的节点仓库后,第二容器节点的容器引擎通知本地DC内的镜像代理服务模块更新本地DC内的本地仓库注册表中的第一镜像的镜像层的节点级位置信息。
在一些实施例中,镜像层下载优先查询DC内本地仓库注册表从DC内的容器节点间通过P2P方式下载,其次再选择从DC仓库下载。
图6是示出根据本公开另一些实施例的用于容器镜像的部署方法的流程图。如图6所示,该部署方法可以包括步骤S602至S606。
在步骤S602,部署工具将新版本镜像上传到中央仓库,并更新DC级镜像注册表中的该新版本镜像的版本信息。
在步骤S604,在多个DC中的至少一个DC存储有与新版本镜像对应的旧版本镜像的情况下,该至少一个DC的集群编排器监听到DC级镜像注册表的更新事件,通知相应的容器引擎重新下载并运行该新版本镜像。容器引擎重新下载新版本镜像的过程与前面描述的下载镜像的过程相同或相似,这里不再赘述。
在步骤S606,在相应的容器引擎将新版本镜像下载到相应的节点仓库后,该相应的容器引擎通知相应的镜像代理服务模块更新本地仓库注册表中的该新版本镜像的节点级位置信息。
至此,描述了更新新版本镜像的过程。在更新中央仓库内的镜像后,集群编排器在监听到更新事件后,自动通知本地DC内的容器节点更新镜像,因而简化了多DC镜像仓库的管理。
图7是示出根据本公开另一些实施例的用于容器镜像的部署系统的结构示意图。该部署系统包括存储器710和处理器720。其中:
存储器710可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图3至图6中的至少一个所对应实施例中的指令。
处理器720耦接至存储器710,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器720用于执行存储器中存储的指令,从而可以提升多DC容器镜像的可维护性,以及解决了多节点单镜像仓库的下载瓶颈,降低了DC内单点下载压力。
需要说明的是,部署系统可以包括多个存储器710和多个处理器720。这些多个存储器710和多个处理器720可以配套地设置在不同设备中。
在一些实施例中,还可以如图8所示,该部署系统800包括存储器810和处理器820。处理器820通过BUS总线830耦合至存储器810。该部署系统800还可以通过存储接口840连接至外部存储装置850以便调用外部数据,还可以通过网络接口860连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而可以提升多DC容器镜像的可维护性,以及解决了多节点单镜像仓库的下载瓶颈,降低了DC内单点下载压力。
需要说明的是,部署系统可以包括多个存储器810、多个处理器820、多个BUS总线830、多个存储接口840、多个外部存储装置850和多个网络接口860。这些多个存储器810、多个处理器820、多个BUS总线830、多个存储接口840、多个外部存储装置850和多个网络接口860可以配套地设置在不同设备中。
在另一些实施例中,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图3至图6中的至少一个所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (15)
1.一种用于容器镜像的部署系统,包括:中央仓库和多个数据中心DC;
所述中央仓库包括中央仓库镜像集和DC级镜像注册表,所述中央仓库镜像集用于存储容器的镜像全集和镜像信息,所述DC级镜像注册表用于存储并管理DC级的镜像位置信息;
每个DC包括DC仓库和多个容器节点;
所述DC仓库包括镜像代理服务模块、本地DC镜像集和本地仓库注册表,
所述本地DC镜像集用于存储本地DC内的镜像全集,
所述镜像代理服务模块用于为每个容器节点内的容器引擎提供镜像资源地址,
所述本地仓库注册表用于存储并管理所述本地DC内的镜像层的节点级位置信息;
每个容器节点包括:容器引擎和节点仓库;
所述容器引擎用于根据所述镜像代理服务模块指定的镜像资源地址下载所需镜像,
所述节点仓库用于存储本地容器节点内的镜像和/或镜像层。
2.根据权利要求1所述的部署系统,还包括:
部署工具,用于管理部署脚本和容器镜像,向指定的镜像仓库上传镜像,并向指定的DC下发部署脚本,以在所述DC中部署镜像;其中,所述指定的镜像仓库包括所述中央仓库、所述DC仓库和所述节点仓库中的至少一个;
每个DC还包括集群编排器,所述集群编排器用于根据所述部署脚本执行镜像部署,使得相应的容器节点下载由所述部署工具上传到所述中央仓库的所述镜像。
3.根据权利要求2所述的部署系统,其中,
所述部署工具还用于将容器的镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该镜像的DC级位置;
所述镜像代理服务模块还用于实时监听所述DC级镜像注册表,当监听到所述DC级镜像注册表发生更新时,将所述部署工具上传到所述中央仓库的镜像同步到本地DC中。
4.根据权利要求2所述的部署系统,其中,所述多个容器节点包括第一容器节点;
所述第一容器节点的容器引擎用于访问本地DC内的镜像代理服务模块以下载第一镜像,以及在所述第一镜像存储在本地DC内的DC仓库中之后,从所述本地DC内的DC仓库下载所述第一镜像;
所述镜像代理服务模块还用于遍历本地仓库注册表,查询到所述本地仓库注册表中不存在所述第一镜像的节点级位置信息,则查询本地DC内的DC仓库中是否存在所述第一镜像;若本地DC内的DC仓库中存在所述第一镜像,则通知所述第一容器节点的容器引擎从本地DC内的DC仓库下载所述第一镜像;若本地DC内的DC仓库中不存在所述第一镜像,则从所述中央仓库下载所述第一镜像,将所述第一镜像存储在本地DC内的DC仓库中,并更新所述DC级镜像注册表的信息。
5.根据权利要求4所述的部署系统,其中,所述多个容器节点还包括第二容器节点;
所述第二容器节点的容器引擎用于访问本地DC内的镜像代理服务模块以下载所述第一镜像,以及通过端到端的方式从对应的容器节点下载所述第一镜像,并将所述第一镜像存储到所述第二容器节点的节点仓库;
所述镜像代理服务模块还用于遍历本地仓库注册表,查询到所述第一镜像的不同镜像层所在容器节点的位置,则将所述第一镜像的镜像资源地址重定向到对应的容器节点。
6.根据权利要求5所述的部署系统,其中,
所述第二容器节点的容器引擎还用于在将所述第一镜像存储到所述第二容器节点的节点仓库后,通知本地DC内的镜像代理服务模块更新本地DC内的本地仓库注册表中的所述第一镜像的镜像层的节点级位置信息。
7.根据权利要求2所述的部署系统,其中,
所述部署工具还用于将新版本镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该新版本镜像的版本信息;
所述集群编排器还用于监听所述DC级镜像注册表,当监听到所述DC级镜像注册表的更新事件时,通知相应的容器引擎重新下载并运行所述新版本镜像;
所述相应的容器引擎用于在将所述新版本镜像下载到相应的节点仓库后,通知相应的镜像代理服务模块更新本地仓库注册表中的所述新版本镜像的节点级位置信息。
8.一种基于如权利要求2所述的部署系统的用于容器镜像的部署方法,包括:
所述部署工具将容器的镜像上传到所述中央仓库,并向指定的DC下发部署脚本;
所述指定的DC内的集群编排器根据所述部署脚本执行镜像部署,使得相应的容器节点下载由所述部署工具上传到所述中央仓库的所述镜像。
9.根据权利要求8所述的部署方法,还包括:
所述部署工具将容器的镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该镜像的DC级位置;
所述镜像代理服务模块实时监听所述DC级镜像注册表,当监听到所述DC级镜像注册表发生更新时,将所述部署工具上传到所述中央仓库的镜像同步到本地DC中。
10.根据权利要求8所述的部署方法,其中,所述多个容器节点包括第一容器节点;
所述部署方法还包括:
所述第一容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载第一镜像;
所述镜像代理服务模块遍历本地仓库注册表,查询到所述本地仓库注册表中不存在所述第一镜像的节点级位置信息,则查询本地DC内的DC仓库中是否存在所述第一镜像;
若本地DC内的DC仓库中存在所述第一镜像,则所述镜像代理服务模块通知所述第一容器节点的容器引擎从本地DC内的DC仓库下载所述第一镜像;
若本地DC内的DC仓库中不存在所述第一镜像,则通过所述镜像代理服务模块从所述中央仓库下载所述第一镜像,将所述第一镜像存储在本地DC内的DC仓库中,并更新所述DC级镜像注册表的信息;在所述第一镜像存储在所述本地DC内的DC仓库中之后,所述第一容器节点的容器引擎从所述本地DC内的DC仓库下载所述第一镜像。
11.根据权利要求10所述的部署方法,其中,所述多个容器节点还包括第二容器节点;
所述部署方法还包括:
所述第二容器节点的容器引擎访问本地DC内的镜像代理服务模块以下载所述第一镜像;
所述镜像代理服务模块遍历本地仓库注册表,查询到所述第一镜像的不同镜像层所在容器节点的位置,则将所述第一镜像的镜像资源地址重定向到对应的容器节点;以及
所述第二容器节点的容器引擎通过端到端的方式从所述对应的容器节点下载所述第一镜像,并将所述第一镜像存储到所述第二容器节点的节点仓库。
12.根据权利要求11所述的部署方法,还包括:
在所述第二容器节点的容器引擎将所述第一镜像存储到所述第二容器节点的节点仓库后,所述第二容器节点的容器引擎通知本地DC内的镜像代理服务模块更新本地DC内的本地仓库注册表中的所述第一镜像的镜像层的节点级位置信息。
13.根据权利要求8所述的部署方法,还包括:
所述部署工具将新版本镜像上传到所述中央仓库,并更新所述DC级镜像注册表中的该新版本镜像的版本信息;
在所述多个DC中的至少一个DC存储有与所述新版本镜像对应的旧版本镜像的情况下,所述至少一个DC的集群编排器监听到所述DC级镜像注册表的更新事件,通知相应的容器引擎重新下载并运行所述新版本镜像;以及
在所述相应的容器引擎将所述新版本镜像下载到相应的节点仓库后,所述相应的容器引擎通知相应的镜像代理服务模块更新本地仓库注册表中的所述新版本镜像的节点级位置信息。
14.一种用于容器镜像的部署系统,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求8至13任意一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求8至13任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911116318.5A CN112817606A (zh) | 2019-11-15 | 2019-11-15 | 用于容器镜像的部署系统及其部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911116318.5A CN112817606A (zh) | 2019-11-15 | 2019-11-15 | 用于容器镜像的部署系统及其部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817606A true CN112817606A (zh) | 2021-05-18 |
Family
ID=75851410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911116318.5A Pending CN112817606A (zh) | 2019-11-15 | 2019-11-15 | 用于容器镜像的部署系统及其部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817606A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114006753A (zh) * | 2021-10-29 | 2022-02-01 | 中国电信股份有限公司 | 一种容器镜像层下载拦截方法和装置 |
CN114172811A (zh) * | 2021-11-01 | 2022-03-11 | 北京银盾泰安网络科技有限公司 | 一种容器镜像部署平台及其部署方法 |
WO2024077736A1 (zh) * | 2022-10-13 | 2024-04-18 | 南京邮电大学 | 一种面向物联网的机器学习容器镜像下载系统及其方法 |
-
2019
- 2019-11-15 CN CN201911116318.5A patent/CN112817606A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114006753A (zh) * | 2021-10-29 | 2022-02-01 | 中国电信股份有限公司 | 一种容器镜像层下载拦截方法和装置 |
CN114172811A (zh) * | 2021-11-01 | 2022-03-11 | 北京银盾泰安网络科技有限公司 | 一种容器镜像部署平台及其部署方法 |
CN114172811B (zh) * | 2021-11-01 | 2023-11-24 | 浙江银盾云科技有限公司 | 一种容器镜像部署平台及其部署方法 |
WO2024077736A1 (zh) * | 2022-10-13 | 2024-04-18 | 南京邮电大学 | 一种面向物联网的机器学习容器镜像下载系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10700991B2 (en) | Multi-cluster resource management | |
US11882177B2 (en) | Orchestration of data services in multiple cloud infrastructures | |
CN106888254B (zh) | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 | |
CN112817606A (zh) | 用于容器镜像的部署系统及其部署方法 | |
CN109391664A (zh) | 用于多集群容器部署的系统和方法 | |
US20150019495A1 (en) | Customizable storage system for virtual databases | |
CN109818934B (zh) | 一种自动化日志处理的方法、装置及计算设备 | |
CN105205143B (zh) | 一种文件存储及处理方法、设备和系统 | |
US10740192B2 (en) | Restoring NAS servers from the cloud | |
JP2015512551A (ja) | ネットワーク・インフラストラクチャにおけるデータ記憶及び編成を容易にするコンシステント・リング名前空間 | |
CN111190547B (zh) | 一种分布式容器镜像存储与分发系统与方法 | |
US11726764B2 (en) | Upgrade systems for service domains | |
US10803041B2 (en) | Collision detection using state management of configuration items | |
CN104618136B (zh) | 用于刀片服务器的配置管理方法和装置 | |
CN103034540A (zh) | 分布式消息系统及其设备和协调方法 | |
US10474696B2 (en) | Replication groups for content libraries | |
CN112052230B (zh) | 多机房数据同步方法、计算设备及存储介质 | |
CN111104387A (zh) | 在服务器上获取数据集的方法和装置 | |
CN110198330A (zh) | 镜像下载方法和装置 | |
US11645100B2 (en) | Global cache for container images in a clustered container host system | |
CN115048188A (zh) | 容器的网络隔离控制系统、方法、电子设备及存储介质 | |
EP4162649B1 (en) | Stable references for network function life cycle management automation | |
US20150189019A1 (en) | Managing network attached storage | |
US20200133709A1 (en) | System and method for content - application split | |
CN108650320B (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 |