CN109391664A - 用于多集群容器部署的系统和方法 - Google Patents
用于多集群容器部署的系统和方法 Download PDFInfo
- Publication number
- CN109391664A CN109391664A CN201710684007.3A CN201710684007A CN109391664A CN 109391664 A CN109391664 A CN 109391664A CN 201710684007 A CN201710684007 A CN 201710684007A CN 109391664 A CN109391664 A CN 109391664A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- image
- warehouse
- container
- local
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000003860 storage Methods 0.000 claims description 46
- 238000013515 script Methods 0.000 claims description 42
- 238000012217 deletion Methods 0.000 claims description 20
- 230000037430 deletion Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于多集群容器部署的系统和方法。该系统包括:容器引擎,用于向本地镜像仓库发送镜像下载地址获取请求,该请求包含镜像标识;通过镜像下载URL从本地镜像仓库下载容器镜像;本地镜像仓库,用于查询是否已经存储或缓存与镜像标识对应的容器镜像;如果存在,则直接向容器引擎返回镜像下载URL;否则从镜像管理中心查询获得指向远程镜像仓库的镜像下载URL,从远程镜像仓库中将缺失的容器镜像下载到本地镜像缓存中,生成指向本地镜像缓存的镜像下载URL,将该镜像下载URL上报给镜像管理中心并返回给容器引擎;镜像管理中心,用于向本地镜像仓库返回指向远程镜像仓库的镜像下载URL。本发明提升了容器应用跨集群部署效率。
Description
技术领域
本发明涉及云计算领域,特别涉及一种用于多集群容器部署的系统和方法。
背景技术
容器应用通常采用容器镜像+部署脚本的形式部署,首先将容器镜像上传到镜像仓库,然后通过容器集群编排器执行部署脚本,调度容器引擎下载容器镜像,运行容器实例。大型容器应用在很多业务场景下往往需要在多个容器集群中部署,例如业务迁移、分区就近服务、容灾备份等,现有容器应用跨集群部署方法均存在一定不足。现有技术中存在两种镜像仓库系统,分别是集中式镜像仓库系统和独立式镜像仓库系统。
图1是示意性地示出现有技术中的集中式镜像仓库系统的结构图。如图1所示,在该集中式镜像仓库系统中,多个集群共用同一个镜像仓库,集中式镜像仓库需要应对多个集群巨大的镜像存储和下载压力,而且容器集群与镜像仓库可能部署在不同地区,存在明显网络时延,影响镜像下载速度。
图2是示意性地示出现有技术中的独立式镜像仓库系统的结构图。如图2所示,在该独立式镜像仓库系统中,为每个集群设立一套镜像仓库,该方案需为每个集群单独上传镜像,而且要为每个集群修改部署脚本,将所有的镜像地址指向该集群的镜像仓库,多套容器镜像和部署脚本副本的存在不仅增加了应用跨集群部署的复杂度,也难以维护。
发明内容
本发明的发明人发现上述现有技术中存在问题,并因此针对所述问题中的至少一个问题提出了一种新的技术方案。
根据本发明的第一方面,提供了一种用于多集群容器部署的系统,包括:容器引擎,用于向本地镜像仓库发送第一镜像下载地址获取请求,所述第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识;并用于通过从所述本地镜像仓库返回的镜像下载统一资源定位符URL从所述本地镜像仓库下载容器镜像;本地镜像仓库,用于在接收到所述第一镜像下载地址获取请求后,查询是否已经存储或缓存了与所述镜像标识对应的容器镜像;如果存在,则直接向所述容器引擎返回指向本地镜像仓库的镜像存储位置的镜像下载URL;否则,向所述镜像管理中心发送第二镜像下载地址获取请求,所述第二镜像下载地址获取请求包含所述镜像标识;并在从所述镜像管理中心接收到指向远程镜像仓库的镜像下载URL后,根据所述指向远程镜像仓库的镜像下载URL从远程镜像仓库中将缺失的所述容器镜像下载到本地镜像缓存中,生成指向所述本地镜像缓存的镜像下载URL,将所述指向本地镜像缓存的镜像下载URL上报给镜像管理中心并返回给所述容器引擎;以及镜像管理中心,用于在接收到所述第二镜像下载地址获取请求后,向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL。
在一个实施例中,所述镜像管理中心还用于在接收到所述第二镜像下载地址获取请求后,获取对应于所述镜像标识的容器镜像的层次依赖关系,并将所述层次依赖关系返回给所述本地镜像仓库;所述本地镜像仓库还用于在获得所述层次依赖关系后,将所述层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将所述层次依赖关系返回给所述容器引擎;其中,所述待下载列表包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识;所述容器引擎还用于在获得所述层次依赖关系后,查询并缓存与所述层次依赖关系中不存在的镜像标识对应的容器镜像。
在一个实施例中,在与所述镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,所述镜像管理中心采用轮转或随机的方式向所述本地镜像仓库返回与所述多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL;或者,所述镜像管理中心向所述本地镜像仓库返回与所述多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。
在一个实施例中,所述指向远程镜像仓库的镜像下载URL包含:远程镜像仓库地址和容器镜像信息;其中,所述容器镜像信息包括:镜像标识和镜像所属仓库信息。
在一个实施例中,所述镜像管理中心还用于在将所述层次依赖关系返回给所述本地镜像仓库的过程中,还将与所述指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给所述本地镜像仓库;所述本地镜像仓库还用于从所述镜像管理中心接收并存储所述镜像文件的哈希校验码。
在一个实施例中,所述镜像管理中心还用于在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,所述镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码;所述本地镜像仓库还用于在接收到所述镜像文件变更通知后,根据该容器镜像的镜像标识对所述变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从所述镜像管理中心查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。
在一个实施例中,所述本地镜像仓库还用于在所缓存的容器镜像失效后,将该失效的容器镜像自动删除,并调用所述镜像管理中心的镜像下载URL删除接口删除所述本地镜像仓库的该失效的容器镜像的镜像下载URL。
在一个实施例中,所述本地镜像仓库还用于在接收到所述镜像管理中心下发的镜像删除通知后,实时删除与所述镜像删除通知所包含的镜像标识对应的容器镜像;其中,远程镜像仓库作为存储容器镜像的原始镜像仓库,在所述原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
在一个实施例中,所述本地镜像仓库还用于作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;所述镜像管理中心还用于在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
在一个实施例中,所述镜像管理中心还用于将镜像删除指令下发给所述本地镜像仓库,其中,所述本地镜像仓库作为存储容器镜像的原始镜像仓库,所述镜像删除指令包含需要删除的容器镜像的镜像标识;并在接收到从所述本地镜像仓库返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发所述镜像删除通知;所述本地镜像仓库还用于在接收到所述镜像删除指令后,删除对应的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识。
在一个实施例中,所述镜像标识包括:容器镜像的镜像名称和镜像版本。
在一个实施例中,所述系统还包括:部署工具,用于将容器镜像上传到所述本地镜像仓库,以及向选定的集群列表的容器集群编排器下发部署脚本;其中,所述本地镜像仓库还用于向所述镜像管理中心上报被上传的所述容器镜像的容器镜像信息;以及容器集群编排器,用于解析和执行所述部署脚本,从所述部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎发送调度消息,其中所述调度消息包含所述需要运行的容器镜像的镜像标识;其中,所述容器引擎在接收到所述调度消息后,向本地镜像仓库发送所述第一镜像下载地址获取请求。
根据本发明的第二方面,提供了一种用于多集群容器部署的方法,包括:容器引擎向本地镜像仓库发送第一镜像下载地址获取请求,所述第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识;所述本地镜像仓库在接收到所述第一镜像下载地址获取请求后,查询是否已经存储或缓存了与所述镜像标识对应的容器镜像;如果存在,则直接向所述容器引擎返回指向本地镜像仓库的镜像存储位置的镜像下载URL;否则,向所述镜像管理中心发送第二镜像下载地址获取请求,所述第二镜像下载地址获取请求包含所述镜像标识;所述镜像管理中心在接收到所述第二镜像下载地址获取请求后,向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL;所述本地镜像仓库在从所述镜像管理中心接收到指向远程镜像仓库的镜像下载URL后,根据所述指向远程镜像仓库的镜像下载URL从远程镜像仓库中将缺失的所述容器镜像下载到本地镜像缓存中,生成指向所述本地镜像缓存的镜像下载URL,将所述指向本地镜像缓存的镜像下载URL上报给镜像管理中心并返回给所述容器引擎;以及所述容器引擎通过从所述本地镜像仓库返回的镜像下载URL从所述本地镜像仓库下载容器镜像。
在一个实施例中,所述方法还包括:所述镜像管理中心在接收到所述第二镜像下载地址获取请求后,获取对应于所述镜像标识的容器镜像的层次依赖关系,并将所述层次依赖关系返回给所述本地镜像仓库;所述本地镜像仓库在获得所述层次依赖关系后,将所述层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将所述层次依赖关系返回给所述容器引擎;其中,所述待下载列表包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识;以及所述容器引擎在获得所述层次依赖关系后,查询并缓存与所述层次依赖关系中不存在的镜像标识对应的容器镜像。
在一个实施例中,所述镜像管理中心向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL的步骤包括:在与所述镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,所述镜像管理中心采用轮转或随机的方式向所述本地镜像仓库返回与所述多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL;或者,所述镜像管理中心向所述本地镜像仓库返回与所述多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。
在一个实施例中,所述指向远程镜像仓库的镜像下载URL包含:远程镜像仓库地址和容器镜像信息;其中,所述容器镜像信息包括:镜像标识和镜像所属仓库信息。
在一个实施例中,所述方法还包括:所述镜像管理中心在将所述层次依赖关系返回给所述本地镜像仓库的过程中,还将与所述指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给所述本地镜像仓库;以及所述本地镜像仓库从所述镜像管理中心接收并存储所述镜像文件的哈希校验码。
在一个实施例中,所述方法还包括:所述镜像管理中心在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,所述镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码;以及所述本地镜像仓库在接收到所述镜像文件变更通知后,根据该容器镜像的镜像标识对所述变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从所述镜像管理中心查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。
在一个实施例中,所述方法还包括:所述本地镜像仓库在所缓存的容器镜像失效后,将该失效的容器镜像自动删除,并调用所述镜像管理中心的镜像下载URL删除接口删除所述本地镜像仓库的该失效的容器镜像的镜像下载URL。
在一个实施例中,所述方法还包括:远程镜像仓库作为存储容器镜像的原始镜像仓库,在所述原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知;以及所述本地镜像仓库在接收到所述镜像管理中心下发的镜像删除通知后,实时删除与所述镜像删除通知所包含的镜像标识对应的容器镜像。
在一个实施例中,所述方法还包括:所述本地镜像仓库作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;以及所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
在一个实施例中,所述方法还包括:所述镜像管理中心将镜像删除指令下发给所述本地镜像仓库,其中,所述本地镜像仓库作为存储容器镜像的原始镜像仓库,所述镜像删除指令包含需要删除的容器镜像的镜像标识;所述本地镜像仓库在接收到所述镜像删除指令后,删除对应的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;以及所述镜像管理中心在接收到从所述本地镜像仓库返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发所述镜像删除通知。
在一个实施例中,所述镜像标识包括:容器镜像的镜像名称和镜像版本。
在一个实施例中,在容器引擎向本地镜像仓库发送第一镜像下载地址获取请求之前,所述方法还包括:部署工具将容器镜像上传到所述本地镜像仓库;所述本地镜像仓库向所述镜像管理中心上报被上传的所述容器镜像的容器镜像信息;所述部署工具向选定的集群列表的容器集群编排器下发部署脚本;以及所述容器集群编排器解析和执行所述部署脚本,从所述部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎发送调度消息,其中所述调度消息包含所述需要运行的容器镜像的镜像标识;其中,所述容器引擎在接收到所述调度消息后,向本地镜像仓库发送所述第一镜像下载地址获取请求。
根据本发明的第三方面,提供了一种用于多集群容器部署的系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。
本发明中,通过部署在容器集群的本地镜像仓库获取和缓存远程镜像,集群内的容器引擎统一从本地镜像仓库中直接下载本地的容器镜像或远程的容器镜像,从而提升容器镜像下载速度,降低单一镜像仓库的镜像下载压力,加速容器应用跨集群部署,从而提升容器应用跨集群部署效率,缩短部署升级时间。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1是示意性地示出现有技术中的集中式镜像仓库系统的结构图。
图2是示意性地示出现有技术中的独立式镜像仓库系统的结构图。
图3是示意性地示出根据本发明一个实施例的用于多集群容器部署的系统的结构图。
图4是示出根据本发明一个实施例的用于多集群容器部署的方法的流程图。
图5是示意性地示出根据本发明另一个实施例的用于多集群容器部署的系统的结构图。
图6是示意性地示出根据本发明另一个实施例的用于多集群容器部署的系统的结构图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图3是示意性地示出根据本发明一个实施例的用于多集群容器部署的系统的结构图。如图3所示,该系统可以包括:容器引擎31(或36)、本地镜像仓库32(或37)和镜像管理中心33。下面以容器引擎31、本地镜像仓库32和镜像管理中心33为例进行说明。
容器引擎31可以用于向本地镜像仓库32发送第一镜像下载地址获取请求,该第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识;并可以用于通过从本地镜像仓库32返回的镜像下载URL(Uniform Resource Locator,统一资源定位符)从该本地镜像仓库32下载容器镜像。例如,镜像标识可以包括:容器镜像的镜像名称和镜像版本。容器引擎还可以在从本地镜像仓库下载容器镜像后,挂载容器资源,启动容器实例。
本地镜像仓库32可以包括:本地镜像缓存321和镜像代理模块322。当然,本地镜像仓库还可以包括:保存在磁盘存储或本地镜像缓存(如内存、闪存)中的容器镜像。
本地镜像仓库32(例如本地镜像仓库32的镜像代理模块322)可以用于在接收到第一镜像下载地址获取请求后,查询是否已经存储或缓存了与镜像标识对应的容器镜像;如果存在,则直接向容器引擎31返回指向本地镜像仓库的镜像存储位置的镜像下载URL;否则,向镜像管理中心33发送第二镜像下载地址获取请求,该第二镜像下载地址获取请求包含上述镜像标识;并在从镜像管理中心33接收到指向远程镜像仓库37的镜像下载URL后,根据该指向远程镜像仓库的镜像下载URL从远程镜像仓库37中将缺失的容器镜像下载到本地镜像缓存321中,生成指向本地镜像缓存321的镜像下载URL,将指向本地镜像缓存321的镜像下载URL上报给镜像管理中心33并返回给容器引擎31。
本地镜像仓库可以通过镜像代理模块下载本地镜像仓库不存在的容器镜像(层)文件,并将容器镜像文件保存在本地镜像仓库的镜像缓存中,当容器引擎向本地镜像仓库请求获取镜像时,直接从本地仓库的镜像缓存返回镜像文件数据给容器引擎。
需要说明的是,本发明的术语“远程镜像仓库”是相对于不同集群的镜像仓库而描述的概念,实际上,远程镜像仓库相对于其自己所在集群的容器引擎也是本地镜像仓库。例如在图3中,在集群B中,本地镜像仓库37相对于容器引擎36是本地镜像仓库,但是相对于的集群A中的镜像仓库32可以看作远程镜像仓库;类似地,在集群A中,本地镜像仓库32相对于容器引擎31是本地镜像仓库,但是相对于的集群B中的镜像仓库37也可以看作远程镜像仓库,因此远程镜像仓库是一个相对的概念,以下类似。在下面的实施例中,以集群A中的镜像仓库32作为本地镜像仓库,集群B中的镜像仓库37作为远程镜像仓库来详细说明。
本地镜像仓库可以部署在集群的本地数据中心,存放本地容器镜像,向镜像管理中心上报本地镜像信息,从远程镜像仓库下载并缓存远程镜像。本地镜像仓库可以具有可供公网访问的IP地址或域名,本地镜像仓库的公网地址可以在镜像仓库启动时向镜像管理中心注册。
镜像管理中心33用于在接收到第二镜像下载地址获取请求后,向本地镜像仓库32返回指向远程镜像仓库37的镜像下载URL。例如,该指向远程镜像仓库的镜像下载URL可以包含:远程镜像仓库地址和容器镜像信息。该容器镜像信息可以包括:镜像标识和镜像所属仓库信息。镜像标识可以包括:容器镜像的镜像名称和镜像版本。
镜像名称是镜像的名称字符串,如mysql、wordpress等。镜像版本是镜像的版本字符串,如1.0.0、1.1.0、1.1.1-beta等。镜像名称和镜像版本一起可作为容器镜像的唯一标识(即镜像标识)。镜像所属仓库是指存放该镜像的原始镜像仓库,即该镜像最初上传的镜像仓库。除此之外,容器镜像信息还可以包括:镜像文件的哈希校验码、父镜像标识(以及祖先镜像标识)和镜像下载URL列表等。镜像文件的哈希校验码是指对镜像文件用MD5或SHA等数据摘要算法生成的长度不小于128位的字符串,可用于识别镜像文件内容是否发生变化。父镜像标识是该镜像所依赖的下层镜像的唯一标识(包括父镜像名称和父镜像版本)。镜像下载URL列表包含该镜像的一个或多个下载URL,每个下载URL指向一个镜像仓库,镜像下载地址的形式通常为:镜像所属仓库+镜像URI(Uniform Resource Identifier,统一资源标识符)+镜像名称+镜像版本。例如,
http://registry1.ct.com:5000/gdapp/wordpress:4.8.0,
其中registry1.ct.com:5000为镜像所属仓库地址和端口,/gdapp为镜像资源URI路径,wordpress为镜像名称,4.8.0为镜像版本。
在上述实施例中,提供了一种用于多集群容器部署的系统。通过部署在容器集群本地镜像仓库自动发现、获取和缓存远程镜像,集群内的容器引擎统一从本地镜像仓库中直接下载本地的容器镜像或远程的容器镜像,从而提升容器镜像下载速度,降低单一镜像仓库的镜像下载压力,加速容器应用跨集群部署,从而提升容器应用跨集群部署效率,缩短部署升级时间。
在本发明的实施例中,本地镜像仓库的镜像可以保存在磁盘存储或高速缓存(即本地镜像缓存,例如内存、闪存)中,通常情况下,在磁盘存储的镜像是长时间持久化保存的,只要不主动删除就会一直保存,而在缓存中保存的镜像是临时存放的,超出了缓存的有效时间就会自动删除。同样地,远程镜像仓库的镜像也可以保存在磁盘存储或高速缓存(内存、闪存)中。因此,从远程镜像仓库下载镜像也是优先从缓存中获取镜像,缓存不存在再从磁盘存储中获取镜像。
在一个实施例中,在与镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,镜像管理中心33可以采用轮转(RoundRobin)或随机的方式向本地镜像仓库32返回与该多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL。
在另一个实施例中,在与镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,镜像管理中心33可以向本地镜像仓库32返回与该多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。例如,所有镜像仓库(包括所述多个远程镜像仓库)可以定时地向镜像管理中心上报自己的负载(例如每秒的下载量),当镜像管理中心需要向某一个本地镜像仓库下发镜像下载URL时,可以从多个远程镜像仓库中选择负载最小的远程镜像仓库,将与该负载最小的该远程镜像仓库对应的镜像下载URL返回给本地镜像仓库。本地镜像仓库从该远程镜像仓库下载容器镜像,由于负载最小,所有下载最快,从而可以提高下载速度,进一步提升容器应用跨集群部署效率,缩短部署升级时间。
在本发明的实施例中,容器镜像可以采用层次结构组织(即存在层次依赖关系),下层的镜像称为父镜像,上层的镜像称为子镜像,子镜像可以引用父镜像的文件,也可以覆盖父镜像的一个或多个文件,容器引擎可以通过镜像的层次关系从镜像仓库中下载容器主机上缺失的镜像层。例如,在一个5层的容器镜像中,顶层镜像是App1.0,App1.0的父镜像是Tomcat8.1,Tomcat8.1的父镜像是JRE1.8.0.91,JRE1.8.0.91的父镜像是Glibc2.23,Glibc2.23的父镜像是Alpine3.4,因此,Tomcat8.1、JRE1.8.0.91、Glibc2.23、Alpine3.4均是镜像APP1.0所依赖的底层镜像。镜像管理中心33还可以用于存储容器镜像的层次依赖关系。
在本发明的实施例中,镜像管理中心33还可以用于在接收到第二镜像下载地址获取请求后,获取对应于镜像标识的容器镜像的层次依赖关系,并将该层次依赖关系返回给本地镜像仓库32。该本地镜像仓库32还可以用于在获得该层次依赖关系后,将该层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将该层次依赖关系返回给容器引擎;其中,该待下载列表可以包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识(例如父镜像的父镜像标识等)。该容器引擎还可以用于在获得层次依赖关系后,查询并缓存与该层次依赖关系中不存在的镜像标识对应的容器镜像。
在上述实施例中,本地镜像仓库能够按照容器镜像的层次依赖关系从远程镜像仓库下载所依赖的所有底层镜像。容器镜像是有层次依赖关系的,在下载镜像前可以先解析容器镜像的层次依赖关系,只需从远程镜像仓库中下载缺失的镜像层次。例如,一个JavaWeb应用镜像包含应用层(App1.0.war)、中间件层(Tomcat8.1)、JVM层(JRE1.8.1)、基础库层(CentOS7.2),假设本地镜像仓库有JRE1.8.1、CentOS7.2,没有对应的应用层和中间件层镜像,那么本地镜像仓库只需通过镜像管理中心获取缺失镜像的地址,从远程镜像仓库将缺失的容器镜像下载到本地镜像仓库。
在本发明的实施例中,镜像管理中心可以负责管理本地镜像仓库地址和容器镜像元数据,不保存镜像文件数据。镜像元数据是指容器镜像的基本信息,包括镜像名称、镜像版本、缓存有效期、镜像文件的哈希校验码、镜像所有者、创建时间、修改时间、父镜像名称、父镜像版本、镜像仓库、原始镜像下载地址等。通过父镜像名称和版本可以管理镜像各个层次的依赖关系。镜像文件数据是指可用于运行容器的镜像文件包,包括基础库、中间件和应用程序包等内容。镜像文件数据可以采用分层结构组织,比如将JavaWeb应用划分成三个镜像层,每个镜像层都有独立的下载URL可供下载。
在本发明的实施例中,镜像管理中心33还可以用于在将层次依赖关系返回给本地镜像仓库32的过程中,还将与指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给该本地镜像仓库32。该本地镜像仓库32还可以用于从镜像管理中心33接收并存储镜像文件的哈希校验码。
在一个容器集群中的节点数目通常是以千甚至万为单位计算的,而容器集群的数目比容器集群中的节点数目往往要少几个数量级,通常只有几个或十几个集群,也就是说只有几个或十几个本地镜像仓库需要向远程镜像仓库下载镜像,而容器节点的容器引擎只需访问本地镜像仓库。而且,同一个父镜像可以被多个子镜像共享,例如一个Tomcat8.1可以被AppA1.0、AppB1.0、AppC1.0共享。而且在本发明的实施例中,相同的镜像只需下载一次,例如本地镜像在第一次下载AppA1.0时,如果Tomcat8.1不存在,则执行下载(这时只需下载一次)。而在后面的流程中,如同AppB1.0、AppC1.0需要使用Tomcat8.1,则直接从本地镜像缓存返回即可,不需要重新下载Tomcat8.1。在AppA1.0升级到AppA1.1的情况下,如果AppA1.1还是使用相同的父镜像Tomcat8.1,则也不需要重新下载Tomcat8.1。另外,对于大部分镜像而言,底层镜像的体积占比比较大,而且底层镜像往往可以复用,升级容器应用往往只需升级最顶层的体积占比比较小的镜像。因此,本发明实施例的系统可以提高部署效率。
在一个实施例中,本地镜像仓库可以并行地从远程镜像仓库下载不存在的层次的容器镜像。容器引擎也可以并行地从本地镜像仓库下载不存在的层次的容器镜像。通过并行下载,可以提高下载速度。
在本发明的实施例中,该镜像管理中心33还可以用于在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,该镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码。该本地镜像仓库32还可以用于在接收到该镜像文件变更通知后,根据该容器镜像的镜像标识对该变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从镜像管理中心33查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。从而实现了在镜像文件内容发生变化的情况下对已经缓存的容器镜像的更新。
这里,镜像文件内容发生变化是指同一个镜像标识的镜像文件发生变化,镜像文件的哈希校验码会发生改变,但镜像标识不发生变化。本地镜像仓库对镜像文件的哈希校验码进行验证,只有校验码发生变化才需要重新下载镜像文件;镜像文件变更通知可以只发送给缓存了该镜像的本地镜像仓库,不一定必须广播给所有的本地镜像仓库。此外,镜像名称不变而镜像版本改变的情况属于镜像标识改变,需要通过更新部署脚本的方式升级。
在一个实施例中,本地镜像仓库32还可以用于在所缓存的容器镜像失效(即超出缓存有效期,例如有效期可以为24小时)后,将该失效的容器镜像自动删除,并调用镜像管理中心33的镜像下载URL删除接口(图中未示出)删除本地镜像仓库的该失效的容器镜像的镜像下载URL。
在另一个实施例中,本地镜像仓库32还可以用于在接收到镜像管理中心33下发的镜像删除通知后,实时删除与镜像删除通知所包含的镜像标识对应的容器镜像。其中,远程镜像仓库作为存储容器镜像的原始镜像仓库,在该原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口(图中未示出)删除该被删除的容器镜像的所有镜像下载URL,并向镜像管理中心33发送镜像删除通知,该镜像删除通知包含被删除的容器镜像的镜像标识;该镜像管理中心33在接收到该镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发该镜像删除通知。在该实施例中,在对缓存的容器镜像删除的过程中,镜像管理中心可以只向缓存该容器镜像的镜像仓库下发镜像删除通知,镜像管理中心可通过与该容器镜像绑定的镜像下载URL获得对应的镜像仓库地址,每个镜像仓库均可以有一个镜像文件删除接口。
在上述实施例中,对于本地镜像仓库缓存的镜像删除有两种方式:一种是超出镜像的缓存有效期,由缓存清理机制自动删除;另一种是接收到镜像管理中心下发的镜像删除通知,实时删除对应的镜像。因此,本地镜像仓库可以自动从远程镜像仓库中获取镜像,监听远程镜像状态事件,可按镜像过期时间或镜像删除事件自动清除缓存的远程容器镜像。
在一个实施例中,本地镜像仓库32还可以用于作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用镜像管理中心33的镜像下载URL删除接口(图中未示出)删除该被删除的容器镜像的所有镜像下载URL,并向该镜像管理中心33发送镜像删除通知,该镜像删除通知包含被删除的容器镜像的镜像标识。该镜像管理中心33还可以用于在接收到该镜像删除通知后,向已经缓存了该被删除的容器镜像的镜像仓库下发镜像删除通知。
在另一个实施例中,镜像管理中心33还可以用于将镜像删除指令下发给本地镜像仓库32,其中,该本地镜像仓库32作为存储容器镜像的原始镜像仓库,该镜像删除指令包含需要删除的容器镜像的镜像标识;并在接收到从该本地镜像仓库32返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发该镜像删除通知。该本地镜像仓库32还用于在接收到镜像删除指令后,删除对应的容器镜像,调用所述镜像管理中心33的镜像下载URL删除接口(图中未示出)删除该被删除的容器镜像的所有镜像下载URL,并向该镜像管理中心33发送镜像删除通知,该镜像删除通知包含被删除的容器镜像的镜像标识。
在本发明的实施例中,如图3所示,该系统还可以包括:部署工具34和容器集群编排器35。该部署工具34可以包括命令行工具。
该部署工具34可以用于将容器镜像上传到本地镜像仓库32,以及向选定的集群列表的容器集群编排器35下发部署脚本。该本地镜像仓库32还可以用于向镜像管理中心33上报被上传的容器镜像的容器镜像信息。
例如,该部署脚本可以包括:部署名称、实例数目、镜像信息、标签信息、服务端口、环境变量(例如DB(Database,数据库)地址、DB账号、DB密码)、容器资源配置(例如CPU核数、内存大小)、存储资源配置(例如数据卷名称、挂载目录)、网络资源配置(例如子网名称、带宽限制等)等。以容器编排平台Kubernetes的部署脚本为例,Worpress应用的部署脚本示例如下:
在部署脚本中定义的镜像地址可以有三种形式:1)镜像名称+镜像版本,例如webportal:1.0.0,镜像仓库地址默认为容器引擎配置的本地镜像仓库;2)URI路径+镜像名称+镜像版本,例如/cache/webportal:1.0.0,镜像仓库地址为容器引擎配置的本地镜像仓库;3)镜像仓库地址+镜像URI+镜像名称+镜像版本,例如http://registry1.ct.com:5000/cache/webportal:1.0.0。
镜像名称+镜像版本可作为容器镜像的唯一标识,可通过镜像名称+镜像版本查询所在镜像仓库的全局URL,通过全局URL从远程镜像仓库中下载镜像。此外,本地镜像仓库可以根据部署脚本定义的镜像仓库公网URL或私网URL(需要用私网URL从管理中心查找公网URL)从远程镜像仓库下载镜像。
该容器集群编排器35可以用于解析和执行部署脚本,从该部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎31发送调度消息,其中该调度消息包含需要运行的容器镜像的镜像标识。其中,该容器引擎31在接收到该调度消息后,向本地镜像仓库32发送第一镜像下载地址获取请求。
在上述实施例中,简化了容器镜像与部署脚本维护,容器镜像只需上传一次,部署脚本只需编写一份,容器引擎将镜像地址自动替换成本地镜像仓库地址。例如,容器引擎可以忽略部署脚本中定义的远程镜像仓库地址,总是将镜像的下载地址执向本地镜像仓库,因此只要镜像名称和镜像版本是正确的,无论部署脚本的镜像地址指向哪个镜像仓库,容器引擎均通过本地镜像仓库下载容器镜像,这可以提高下载速度,从而提升部署速率。
在一个实施例中,可以引入一个脚本仓库,通过脚本仓库管理部署脚本,先将部署脚本上传到脚本仓库中,然后通过部署工具选择需要部署的一个或多个集群,同时向对应集群的容器集群编排器下发部署指令,容器集群编排器从脚本仓库下载并执行部署脚本,调度容器引擎完成后续部署工作。在该实施例中,在脚本仓库中存储一个部署脚本,不管集群有几个,都可以部署该脚本,相比现有技术中需要有多个部署脚本对应多个集群,本发明的该实施例更加方便快捷。
图4是示出根据本发明一个实施例的用于多集群容器部署的方法的流程图。
在步骤S401,容器引擎向本地镜像仓库发送第一镜像下载地址获取请求,该第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识。例如,该镜像标识可以包括:容器镜像的镜像名称和镜像版本。
在步骤S402,本地镜像仓库在接收到第一镜像下载地址获取请求后,查询是否已经存储或缓存了与镜像标识对应的容器镜像。如果是,则过程进入步骤S403,否则过程进入步骤S404。
在步骤S403,本地镜像仓库直接向容器引擎返回指向本地镜像仓库的镜像存储位置的镜像下载URL。
在步骤S404,本地镜像仓库向镜像管理中心发送第二镜像下载地址获取请求,该第二镜像下载地址获取请求包含所述镜像标识。
在步骤S405,镜像管理中心在接收到第二镜像下载地址获取请求后,向本地镜像仓库返回指向远程镜像仓库的镜像下载URL。例如,该指向远程镜像仓库的镜像下载URL可以包含:远程镜像仓库地址和容器镜像信息。其中,该容器镜像信息可以包括:镜像标识和镜像所属仓库信息。
在一个实施例中,该镜像管理中心向本地镜像仓库返回指向远程镜像仓库的镜像下载URL的步骤可以包括:在与镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,镜像管理中心采用轮转或随机的方式向本地镜像仓库返回与该多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL;或者,该镜像管理中心向本地镜像仓库返回与该多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。
在步骤S406,本地镜像仓库在从镜像管理中心接收到指向远程镜像仓库的镜像下载URL后,根据该指向远程镜像仓库的镜像下载URL从远程镜像仓库中将缺失的容器镜像下载到本地镜像缓存中,生成指向本地镜像缓存的镜像下载URL,将该指向本地镜像缓存的镜像下载URL上报给镜像管理中心并返回给容器引擎。
在步骤S407,容器引擎通过从本地镜像仓库返回的镜像下载URL从该本地镜像仓库下载容器镜像。
在上述实施例中,提供了一种用于多集群容器部署的方法。通过部署在容器集群本地镜像仓库自动发现、获取和缓存远程镜像,集群内的容器引擎统一从本地镜像仓库中直接下载本地镜像或远程镜像,从而提升容器镜像下载速度,降低单一镜像仓库的镜像下载压力,加速容器应用跨集群部署,从而提升容器应用跨集群部署效率,缩短部署升级时间。
在一个实施例中,上述方法还可以包括:镜像管理中心在接收到第二镜像下载地址获取请求后,获取对应于镜像标识的容器镜像的层次依赖关系,并将该层次依赖关系返回给本地镜像仓库;该本地镜像仓库在获得该层次依赖关系后,将该层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将该层次依赖关系返回给容器引擎;其中,该待下载列表可以包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识;以及该容器引擎在获得该层次依赖关系后,查询并缓存与该层次依赖关系中不存在的镜像标识对应的容器镜像。
在一个实施例中,上述方法还可以包括:镜像管理中心在将层次依赖关系返回给本地镜像仓库的过程中,还将与指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给该本地镜像仓库;以及该本地镜像仓库从镜像管理中心接收并存储该镜像文件的哈希校验码。
在一个实施例中,上述方法还可以包括:该镜像管理中心在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,该镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码;以及该本地镜像仓库在接收到该镜像文件变更通知后,根据该容器镜像的镜像标识对该变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从镜像管理中心查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。从而实现了在镜像文件内容发生变化的情况下对已经缓存的容器镜像的更新。
在一个实施例中,上述方法还可以包括:本地镜像仓库在所缓存的容器镜像失效后,将该失效的容器镜像自动删除,并调用镜像管理中心的镜像下载URL删除接口删除该本地镜像仓库的该失效的容器镜像的镜像下载URL。
在另一个实施例中,上述方法还可以包括:远程镜像仓库作为存储容器镜像的原始镜像仓库,在原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向镜像管理中心发送镜像删除通知,该镜像删除通知包含被删除的容器镜像的镜像标识;该镜像管理中心在接收到所述镜像删除通知后,向已经缓存了该被删除的容器镜像的镜像仓库下发该镜像删除通知;以及本地镜像仓库在接收到该镜像管理中心下发的镜像删除通知后,实时删除与该镜像删除通知所包含的镜像标识对应的容器镜像。
在一个实施例中,上述方法还可以包括:本地镜像仓库作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向该镜像管理中心发送镜像删除通知,该镜像删除通知包含该被删除的容器镜像的镜像标识;以及该镜像管理中心在接收到该镜像删除通知后,向已经缓存了该被删除的容器镜像的镜像仓库下发该镜像删除通知。
在另一个实施例中,上述方法还可以包括:镜像管理中心将镜像删除指令下发给本地镜像仓库,其中,该本地镜像仓库作为存储容器镜像的原始镜像仓库,该镜像删除指令包含需要删除的容器镜像的镜像标识;该本地镜像仓库在接收到该镜像删除指令后,删除对应的容器镜像,调用该镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向该镜像管理中心发送镜像删除通知,该镜像删除通知包含该被删除的容器镜像的镜像标识;以及该镜像管理中心在接收到从该本地镜像仓库返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发该镜像删除通知。
在本发明的实施例中,在步骤S401之前,上述方法还可以包括:部署工具将容器镜像上传到本地镜像仓库;本地镜像仓库向镜像管理中心上报被上传的容器镜像的容器镜像信息;部署工具向选定的集群列表的容器集群编排器下发部署脚本;容器集群编排器解析和执行该部署脚本,从该部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎发送调度消息,其中该调度消息包含需要运行的容器镜像的镜像标识。其中,容器引擎在接收到该调度消息后,向本地镜像仓库发送第一镜像下载地址获取请求。
图5是示意性地示出根据本发明另一个实施例的用于多集群容器部署的系统的结构图。该系统包括存储器510和处理器520。其中:
存储器510可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图4所对应实施例中的指令。
处理器520耦接至存储器510,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器520用于执行存储器中存储的指令,从而提升容器应用跨集群部署效率,缩短部署升级时间。
在一个实施例中,还可以如图6所示,该系统600包括存储器610和处理器620。处理器620通过BUS总线630耦合至存储器610。该系统600还可以通过存储接口640连接至外部存储装置650以便调用外部数据,还可以通过网络接口660连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而提升容器应用跨集群部署效率,缩短部署升级时间。
在另一个实施例中,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图4所对应实施例中的方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
Claims (26)
1.一种用于多集群容器部署的系统,其特征在于,包括:
容器引擎,用于向本地镜像仓库发送第一镜像下载地址获取请求,所述第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识;并用于通过从所述本地镜像仓库返回的镜像下载统一资源定位符URL从所述本地镜像仓库下载容器镜像;
本地镜像仓库,用于在接收到所述第一镜像下载地址获取请求后,查询是否已经存储或缓存了与所述镜像标识对应的容器镜像;如果存在,则直接向所述容器引擎返回指向本地镜像仓库的镜像存储位置的镜像下载URL;否则,向所述镜像管理中心发送第二镜像下载地址获取请求,所述第二镜像下载地址获取请求包含所述镜像标识;并在从所述镜像管理中心接收到指向远程镜像仓库的镜像下载URL后,根据所述指向远程镜像仓库的镜像下载URL从远程镜像仓库中将缺失的所述容器镜像下载到本地镜像缓存中,生成指向所述本地镜像缓存的镜像下载URL,将所述指向本地镜像缓存的镜像下载URL上报给所述镜像管理中心并返回给所述容器引擎;以及
镜像管理中心,用于在接收到所述第二镜像下载地址获取请求后,向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL。
2.根据权利要求1所述的系统,其特征在于,
所述镜像管理中心还用于在接收到所述第二镜像下载地址获取请求后,获取对应于所述镜像标识的容器镜像的层次依赖关系,并将所述层次依赖关系返回给所述本地镜像仓库;
所述本地镜像仓库还用于在获得所述层次依赖关系后,将所述层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将所述层次依赖关系返回给所述容器引擎;其中,所述待下载列表包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识;
所述容器引擎还用于在获得所述层次依赖关系后,查询并缓存与所述层次依赖关系中不存在的镜像标识对应的容器镜像。
3.根据权利要求1所述的系统,其特征在于,
在与所述镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,
所述镜像管理中心采用轮转或随机的方式向所述本地镜像仓库返回与所述多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL;
或者,所述镜像管理中心向所述本地镜像仓库返回与所述多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。
4.根据权利要求1所述的系统,其特征在于,
所述指向远程镜像仓库的镜像下载URL包含:远程镜像仓库地址和容器镜像信息;其中,所述容器镜像信息包括:镜像标识和镜像所属仓库信息。
5.根据权利要求2所述的系统,其特征在于,
所述镜像管理中心还用于在将所述层次依赖关系返回给所述本地镜像仓库的过程中,还将与所述指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给所述本地镜像仓库;
所述本地镜像仓库还用于从所述镜像管理中心接收并存储所述镜像文件的哈希校验码。
6.根据权利要求5所述的系统,其特征在于,
所述镜像管理中心还用于在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,所述镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码;
所述本地镜像仓库还用于在接收到所述镜像文件变更通知后,根据该容器镜像的镜像标识对所述变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从所述镜像管理中心查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。
7.根据权利要求1所述的系统,其特征在于,
所述本地镜像仓库还用于在所缓存的容器镜像失效后,将该失效的容器镜像自动删除,并调用所述镜像管理中心的镜像下载URL删除接口删除所述本地镜像仓库的该失效的容器镜像的镜像下载URL。
8.根据权利要求1所述的系统,其特征在于,
所述本地镜像仓库还用于在接收到所述镜像管理中心下发的镜像删除通知后,实时删除与所述镜像删除通知所包含的镜像标识对应的容器镜像;
其中,远程镜像仓库作为存储容器镜像的原始镜像仓库,在所述原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
9.根据权利要求1所述的系统,其特征在于,
所述本地镜像仓库还用于作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;
所述镜像管理中心还用于在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
10.根据权利要求1所述的系统,其特征在于,
所述镜像管理中心还用于将镜像删除指令下发给所述本地镜像仓库,其中,所述本地镜像仓库作为存储容器镜像的原始镜像仓库,所述镜像删除指令包含需要删除的容器镜像的镜像标识;并在接收到从所述本地镜像仓库返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发所述镜像删除通知;
所述本地镜像仓库还用于在接收到所述镜像删除指令后,删除对应的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识。
11.根据权利要求1所述的系统,其特征在于,
所述镜像标识包括:容器镜像的镜像名称和镜像版本。
12.根据权利要求1所述的系统,其特征在于,还包括:
部署工具,用于将容器镜像上传到所述本地镜像仓库,以及向选定的集群列表的容器集群编排器下发部署脚本;其中,所述本地镜像仓库还用于向所述镜像管理中心上报被上传的所述容器镜像的容器镜像信息;以及
容器集群编排器,用于解析和执行所述部署脚本,从所述部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎发送调度消息,其中所述调度消息包含所述需要运行的容器镜像的镜像标识;
其中,所述容器引擎在接收到所述调度消息后,向本地镜像仓库发送所述第一镜像下载地址获取请求。
13.一种用于多集群容器部署的方法,其特征在于,包括:
容器引擎向本地镜像仓库发送第一镜像下载地址获取请求,所述第一镜像下载地址获取请求包含所需要获得的容器镜像的镜像标识;
所述本地镜像仓库在接收到所述第一镜像下载地址获取请求后,查询是否已经存储或缓存了与所述镜像标识对应的容器镜像;如果存在,则直接向所述容器引擎返回指向本地镜像仓库的镜像存储位置的镜像下载URL;否则,向所述镜像管理中心发送第二镜像下载地址获取请求,所述第二镜像下载地址获取请求包含所述镜像标识;
所述镜像管理中心在接收到所述第二镜像下载地址获取请求后,向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL;
所述本地镜像仓库在从所述镜像管理中心接收到指向远程镜像仓库的镜像下载URL后,根据所述指向远程镜像仓库的镜像下载URL从远程镜像仓库中将缺失的所述容器镜像下载到本地镜像缓存中,生成指向所述本地镜像缓存的镜像下载URL,将所述指向本地镜像缓存的镜像下载URL上报给镜像管理中心并返回给所述容器引擎;以及
所述容器引擎通过从所述本地镜像仓库返回的镜像下载URL从所述本地镜像仓库下载容器镜像。
14.根据权利要求13所述的方法,其特征在于,还包括:
所述镜像管理中心在接收到所述第二镜像下载地址获取请求后,获取对应于所述镜像标识的容器镜像的层次依赖关系,并将所述层次依赖关系返回给所述本地镜像仓库;
所述本地镜像仓库在获得所述层次依赖关系后,将所述层次依赖关系中不存在的镜像标识加入待下载列表以下载对应的容器镜像,并将所述层次依赖关系返回给所述容器引擎;其中,所述待下载列表包含本地镜像仓库不存在的镜像标识和所依赖的父镜像标识及祖先镜像标识;以及
所述容器引擎在获得所述层次依赖关系后,查询并缓存与所述层次依赖关系中不存在的镜像标识对应的容器镜像。
15.根据权利要求13所述的方法,其特征在于,所述镜像管理中心向所述本地镜像仓库返回指向远程镜像仓库的镜像下载URL的步骤包括:
在与所述镜像标识对应的容器镜像存储或缓存在多个远程镜像仓库的情况下,所述镜像管理中心采用轮转或随机的方式向所述本地镜像仓库返回与所述多个远程镜像仓库中的一个远程镜像仓库对应的镜像下载URL;或者,所述镜像管理中心向所述本地镜像仓库返回与所述多个远程镜像仓库中负载最小的远程镜像仓库对应的镜像下载URL。
16.根据权利要求13所述的方法,其特征在于,
所述指向远程镜像仓库的镜像下载URL包含:远程镜像仓库地址和容器镜像信息;其中,所述容器镜像信息包括:镜像标识和镜像所属仓库信息。
17.根据权利要求14所述的方法,其特征在于,还包括:
所述镜像管理中心在将所述层次依赖关系返回给所述本地镜像仓库的过程中,还将与所述指向远程镜像仓库的镜像下载URL对应的容器镜像的任一层次的镜像文件的哈希校验码返回给所述本地镜像仓库;以及
所述本地镜像仓库从所述镜像管理中心接收并存储所述镜像文件的哈希校验码。
18.根据权利要求17所述的方法,其特征在于,还包括:
所述镜像管理中心在容器镜像的任一层次的镜像文件内容发生变化的情况下,向缓存了该容器镜像的本地镜像仓库推送镜像文件变更通知;其中,所述镜像文件变更通知包含该容器镜像的镜像标识和变更后的镜像文件的哈希校验码;以及
所述本地镜像仓库在接收到所述镜像文件变更通知后,根据该容器镜像的镜像标识对所述变更后的镜像文件的哈希校验码进行验证,如果该哈希校验码与已经缓存的该容器镜像的镜像文件的原哈希校验码不一致,则根据该容器镜像的镜像标识从所述镜像管理中心查询获得对应的镜像下载URL,并根据该镜像下载URL从远程镜像仓库下载新的容器镜像。
19.根据权利要求13所述的方法,其特征在于,还包括:
所述本地镜像仓库在所缓存的容器镜像失效后,将该失效的容器镜像自动删除,并调用所述镜像管理中心的镜像下载URL删除接口删除所述本地镜像仓库的该失效的容器镜像的镜像下载URL。
20.根据权利要求13所述的方法,其特征在于,还包括:
远程镜像仓库作为存储容器镜像的原始镜像仓库,在所述原始镜像仓库删除该容器镜像后,调用镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;
所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知;以及
所述本地镜像仓库在接收到所述镜像管理中心下发的镜像删除通知后,实时删除与所述镜像删除通知所包含的镜像标识对应的容器镜像。
21.根据权利要求13所述的方法,其特征在于,还包括:
所述本地镜像仓库作为存储容器镜像的原始镜像仓库删除所存储的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;以及
所述镜像管理中心在接收到所述镜像删除通知后,向已经缓存了所述被删除的容器镜像的镜像仓库下发所述镜像删除通知。
22.根据权利要求13所述的方法,其特征在于,还包括:
所述镜像管理中心将镜像删除指令下发给所述本地镜像仓库,其中,所述本地镜像仓库作为存储容器镜像的原始镜像仓库,所述镜像删除指令包含需要删除的容器镜像的镜像标识;
所述本地镜像仓库在接收到所述镜像删除指令后,删除对应的容器镜像,调用所述镜像管理中心的镜像下载URL删除接口删除该被删除的容器镜像的所有镜像下载URL,并向所述镜像管理中心发送镜像删除通知,所述镜像删除通知包含所述被删除的容器镜像的镜像标识;以及
所述镜像管理中心在接收到从所述本地镜像仓库返回的镜像删除通知后,向已经缓存了被删除的容器镜像的镜像仓库下发所述镜像删除通知。
23.根据权利要求13所述的方法,其特征在于,
所述镜像标识包括:容器镜像的镜像名称和镜像版本。
24.根据权利要求13所述的方法,其特征在于,在容器引擎向本地镜像仓库发送第一镜像下载地址获取请求之前,所述方法还包括:
部署工具将容器镜像上传到所述本地镜像仓库;
所述本地镜像仓库向所述镜像管理中心上报被上传的所述容器镜像的容器镜像信息;
所述部署工具向选定的集群列表的容器集群编排器下发部署脚本;
所述容器集群编排器解析和执行所述部署脚本,从所述部署脚本获得镜像标识,并根据应用需要运行的容器实例数目调度相应数目的容器引擎,向需要被调度的容器引擎发送调度消息,其中所述调度消息包含所述需要运行的容器镜像的镜像标识;
其中,所述容器引擎在接收到所述调度消息后,向本地镜像仓库发送所述第一镜像下载地址获取请求。
25.一种用于多集群容器部署的系统,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求13至24任意一项所述的方法。
26.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求13至24任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710684007.3A CN109391664B (zh) | 2017-08-11 | 2017-08-11 | 用于多集群容器部署的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710684007.3A CN109391664B (zh) | 2017-08-11 | 2017-08-11 | 用于多集群容器部署的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109391664A true CN109391664A (zh) | 2019-02-26 |
CN109391664B CN109391664B (zh) | 2021-04-20 |
Family
ID=65414537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710684007.3A Active CN109391664B (zh) | 2017-08-11 | 2017-08-11 | 用于多集群容器部署的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109391664B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187954A (zh) * | 2019-04-23 | 2019-08-30 | 平安科技(深圳)有限公司 | 应用镜像推送方法、装置、计算机设备及存储介质 |
CN110336699A (zh) * | 2019-07-09 | 2019-10-15 | 北京和利时智能技术有限公司 | 自动化部署网关系统的方法、装置及系统 |
CN110502268A (zh) * | 2019-08-29 | 2019-11-26 | 恩亿科(北京)数据科技有限公司 | 应用程序更新方法、装置、服务器及存储介质 |
CN111324360A (zh) * | 2020-01-09 | 2020-06-23 | 华中科技大学 | 一种面向边缘计算的容器镜像构建方法 |
CN111654533A (zh) * | 2020-05-13 | 2020-09-11 | 国云科技股份有限公司 | 一种基于容器环境的应用自动交付系统 |
CN111858098A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种基于海量数据的数据交换方法 |
CN111866084A (zh) * | 2020-06-24 | 2020-10-30 | 北京智芯微电子科技有限公司 | 基于容器的边缘物联代理装置 |
CN112000696A (zh) * | 2020-08-06 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种多架构云平台镜像仓库的镜像列表查询的架构 |
CN112363806A (zh) * | 2020-11-23 | 2021-02-12 | 北京信安世纪科技股份有限公司 | 一种集群管理方法、装置、电子设备及存储介质 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112463304A (zh) * | 2020-12-03 | 2021-03-09 | 金蝶软件(中国)有限公司 | 容器镜像的回滚方法、装置、计算机设备和存储介质 |
CN112486513A (zh) * | 2020-11-25 | 2021-03-12 | 湖南麒麟信安科技股份有限公司 | 一种基于容器的集群管理方法及系统 |
CN112506615A (zh) * | 2020-12-11 | 2021-03-16 | 浪潮电子信息产业股份有限公司 | JavaWeb应用部署方法、装置、设备及存储介质 |
CN112527467A (zh) * | 2020-12-23 | 2021-03-19 | 同盾控股有限公司 | 容器镜像的存储结构、查询方法、删除方法、装置、设备和介质 |
CN112632011A (zh) * | 2020-12-30 | 2021-04-09 | 上海中通吉网络技术有限公司 | 基于Kubernetes的数据读写方法、装置、系统及设备 |
CN112799588A (zh) * | 2020-12-31 | 2021-05-14 | 杭州朗澈科技有限公司 | 使用外部存储加载容器集群应用数据时的数据存储方法 |
CN113868679A (zh) * | 2021-09-15 | 2021-12-31 | 聚好看科技股份有限公司 | 一种集群的加密方法及装置 |
CN113946275A (zh) * | 2020-07-15 | 2022-01-18 | 中移(苏州)软件技术有限公司 | 一种缓存管理方法及装置、存储介质 |
CN114490544A (zh) * | 2022-04-18 | 2022-05-13 | 梯度云科技(北京)有限公司 | 一种新加入主机下载容器镜像的方法及装置 |
CN115794139A (zh) * | 2023-01-16 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 镜像数据处理方法、装置、设备以及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194595B1 (en) * | 2004-09-27 | 2007-03-20 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
CN104679574A (zh) * | 2013-11-26 | 2015-06-03 | 谢蓉 | 云计算中虚拟机镜像管理系统 |
CN104811493A (zh) * | 2015-04-21 | 2015-07-29 | 华中科技大学 | 一种网络感知的虚拟机镜像存储系统及读写请求处理方法 |
CN105187500A (zh) * | 2015-08-07 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于容器的分布式存储系统部署方法 |
CN105357296A (zh) * | 2015-10-30 | 2016-02-24 | 河海大学 | 一种Docker云平台下弹性缓存系统 |
CN105824614A (zh) * | 2015-12-15 | 2016-08-03 | 广东亿迅科技有限公司 | 基于Docker的分布式开发环境的搭建方法及装置 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
-
2017
- 2017-08-11 CN CN201710684007.3A patent/CN109391664B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194595B1 (en) * | 2004-09-27 | 2007-03-20 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
CN104679574A (zh) * | 2013-11-26 | 2015-06-03 | 谢蓉 | 云计算中虚拟机镜像管理系统 |
CN104811493A (zh) * | 2015-04-21 | 2015-07-29 | 华中科技大学 | 一种网络感知的虚拟机镜像存储系统及读写请求处理方法 |
CN105187500A (zh) * | 2015-08-07 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于容器的分布式存储系统部署方法 |
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
CN105357296A (zh) * | 2015-10-30 | 2016-02-24 | 河海大学 | 一种Docker云平台下弹性缓存系统 |
CN105824614A (zh) * | 2015-12-15 | 2016-08-03 | 广东亿迅科技有限公司 | 基于Docker的分布式开发环境的搭建方法及装置 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187954B (zh) * | 2019-04-23 | 2023-08-18 | 平安科技(深圳)有限公司 | 应用镜像推送方法、装置、计算机设备及存储介质 |
CN110187954A (zh) * | 2019-04-23 | 2019-08-30 | 平安科技(深圳)有限公司 | 应用镜像推送方法、装置、计算机设备及存储介质 |
CN110336699A (zh) * | 2019-07-09 | 2019-10-15 | 北京和利时智能技术有限公司 | 自动化部署网关系统的方法、装置及系统 |
CN110502268A (zh) * | 2019-08-29 | 2019-11-26 | 恩亿科(北京)数据科技有限公司 | 应用程序更新方法、装置、服务器及存储介质 |
CN111324360A (zh) * | 2020-01-09 | 2020-06-23 | 华中科技大学 | 一种面向边缘计算的容器镜像构建方法 |
CN111324360B (zh) * | 2020-01-09 | 2022-04-01 | 华中科技大学 | 一种面向边缘计算的容器镜像构建方法和系统 |
CN111654533A (zh) * | 2020-05-13 | 2020-09-11 | 国云科技股份有限公司 | 一种基于容器环境的应用自动交付系统 |
CN111866084A (zh) * | 2020-06-24 | 2020-10-30 | 北京智芯微电子科技有限公司 | 基于容器的边缘物联代理装置 |
CN113946275A (zh) * | 2020-07-15 | 2022-01-18 | 中移(苏州)软件技术有限公司 | 一种缓存管理方法及装置、存储介质 |
CN113946275B (zh) * | 2020-07-15 | 2024-04-09 | 中移(苏州)软件技术有限公司 | 一种缓存管理方法及装置、存储介质 |
CN111858098A (zh) * | 2020-07-24 | 2020-10-30 | 成都成信高科信息技术有限公司 | 一种基于海量数据的数据交换方法 |
CN111858098B (zh) * | 2020-07-24 | 2023-11-17 | 成都成信高科信息技术有限公司 | 一种基于海量数据的数据交换方法 |
CN112000696B (zh) * | 2020-08-06 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种多架构云平台镜像仓库的镜像列表查询的架构 |
CN112000696A (zh) * | 2020-08-06 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种多架构云平台镜像仓库的镜像列表查询的架构 |
CN112383606B (zh) * | 2020-11-09 | 2023-12-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112363806A (zh) * | 2020-11-23 | 2021-02-12 | 北京信安世纪科技股份有限公司 | 一种集群管理方法、装置、电子设备及存储介质 |
CN112363806B (zh) * | 2020-11-23 | 2023-09-22 | 北京信安世纪科技股份有限公司 | 一种集群管理方法、装置、电子设备及存储介质 |
CN112486513A (zh) * | 2020-11-25 | 2021-03-12 | 湖南麒麟信安科技股份有限公司 | 一种基于容器的集群管理方法及系统 |
CN112486513B (zh) * | 2020-11-25 | 2022-08-12 | 湖南麒麟信安科技股份有限公司 | 一种基于容器的集群管理方法及系统 |
CN112463304A (zh) * | 2020-12-03 | 2021-03-09 | 金蝶软件(中国)有限公司 | 容器镜像的回滚方法、装置、计算机设备和存储介质 |
CN112506615A (zh) * | 2020-12-11 | 2021-03-16 | 浪潮电子信息产业股份有限公司 | JavaWeb应用部署方法、装置、设备及存储介质 |
CN112506615B (zh) * | 2020-12-11 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | JavaWeb应用部署方法、装置、设备及存储介质 |
CN112527467A (zh) * | 2020-12-23 | 2021-03-19 | 同盾控股有限公司 | 容器镜像的存储结构、查询方法、删除方法、装置、设备和介质 |
CN112632011A (zh) * | 2020-12-30 | 2021-04-09 | 上海中通吉网络技术有限公司 | 基于Kubernetes的数据读写方法、装置、系统及设备 |
CN112799588A (zh) * | 2020-12-31 | 2021-05-14 | 杭州朗澈科技有限公司 | 使用外部存储加载容器集群应用数据时的数据存储方法 |
CN113868679A (zh) * | 2021-09-15 | 2021-12-31 | 聚好看科技股份有限公司 | 一种集群的加密方法及装置 |
CN113868679B (zh) * | 2021-09-15 | 2024-05-17 | 聚好看科技股份有限公司 | 一种集群的加密方法及装置 |
CN114490544A (zh) * | 2022-04-18 | 2022-05-13 | 梯度云科技(北京)有限公司 | 一种新加入主机下载容器镜像的方法及装置 |
CN115794139A (zh) * | 2023-01-16 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 镜像数据处理方法、装置、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109391664B (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391664A (zh) | 用于多集群容器部署的系统和方法 | |
US9244969B1 (en) | Virtual disk recovery | |
CN102779185B (zh) | 一种高可用分布式全文索引方法 | |
US8069224B2 (en) | Method, equipment and system for resource acquisition | |
CN107566463B (zh) | 一种提高存储可用性的多云存储管理系统 | |
US9639558B2 (en) | Image building | |
CN106294352B (zh) | 一种文件处理方法、装置和文件系统 | |
CN111930473B (zh) | 在容器云上部署图像识别服务的方法与设备 | |
CN110457281A (zh) | 数据处理方法、装置、设备及介质 | |
US8490078B2 (en) | System and method for application management | |
CN107506221A (zh) | 应用程序升级方法、装置及设备 | |
CN112114849B (zh) | 一种资源更新方法和装置 | |
US8225307B2 (en) | On-demand software module deployment | |
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
CN109862075A (zh) | 一种Redis服务实例的路由方法 | |
US11645100B2 (en) | Global cache for container images in a clustered container host system | |
CN113391875A (zh) | 容器部署方法与装置 | |
JP2006099307A (ja) | 分散サーバへのアプリケーションセットのインストール方法 | |
JP5613295B2 (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 | |
US9239860B1 (en) | Augmenting virtual directories | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
US8028002B2 (en) | Naming service implementation in a clustered environment | |
CN105653566B (zh) | 一种实现数据库写访问的方法及装置 | |
JP2006031608A (ja) | 計算機、ストレージシステム、計算機が行うファイル管理方法、およびプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190226 Assignee: Tianyiyun Technology Co.,Ltd. Assignor: CHINA TELECOM Corp.,Ltd. Contract record no.: X2024110000020 Denomination of invention: Systems and methods for multi cluster container deployment Granted publication date: 20210420 License type: Common License Record date: 20240315 |
|
EE01 | Entry into force of recordation of patent licensing contract |