CN115617744A - 镜像仓库访问方法、系统及设备 - Google Patents
镜像仓库访问方法、系统及设备 Download PDFInfo
- Publication number
- CN115617744A CN115617744A CN202211213566.3A CN202211213566A CN115617744A CN 115617744 A CN115617744 A CN 115617744A CN 202211213566 A CN202211213566 A CN 202211213566A CN 115617744 A CN115617744 A CN 115617744A
- Authority
- CN
- China
- Prior art keywords
- target
- image
- mirror
- file
- mirror image
- 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 138
- 230000015654 memory Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 44
- 238000007726 management method Methods 0.000 description 62
- 238000003860 storage Methods 0.000 description 38
- 239000003795 chemical substances by application Substances 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000036541 health Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 210000001503 joint Anatomy 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种镜像仓库访问方法、系统及设备,涉及容器技术领域。该方法中,容器部署系统可以接收到目标镜像仓库类型文件,该文件记载了访问目标镜像仓库所需的描述信息,基于该文件,容器部署系统可以自动生成目标配置信息,该目标配置信息可以用于容器部署系统访问目标镜像仓库,并从目标镜像仓库获取目标镜像。由于可以自动生成用于访问目标镜像仓库以及从目标镜像仓库下载目标镜像的目标配置信息,因此,不必将配置信息预先存储在容器编排系统的工作节点,只需在需要访问目标镜像仓库或从目标镜像仓库下载目标镜像时,自动生成目标配置信息即可,因此,有助于简化了镜像仓库的访问过程的,以及降低镜像仓库的配置信息的管理难度。
Description
技术领域
本申请涉及容器技术领域,尤其涉及一种镜像仓库访问方法、系统及设备。
背景技术
随着容器开发逐步成为主流的应用开发技术,一个应用程序的部署通常需要用户提供的部署模板和存储在镜像仓库的镜像。其中,部署模板记载了部署应用时所需的部署信息,如,所需下载镜像的镜像地址、运行应用程序的工作节点的配置、应用程序的副本数量等。镜像包含了一个打包的应用程序、它的依赖关系以及它在启动时运行的进程信息。
相关技术中,在部署应用程序时,通常是由容器部署系统的工作节点,根据接收到的部署模板以及镜像仓库的配置信息,访问镜像仓库,并下载部署应用所需的镜像。因此,为了保证容器部署系统的每个工作节点能够成功访问镜像仓库,需要预先将镜像仓库的配置信息分别存储在容器部署系统的每个工作节点,以保证每个工作节点都能能够使用配置信息访问镜像仓库。然而,由于工作节点的访问权限要求比较高,这就导致镜像仓库的访问过程非常繁琐,工作节点上存储的镜像仓库的配置信息管理也起来特别困难。
发明内容
本申请实施例提供一种镜像仓库访问方法、系统及设备,能够自动生成镜像仓库的配置信息,有助于简化镜像仓库的访问过程,以及降低镜像仓库的配置信息的管理难度。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种镜像仓库访问方法,包括:接收目标镜像仓库类型文件;目标镜像仓库类型文件用于记载访问目标镜像仓库所需的描述信息;根据目标镜像仓库类型文件,生成目标配置信息;其中,目标配置信息为从目标镜像仓库获取目标镜像时所需的配置信息;基于目标配置信息访问目标镜像仓库。
该方案中,容器部署系统可以接收到目标镜像仓库类型文件,该文件记载了访问目标镜像仓库所需的描述信息,基于该目标镜像仓库类型文件,容器部署系统可以自动生成目标配置信息,该目标配置信息可以用于容器部署系统访问目标镜像仓库,并从目标镜像仓库获取目标镜像。由于容器部署系统可以自动生成用于访问目标镜像仓库以及从目标镜像仓库下载目标镜像的目标配置信息,因此,不必再将镜像仓库的配置信息预先存储在容器编排系统的每个工作节点,只需在需要访问目标镜像仓库或需要从目标镜像仓库下载目标镜像时,自动生成目标配置信息即可,因此,有助于简化了镜像仓库的访问过程的,以及降低镜像仓库的配置信息的管理难度。
在一种可能的实现方式中,该方法还包括:获取目标应用的部署模板,部署模板用于记载部署目标应用时所需的部署信息;根据部署模板,确定部署目标应用所需的目标镜像的目标标识信息;根据目标镜像的目标标识信息和目标配置信息,下载目标镜像。
该实现方式中,提供了一种从目标镜像仓库下载目标镜像的方式。容器部署系统获取到目标应用的部署模板后,根据部署模板所记载部署目标应用所需的部署信息,确定部署目标应用所需的目标镜像的目标标识信息,从而可以在根据目标配置信息访问目标镜像仓库时,从目标镜像仓库下载目标标识信息所指示的目标镜像。这样,容器编排系统在部署目标应用时,只需要指示了目标标识信息的部署模板和自动生成的目标配置信息,即可实现从目标镜像仓库下载部署应用所需的目标镜像,下载过程简单、便捷。另外,由于部署模板是部署目标应用时所原本就有的文件,而目标镜像是用于部署目标应用,因此,通过部署模板指示目标镜像的目标标识信息,从而不必增加新的文件用于指示获取目标镜像的目标标识信息,有助于简化部署目标应用时所需的文件,进而有助于简化目标应用的部署过程。
另一种可能的实现方式中,部署模板包括目标镜像的镜像引用声明文件的标识;根据部署模板,确定部署目标应用所需的目标镜像的目标标识信息,包括:根据镜像引用声明文件的标识,获取目标镜像的镜像引用声明文件;镜像引用声明文件用于记载目标镜像的引用信息;根据目标镜像的引用信息,确定目标镜像的目标标识信息。
在该实现方式中,通过在部署模板中记载能够指示目标镜像的镜像引用声明文件的标识,实现根据部署模板获取镜像引用声明文件,并通过在镜像引用声明文件中记载目标镜像的引用信息,实现根据目标镜像的引用信息确定目标镜像的目标标识信息。由于是通过镜像引用声明文件确定的目标镜像的目标标识信息,因此,用户无需记录过多的关于目标镜像的信息,只有确定要使用的镜像引用声明文件即可,有助于进一步简化应用的部署过程。
另一种可能的实现方式中,引用信息包括目标镜像的镜像名称和镜像版本号;根据目标镜像的引用信息,确定目标镜像的目标标识信息,包括:确定目标镜像的镜像名称和镜像版本号为目标镜像的目标标识信息。
在该实现方式中,提供了一种确定目标镜像的目标标识信息的具体实现方式,具体来说,通过设置镜像引用声明文件记载的引用信息包括目标镜像的镜像名称和镜像版本号,实现将目标镜像的镜像名称和镜像版本号确定为目标镜像的目标标识信息。这样,就可以根据镜像引用声明文件直接确定目标镜像的目标标识信息,不必再另外增加用于记载标识信息的描述文件,有助于简化目标标识信息的确定过程,进而降低部署应用的复杂度。
另一种可能的实现方式中,目标镜像的引用信息包括目标镜像的第一镜像引用文件的标识;根据目标镜像的引用信息,确定目标镜像的目标标识信息,包括:根据第一镜像引用文件的标识,确定目标镜像的第一镜像引用文件;第一镜像引用文件用于记载描述目标镜像的内容的信息;根据目标镜像的第一镜像引用文件,确定目标镜像的目标标识信息。
在该实现方式中,提供了一种确定目标镜像的目标标识信息的具体实现方式,具体来说,通过设置镜像引用声明文件记载目标镜像的第一镜像引用文件的标识,第一镜像引用文件记载描述目标镜像内容的信息,从而目标镜像的第一镜像引用文件,确定目标镜像标识信息。由于第一镜像引用文件记载了描述目标镜像的内容的信息,因此,基于第一镜像引用文件确定目标镜像的目标标识信息,能够保证基于目标标识信息下载目标镜像时,目标镜像的内容的准确性,有助于避免目标镜像的内容被篡改,提高了目标镜像的准确性,进而提高了使用该目标镜像的目标应用的安全运行。
另一种可能的实现方式中,目标镜像的第一镜像引用文件包括目标镜像的第一镜像摘要;根据目标镜像的镜像引用文件确定目标镜像的标识信息,包括:确定目标镜像的第一镜像摘要为目标镜像的目标标识信息。
在该实现方式中,由于镜像摘要是根据镜像的内容生成的,因此,目标镜像的第一镜像摘要能够指示目标镜像的内容。基于此,将目标镜像的第一镜像摘要确定为目标镜像的目标标识信息,从而使得目标标识信息能够指示目标镜像的内容,这样,在根据目标标识信息确定要下载目标镜像时,有助于保证目标镜像的内容的准确性,避免下载到内容被篡改的目标镜像,有助于保证目标镜像的准确性和安全性。
另一种可能的实现方式中,根据目标镜像仓库类型文件,生成目标配置信息,包括:根据镜像引用声明文件的标识,确定目标镜像的镜像引用声明文件;镜像引用声明文件包括目标镜像的引用信息;引用信息包括目标镜像仓库类型文件的标识;根据目标镜像仓库类型文件的标识,确定下载目标镜像所需的配置信息为目标配置信息。
在该实现方式中,通过设置部署模板包括镜像引用声明文件的标识,以及镜像引用声明文件指示目标镜像仓库类型文件的标识,从而实现通过镜像引用声明文件建立部署模板与目标镜像仓库类型文件之间关联关系,这样,在部署目标应用的过程中,如果需要将目标镜像由目标镜像仓库迁移到其他镜像仓库进行下载,则只需更新镜像引用声明文件中记载的目标镜像仓库类型文件的标识,使得更新后的标识指向该其他镜像仓库的仓库类型文件,即可从该其他镜像仓库下载目标镜像,无需修改部署模板的内容,有助于简化部署应用的流程。
另一种可能的实现方式中,在下载目标镜像之前,该方法还包括:根据目标配置信息和目标镜像的镜像引用声明文件,向目标镜像仓库发送第一请求,第一请求用于请求目标镜像的第一镜像摘要;接收目标镜像仓库发送的第一镜像摘要,根据第一镜像摘要生成第一镜像引用文件。
在该实现方式中,容器部署系统可以根据目标配置信息和目标镜像的镜像引用声明文件,从目标镜像仓库获取目标镜像的第一镜像摘要,并根据第一镜像摘要自动生成目标镜像的第一镜像引用文件,一方面,不需要人工创建第一镜像引用文件,简化了第一镜像引用文件创建过程,提高了第一镜像引用文件创建的便利性。另一方面,由于第一镜像摘要是根据目标镜像的内容生成的,因此,第一镜像摘要描述了目标镜像仓库中唯一的目标镜像,在此基础上,根据第一镜像摘要生成的第一镜像引用文件,也指示了目标镜像仓库中确定唯一的目标镜像,有助于保证使用第一镜像引用文件从目标镜像仓库中下载目标镜像的准确性。
另一种可能的实现方式中,根据目标配置信息和目标镜像的镜像名称,向目标镜像仓库发送第一请求之前,方法还包括:根据目标配置信息,向目标镜像仓库发送第二请求;第二请求用于请求目标镜像的安全扫描结果,安全扫描结果用于指示目标镜像的安全程度;接收目标镜像仓库发送的目标镜像的安全扫描结果;在安全扫描结果满足预设条件的情况下,向目标镜像仓库发送第一请求。
在该实现方式中,一方面,通过向目标镜像仓库请求获取目标镜像的安全扫描结果,从而使得容器部署系统可以获知目标镜像的安全程度,有助于容器部署系统对镜像安全进行管理。另一方面,通过在向目标镜像仓库请求获取目标镜像的第一镜像摘要之前,获取目标镜像的安全扫描结果,并在安全扫描结果满足预设条件时才获取第一镜像摘要,由于第一镜像摘要是根据目标镜像的内容生成的,这样,有助于保证所获取的第一镜像摘要的安全性以及准确性,进而有助于保证后续下载目标镜像的准确性和安全性,以及目标应用的稳定运行。
另一种可能的实现方式中,该方法还包括:根据目标配置信息,向目标镜像仓库发送第三请求,第三请求用于请求目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥中的至少一项;根据第一镜像摘要生成第一镜像引用文件,包括:根据第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥,生成第一镜像引用文件。
在该实现方式中,容器部署系统根据目标配置信息,从目标镜像仓库获取目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥中的至少一项,并根据第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥,生成第一镜像引用文件,从而使得第一镜像引用文件包括了第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥等信息,丰富了第一镜像引用文件所包含的内容,提高了第一镜像引用文件的使用价值。
另一种可能的实现方式中,部署模板包括镜像引用声明字段;镜像引用声明字段用于承载镜像引用声明的标识。
在该实现方式中,提供了使容器部署系统支持镜像引用声明的实现方法,通过设置部署模板包括承载镜像引用声明的标识的镜像引用声明字段,实现在部署模板中直接填写镜像引用声明的标识,从而将镜像引用声明与部署模板相关联,这样,容器部署系统在接收部署模板后,可以根据部署模板中的标识获取镜像引用声明,进而实现了容器部署系统支持镜像引用声明,这种实现方式,仅需在部署模板增加一个字段,简单、方便,操作难度低。
另一种可能的实现方式中,部署模板包括镜像地址字段;镜像地址字段用于承载镜像引用声明的标识。容器部署系统配置有目标下载方法,目标下载方法为根据镜像引用声明下载目标镜像。
在该实现方式中,提供了使容器部署系统支持镜像引用声明的实现方法,通过设置部署模板中的镜像地址字段承载镜像引用声明的标识,实现在部署模板中直接填写镜像引用声明的标识,从而将镜像引用声明与部署模板相关联,可以根据部署模板中的标识获取用于下载目标镜像的镜像引用声明。此外,通过为容器部署系统配置目标下载方法,使得容器部署系统在根据部署模板获取到镜像引用声明后,可以根据镜像引用声明下载目标镜像,进而实现了容器部署系统支持镜像引用声明,这种实现方式,无需修改部署模板,仅需为容器部署系统配置目标下载方法,简单、方便,操作难度低。
另一种可能的实现方式中,部署模板包括镜像地址字段,镜像地址字段用于承载镜像引用声明的标识;容器部署系统配置有目标下载策略,目标下载策略为从镜像引用声明指示的目标镜像仓库下载第一镜像引用文件所指示的目标镜像。
在该实现方式中,提供了使容器部署系统支持镜像引用声明的实现方法,通过设置部署模板中的镜像地址字段承载镜像引用声明的标识,实现在部署模板中直接填写镜像引用声明的标识,从而将镜像引用声明与部署模板相关联,可以根据部署模板中的标识获取用于下载目标镜像的镜像引用声明。此外,通过为容器部署系统配置目标下载策略,使得容器部署系统在根据部署模板获取到镜像引用声明后,可以执行从镜像引用声明指示的目标镜像仓库中下载第一镜像引用文件所记载的目标镜像,进而实现了容器部署系统支持镜像引用声明,这种实现方式,无需修改部署模板,仅需为容器部署系统配置目标下载策略,简单、方便,操作难度低。
另一种可能的实现方式中,该方法还包括:在删除目标应用预设时长的情况下,向目标镜像仓库发送通知信息;通知信息用于通知目标镜像仓库,目标镜像所属的目标应用已删除。
在该实现方式中,通过在删除目标应用预设时长后,向目标镜像仓库发送通知信息,使得目标镜像仓库能够感知目标镜像是否处于使用状态,有助于目标镜像仓库了解存储的镜像的使用情况,从而在需要删除部分镜像时,能够准确删除那些处于非使用状态的镜像。
另一种可能的实现方式中,该方法还包括:根据目标配置信息,接收目标镜像仓库发送的目标镜像的第二镜像摘要,第二镜像摘要为描述目标镜像的更新版本的内容的信息;根据目标镜像的第二镜像摘要,生成目标镜像的第二镜像引用文件。
在该实现方式中,一方面,通过接收目标镜像仓库发送的目标镜像的第二镜像摘要,使得容器部署系统能够获知到目标镜像仓库中的目标镜像存在更新版本。另一方面,通过自动根据第二镜像摘要生成第二镜像引用文件,使得容器部署系统能够自动更新目标镜像的第一镜像引用文件,这样,有助于容器部署系统自动管理目标镜像的不同版本所对应的镜像引用文件,不仅提高了容器部署系统的镜像管理能力,还能够降低人工管理的成本。
另一种可能的实现方式中,该方法还包括:根据第二镜像引用文件和目标配置信息,从目标镜像仓库下载目标镜像的更新版本;根据目标镜像的更新版本部署目标应用。
在该实现方式中,容器部署系统可以自动根据第二镜像引用文件和目标配置信息,从目标镜像仓库下载目标镜像的更新版本,并使用目标镜像的更新版本部署目标应用,从而实现自动更新目标应用,这样,有助于提高容器部署系统对目标应用的管理能力。
另一种可能的实现方式中,容器部署系统还包括控制节点,镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件存储在控制节点。
在该实现方式中,由于容器部署系统通常包括多个工作节点,且多个工作节点能够分别与控制节点通信连接,另外,工作节点由于运行应用程序,其访问权限要求通常高于控制节点的访问权限要求,因此,通过将镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件存储在控制节点,工作节点在需要使用时再从控制节点上获取,一方面,不必在每个工作节点存储相同的文件,如镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件,并且,在需要对这些文件进行修改时,也只需修改一份即可;另一方面,控制节点的访问权限要求比较低,从而降低了镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件的访问难度,更便于修改镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件,进而有助于降低镜像引用声明、第一镜像引用文件和目标镜像仓库类型文件的管理难度。另一种可能的实现方式中,目标镜像仓库类型文件包括目标镜像仓库类型文件的标识、镜像仓库类型、镜像仓库地址信息、镜像仓库登入账户信息、镜像仓库认证方式信息和镜像仓库认证凭证信息和镜像仓库代理信息中的至少一项。
在该实现方式中,通过设置目标镜像仓库类型文件包括目标镜像仓库类型文件的标识、镜像仓库类型、镜像仓库地址信息、镜像仓库登入账户信息、镜像仓库认证方式信息和镜像仓库认证凭证信息、镜像仓库代理信息中的至少一项,从而可以通过目标镜像仓库类型文件统一管理容器部署系统和目标镜像仓库之间的认证、对接、访问权限等信息,相对于在各个工作节点分别存储镜像仓库的配置信息的分散管理方式,降低了对镜像仓库的管理难度,有助于提高容器部署系统对镜像仓库的管理能力。
此外,通过在容器部署系统上部署目标镜像仓库类型文件,使得容器部署系统可以通过目标镜像仓库类型文件对接和管理不同类型的镜像仓库,解决了相关技术中的容器部署系统对接多个不同类型的镜像仓库时,多个不同类型的镜像仓库的配置信息(如认证、管理接口等)需要分散在不同的工作节点上进行管理,导致管理难度特别大的问题。
另一种可能的实现方式中,若目标镜像的目标标识信息包括镜像名称和镜像版本号的,第一镜像摘要是基于镜像版本号所属的镜像的内容生成的。
在该实现方式中,由于应用更新时会生成与历史版本镜像的镜像名称相同、镜像版本号不同的新镜像,也就是说,如果应用有更新,那么,镜像仓库中会存储有一些列镜像名称相同、但镜像版本号不同的镜像,因此,若目标标识信息包括镜像名称和镜像版本号,则获取的第一镜像摘要为镜像版本号所属镜像(即目标镜像)生成的,这样,有助于保证第一镜像引用文件可以对应唯一的目标镜像,进而有助于保证下载目标镜像的准确性。
另一种可能的实现方式中,若目标镜像的目标标识信息包括镜像名称、且不包括镜像版本号的情况下,第一镜像摘要是基于镜像名称所指示的至少一个镜像中的最新版本的镜像的内容所生成的。
在该实现方式中,由于应用更新时会生成与历史版本镜像的镜像名称相同、镜像版本号不同的新的镜像,也就是说,如果应用有更新,那么,镜像仓库中会存储有一些列镜像名称相同、但镜像版本号不同的镜像,因此,若目标标识信息不包括镜像版本号,则获取的第一镜像摘要为镜像名称指示的多个镜像中的最新版本的镜像生成的,这样,能够保证第一镜像引用文件指向镜像仓库中的最新版本的镜像,从而有助于下载最新版本的镜像,进而有助部署最新版本的应用。
第二方面,提供了一种镜像仓库访问装置,该装置包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的东西通过硬件实现或通过硬件执行相应的软件实现。例如,镜像仓库访问装置可以包括接收单元、处理单元和访问单元;接收单元,用于接收目标镜像仓库类型文件;目标镜像仓库类型文件用于记载访问目标镜像仓库所需的描述信息。处理单元,用于根据目标镜像仓库类型文件,生成目标配置信息;其中,目标配置信息为从目标镜像仓库获取目标镜像时所需的配置信息。访问单元,用于基于目标配置信息访问目标镜像仓库。
第三方面,提供了一种容器部署系统,容器部署系统包括工作节点;工作节点用于执行上述第一方面提供的任意一种方法。
第四方面,提供了一种容器部署系统,包括控制节点和工作节点;控制节点获取目标镜像仓库类型文件,向工作节点发送目标镜像仓库类型文件;其中,目标镜像仓库类型文件用于记载访问目标镜像仓库所需的仓库配置信息;工作节点接收控制节点发送的目标镜像仓库文件,根据目标镜像仓库类型文件,生成目标配置信息,目标配置信息是工作节点从目标镜像仓库获取目标镜像时所需的配置信息。工作节点基于目标配置信息访问目标镜像仓库。
可选地,控制节点接收目标应用的部署模板,并向工作节点发送目标应用的部署模板;其中,部署模板用于记载部署目标应用时所需的部署信息;工作节点接收到控制节点发送的目标应用的部署模板,根据部署模板,确定部署目标应用所需的目标镜像的目标标识信息;工作节点根据目标镜像的目标标识信息和目标配置信息,下载目标镜像。
可选地,部署模板包括目标镜像的镜像引用声明文件的标识;控制节点具体在镜像引用声明文件的标识所指示的镜像引用声明文件为可用状态的情况下,向工作节点发送部署模板。
可选地,镜像引用声明文件记载有目标镜像的引用信息,目标镜的引用信息包括目标镜像的第一镜像引用文件的标识;控制节点具体在第一镜像引用文件的标识所指示的第一引用文件为可用状态的情况下,向工作节点发送目标应用的部署模板。
可选地,控制节点接收目标镜像的第一镜像引用文件;控制节点在第一镜像引用文件所记载的内容满足预设目标条件的情况下,将镜像引用声明文件和/或第一镜像引用文件标记为可用状态。
可选地,部署模板包括目标镜像的镜像引用声明文件的标识;工作节点具体根据镜像引用声明文件的标识,获取目标镜像的镜像引用声明文件;其中,镜像引用声明文件用于记载目标镜像的引用信息;工作节点根据目标镜像的引用信息,确定目标镜像的目标标识信息。
可选地,目标镜像的引用信息包括目标镜像的镜像名称和镜像版本号;工作节点具体确定目标镜像的镜像名称和镜像版本号为目标镜像的目标标识信息。
可选地,目标镜像的引用信息包括目标镜像的第一镜像引用文件的标识;工作节点具体根据第一镜像引用文件的标识,确定目标镜像的第一镜像引用文件;其中,第一镜像引用文件用于记载描述目标镜像的内容的信息;工作节点根据目标镜像的第一镜像引用文件,确定目标镜像的目标标识信息。
可选地,目标镜像的第一镜像引用文件包括目标镜像的第一镜像摘要;工作节点具体确定目标镜像的第一镜像摘要为目标镜像的目标标识信息。
可选地,工作节点具体根据镜像引用声明文件的标识,确定目标镜像的镜像引用文件;镜像引用声明文件包括目标镜像的引用信息,目标镜像的引用信息包括目标镜像仓库类型文件的标识;工作节点根据目标镜像仓库类型文件的标识,确定下载目标镜像所需的配置信息为目标配置信息。
可选地,在下载目标镜像之前,工作节点根据目标配置信息和目标镜像的镜像引用声明文件,向目标镜像仓库发送第一请求;其中,第一请求用于请求目标镜像的第一镜像摘要;工作节点接收目标镜像仓库发送的第一镜像摘要,根据第一镜像摘要生成第一镜像引用文件。
可选地,工作节点根据目标配置信息和目标镜像的镜像引用声明文件,向目标镜像仓库发送第一请求之前,工作节点根据目标配置信息,向目标镜像仓库发送第二请求;其中,第二请求用于请求目标镜像的安全扫描结果,安全扫描结果用于指示目标镜像的安全程度;工作节点接收目标镜像仓库发送的目标镜像的安全扫描结果;工作节点具体在安全扫描结果满足预设条件的情况下,向目标镜像仓库发送第一请求。
可选地,工作节点根据目标配置信息,向目标镜像仓库发送第三请求;其中,第三请求用于请求目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥中的至少一项;工作节点具体根据第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥,生成第一镜像引用文件。
可选地,部署模板包括镜像引用声明字段或镜像地址字段;镜像引用声明字段或镜像地址字段用于承载镜像引用声明的标识。
可选地,工作节点在删除目标应用预设时长的情况下,向目标镜像仓库发送通知信息;其中,通知信息用于通知目标镜像仓库,目标镜像所属的目标应用已删除。
可选地,工作节点根据目标配置信息,接收目标镜像仓库发送的目标镜像的第二镜像摘要;其中,第二镜像摘要为描述目标镜像的更新版本的内容的信息;工作节点根据目标镜像的第二镜像摘要,生成目标镜像的第二镜像引用文件。
可选地,工作节点根据第二镜像引用文件和目标配置信息,从目标镜像仓库下载目标镜像的更新版本。
第五方面,提供了一种计算机设备,包括:包括:处理器和存储器,处理器与存储器连接。存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
第六方面,提供了一种芯片,芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行上述第一方面提供的任意一种方法。
第七方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
第八方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
其中,第二方面至第八方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种相关技术中容器部署系统部署应用程序的原理图;
图2为本申请实施例提供的一种容器部署系统的架构图;
图3为本申请实施例提供的一种镜像仓库访问方法的流程图;
图4为本申请实施例提供的一种容器部署系统与镜像仓库的交互示意图;
图5为本申请实施例提供的另一种镜像仓库访问方法的流程图;
图6为本申请实施例提供的一种容器部署系统部署应用程序的原理图;
图7为本申请实施例提供的另一种镜像仓库访问方法的流程图;
图8为本申请实施例提供的一种镜像仓库访问装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
以下,对本申请实施例中涉及的相关术语进行简要介绍。
容器:是通过一种虚拟化技术来隔离运行在主机上的不同进程,从而达到不同进程之间、进程和主机操作系统相互隔离、互不影响的技术。也就是说,容器本质上是一种进程隔离的技术。容器为进程提供了一个隔离的环境,容器内的进程无法访问容器外的进程。其中,相互独立进程就叫做容器。
容器化:是指将应用程序整合到容器中并且运行起来的过程。
镜像(image):包含了一个打包的应用程序,以及应用程序的依赖关系,还有应用程序在启动时运行的进程信息。如下述实施例中的目标镜像。
镜像摘要(digest):是描述镜像的内容信息,例如,可以是根据镜像的内容生成的哈希值,具有唯一、不可更改的属性。如下述实施例中的第一镜像摘要、第二镜像摘要。
镜像仓库(image registry):提供镜像注册服务(container image registryservice,CIRS)的服务器节点,可以同时存储、管理多个镜像。其中,镜像仓库中的任意一个镜像都具有唯一的镜像地址,镜像地址的格式与统一资源定位符(uniform resourcelocator,URL)的格式相同。如下述实施例中的目标镜像仓库。
镜像引用(image tag,IT)文件:用于记载描述其所引用的镜像的内容的信息,如下述实施例中第一镜像引用文件、第二镜像引用文件。其中,第一镜像引用文件记载的是其所引用的目标镜像的内容的信息,第二镜像引用文件记载的是其所引用的目标镜像的更新版本的内容的信息。其中,镜像引用文件与镜像一一对应。
镜像仓库类型(image registry class,IRC)文件:用于记载访问镜像仓库所需的描述信息,如下述实施例中的目标镜像仓库类型文件。镜像仓库类型文件与镜像仓库一一对应。
镜像引用声明(image tag claim,ITC)文件:用于记载镜像的引用信息,镜像的引用信息包括镜像引用文件的标识、镜像仓库类型文件的标识以及镜像的标识信息(如镜像名称、镜像版本号)。镜像引用声明文件是指示根据其所记载的镜像引用文件和镜像仓库类型文件下载镜像的声明文件。其中,镜像引用声明文件与镜像引用文件一一对应,镜像引用声明文件与镜像仓库类型文件一一对应,也就是说,一个镜像引用声明文件关联一个镜像引用文件以及一个镜像仓库类型文件。如下述实施例中的目标镜像的镜像引用文件关联目标镜像的第一镜像引用文件以及目标镜像仓库类型文件。
配置信息:是工作节点访问镜像仓库,以及从镜像仓库获取镜像、镜像的镜像摘要、镜像的安全扫描结果、镜像的数字签名、镜像的密钥等数据所需的访问信息,如下述实施例中的目标配置信息。
以下,对本申请实施例的应用场景进行示例性介绍。
由于容器可以隔离应用程序的运行环境,使应用程序在不同主机上获得一致的性能,从而使得应用程序在开发环境、测试环境、生产环境中运行时,不必考虑运行环境的差异,仅需考虑需求本身,因此,容器开发逐步成为主流的应用开发技术。随着容器开发的盛行,越来越多的镜像被生成,最开始,镜像仅存储在本地文件系统中,后来,为了更好的共享和分发镜像,镜像被推送到镜像仓库中进行存储。其中,镜像仓库包括云服务商提供的共有镜像仓库和用户自己搭建的私有镜像仓库,共有镜像仓库中的镜像需要通过外网进行获取,私有镜像仓库的镜像可以通过内网进行获取。
为了更好的管理容器,相关技术中提出了容器部署系统,如Kubernetes,DockerSwarm,Apache Mesos等,用于对容器进行编排、管理和调度。以下,以Kubernetes(简称k8s)为例,对相关技术中的容器部署系统如何部署应用进行简要说明。
如图1所示,镜像仓库a中存储有镜像a、…、镜像k。容器部署系统包括控制节点和工作节点a,工作节点a可以从镜像仓库a中下载镜像。其中,工作节点a上预先存储有镜像仓库a的配置信息,如registries.conf(配置信息a)、config.json(配置信息b)等,用于从镜像仓库a中下载镜像时使用。在部署应用程序a时,控制节点的应用程序编程接口(application program interface,API)接收到部署模板a后,将部署模板a分发至工作节点a,指示工作节点a根据部署模板a部署应用程序a。工作节点a的代理组件(如kubelet组件)在接收到部署模板a后,调用容器引擎(如docker或CRI-O),由容器引擎根据部署模板a上的镜像地址a以及工作节点a上预先存储的镜像仓库a的配置信息(如配置信息a、配置信息b),从镜像仓库a下载部署应用程序a所需的镜像a,并根据下载的镜像a部署应用程序a。
在此基础上,在容器部署系统包括多个工作节点时,相关技术中为了保证每个工作节点都能够成功从各个镜像仓库下载镜像,需要预先将各个镜像仓库的配置信息分别存储在容器部署系统的每个工作节点,以保证每个工作节点都能能够使用配置信息访问镜像仓库。然而,由于工作节点的访问权限要求比较高,这就导致镜像仓库的访问过程非常繁琐,工作节点上存储的镜像仓库的配置信息管理也起来特别困难。
此外,由于同一个镜像仓库的配置信息需要存储在多个工作节点上,例如,多个工作节点均需要从镜像仓库a下载镜像,则多个工作节点上均需要存储镜像仓库a的配置信息,这就导致需要更新镜像仓库a的配置信息时,要同时在多个工作节点上分别执行,操作繁琐。并且,在一个工作节点(如工作节点a)需要从多个镜像仓库下载镜像时,该工作节点a上则需要分别存储多个镜像仓库的配置信息,占用存储空间较大。
有鉴于此,本申请实施例提供了一种镜像仓库访问方法,用于容器部署系统,该方法中,容器部署系统可以接收到目标镜像仓库类型文件,该文件记载了访问目标镜像仓库所需的描述信息,基于该目标镜像仓库类型文件,容器部署系统可以自动生成目标配置信息,该目标配置信息可以用于容器部署系统访问目标镜像仓库,并从目标镜像仓库获取目标镜像。由于容器部署系统可以自动生成用于访问目标镜像仓库以及从目标镜像仓库下载目标镜像的目标配置信息,因此,不必再将镜像仓库的配置信息预先存储在容器编排系统的每个工作节点,只需在需要访问目标镜像仓库或需要从目标镜像仓库下载目标镜像时,自动生成目标配置信息即可,因此,有助于简化了镜像仓库的访问过程的,以及降低镜像仓库的配置信息的管理难度。
另外,由于每个工作节点都无需存储镜像仓库的配置信息,因此,在需要更新镜像仓库的配置信息时,只需更新用于生成镜像仓库的配置信息的镜像仓库类型文件即可,无需像相关技术中更新各个工作节点的镜像仓库的配置信息,操作更加简单,降低了镜像仓库的配置信息的更新难度。此外,由于可以自动生成各个镜像仓库的配置信息,因此,也就是无需再工作节点存储各个镜像仓库的配置信息,从而解决了相关技术中存储多个镜像仓库的配置信息所存在的占用存储空间大的问题。
以下,对本申请实施例的系统架构进行示例性介绍。
本申请实施例提供的镜像仓库访问方法适用于容器部署系统。在一些实施例中,容器部署系统包括多个控制节点和多个工作节点。在另一些实施例中,容器部署系统包括一个控制节点和至少一个工作节点。需要说明的,前述两个实施例中,容器部署系统的工作原理相同。
以下,以容器部署系统包括一个控制节点和至少一个工作节点为例,对容器部署系统进行示例性介绍。
如图2所示,容器部署系统包括控制节点(master)、工作节点1(node1)、……、工作节点N,N为大于1的正整数。其中,控制节点/工作节点是计算机设备或虚拟机。
以下,对控制节点和目标工作节点上部署的软件进行示例性介绍。其中,目标工作节点为工作节点1、……、工作节点N中任意一个工作节点。
其中,控制节点上部署有API组件。API组件为容器部署系统的对外接口,用户的操作指令均通过API组件发送给容器部署系统。例如,对容器部署系统中对象资源(如部署模板)进行删除、修改、查找和监听的操作指令都是先发送给API组件。
此外,控制节点还配置有存储系统,如Etcd存储系统,其中,API组件可以直接访问该存储系统,进行数据读取或数据存储,容器部署系统上的其他组件则需通过API组件访问该存储系统,也就是说,API组件为该存储系统的入口。另外,该存储系统可以位于控制节点上,作为控制节点的一个组成部分,例如,该存储系统可以控制节点上的一个或多个硬盘。或者,该存储系统也可以位于控制节点之外的其他计算机设备,该其他计算机设备与控制节点通信连接。其中,目标工作节点上部署有代理组件(如kubelet组件)和容器引擎(如docker或CRI-O)。其中,代理组件为控制节点在工作节点的代理,用于接收API组件转发的操作指令。容器引擎负责从镜像仓库下载镜像以及根据镜像部署应用。
在一些实施例中,容器部署系统还配置有仓库管理插件和插件控制器,插件控制器通过API组件与仓库管理插件通信,例如,插件控制器需要向仓库管理插件发送指令1,则插件控制器将指令1发送至API组件,由API组件将指令1转发至仓库管理插件。需要说明的,下述实施例中关于插件控制器与仓库管理插件之间的数据传输,均是基于前述原理。
其中,仓库管理插件主要用于生成镜像引用文件、配置信息,插件控制器主要用于管理镜像引用声明文件、镜像引用文件、镜像仓库类型文件,以及仓库管理插件的部署和配置。
需要说明的,仓库管理插件和插件控制器的具体用途将在后续实施例中进行详细说明。
其中,仓库管理插件分别部署于至少一个工作节点中的每个工作节点上,例如,仓库管理插件以守护进程集DaemonSet的方式部署到每个工作节点上。插件控制器部署于控制节点或至少一个工作节点中的任意一个工作节点。
由于目标工作节点部署应用程序过程是代理组件接收到部署模板后,调用仓库管理插件,由仓库管理插件调用容器引擎,由容器引擎根据镜像仓库的配置信息从镜像仓库下载镜像并部署应用。因此,通过将仓库管理插件部署于每个工作节点,有助于代理组件、仓库管理插件以及容器引擎之间相互调用的稳定性。
另外,相对于将仓库管理插件部署于控制节点,由多个工作节点共有一个仓库管理插件的方案,在每个工作节点上部署仓库管理插件,能够避免多个工作节点使用仓库管理插件时发生冲突。另外,插件控制器可以部署于控制节点或任意一个工作节点,提高了插件控制器部署位置的灵活性,从而根据各个节点的负载情况,确定插件控制器的部署位置,有助于充分利用各个节点的负载能力。
需要说明的,本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为了便于理解,以下结合附图对本申请提供的镜像仓库访问方法进行示例性介绍。
需要说明的,下述实施例中的镜像仓库访问方法适用于上述系统架构部分介绍的任意一个实施例中的容器部署系统。
以下,以任意一个容器部署系统的目标控制节点和目标工作节点为例,对本申请实施例中的镜像仓库访问方法进行介绍。
其中,在容器部署系统包括一个控制节点时,下述实施例中的目标控制节点为该一个控制节点。在容器部署系统包括多个控制节点时,下述实施例中的目标控制节点为多个控制节点中的任意一个节点。目标工作节点与目标控制节点的相关说明相同,此处不再细述。
本申请以下实施例将分成三个部分对镜像仓库访问方法的方案进行示例性介绍。
第一部分,是结合图3至图4介绍容器部署系统部署应用程序前,预先为容器部署系统配置镜像引用声明文件、镜像引用文件以及镜像仓库类型文件的过程。
第二部分,是结合图5至图6介绍容器部署系统根据第一部分中的镜像引用声明文件、镜像引用文件以及镜像仓库类型文件部署应用程序的过程。
第三部分,是结合图7介绍容器部署系统部署应用程序后,自动更新应用程序的过程。
以下,以目标应用为例,对部署应用程序前,预先为容器部署系统配置镜像引用声明文件、镜像引用文件和镜像仓库类型文件的过程(即上述第一部分),进行示例性说明。
需要说明的,目标应用为容器部署系统待部署的多个应用程序中的任意一个应用程序。部署目标应用所需的镜像为目标镜像,目标镜像所在的镜像仓库为目标镜像仓库,因此,需要预先为容器部署系统配置目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件,以及目标镜像仓库类型文件。
另外,之所以将目标镜像的镜像引用文件命名为第一镜像引用文件,是为了与后续实施例中的第二镜像引用文件进行区分。其中,第二镜像引用文件为目标镜像的更新版本的镜像引用文件。
图3是根据一示例性实施例示出的一种镜像仓库访问方法的流程图。示例性的,该方法包括S301-S308。
S301:容器部署系统的目标控制节点获取目标镜像的镜像引用声明文件和目标镜像仓库类型文件。
其中,镜像引用声明文件记载有目标镜像的引用信息,该目标镜像的引用信息包括目标镜像的镜像标识。
示例性的,镜像引用声明文件所记载的引用信息如下所示:
在一些实施例中,如图3所示,目标镜像的引用信息还包括镜像引用声明文件的标识以及目标镜像仓库类型文件的标识。其中,镜像引用声明文件的标识为A1(即上述内容中的cluster-version-operator),目标镜像的镜像标识为B1(即上述内容中的okd:4.9),目标镜像仓库类型文件标识为C1(即上述内容中的harbor-okd)。
其中,目标镜像仓库类型文件用于记载访问目标镜像仓库所需的描述信息。
可选地,目标镜像仓库类型文件包括目标镜像仓库类型文件的标识、镜像仓库类型、镜像仓库地址信息、镜像仓库登入账户信息、镜像仓库认证方式信息和镜像仓库认证凭证信息和镜像仓库的代理信息中的至少一项。
其中,镜像仓库类型,是指Harbor、DockerHub等提供镜像仓库服务的厂商的类型。镜像仓库地址信息,包括服务端(Host)和镜像目录(Catalog或Project),如docker.io/library。镜像仓库登入账户信息包括登入镜像仓库的用户名和密码。镜像仓库认证方式信息,包括OCI规范中的证书、Token、Basic等多种认证方式中任一项。镜像仓库的认证凭证信息包括TLS配置信息,如服务端证书、CA证书库、是否校验服务端证书等TLS相关的配置。镜像仓库的代理信息是指代理镜像仓库的代理站点的相关信息,如,容器部署系统无法直接访问镜像仓库a,而服务器节点a是镜像仓库a的代理节点,则容器部署系统可以通过服务器节点a访问镜像仓库a,此时,容器部署系统通过服务器节点a访问镜像仓库a所需的信息即为代理信息。
示例性的,目标镜像仓库类型文件所记载的描述信息如下所示:
在一些实施例中,如图3所示,目标镜像仓库类型文件的标识为C1,目标镜像仓库类型为D1(即上述内容中的Harbor),目标镜像仓库地址信息为E1(即上述内容中的harbor.svc/openshift),认证方式信息为F1(即上述内容中的Basic),目标镜像仓库登入账户信息为G1(即上述内容中的cHVibGljOmFiYzEyMzQ1Ng),目标镜像仓库认证凭证信息为H1(即上述内容中的true)。
在一些实施例中,目标控制节点通过API组件接收目标镜像的镜像引用声明文件和目标镜像仓库类型文件。
在一些实施例中,目标控制节点同时获取到目标镜像的镜像引用声明文件和目标镜像仓库类型文件。在另一些实施中,目标控制节点分步获取目标镜像的镜像引用声明文件和目标镜像仓库类型文件,例如,可以是先获取目标镜像的镜像引用声明文件,再获取目标镜像仓库类型文件,或,也可以是先获取目标镜像仓库类型文件,再获取目标镜像的镜像引用文件。
可选地,目标控制节点在通过API组件接收到目标镜像的镜像引用声明文件和目标镜像仓库类型文件后,将目标镜像的镜像引用声明文件和目标镜像仓库类型文件存储于目标控制节点,如存储在目标控制节点的存储系统中。
在一些实施例中,在执行S301之前,需要为目标控制节点的API组件配置镜像引用声明文件资源和镜像仓库类型文件资源。例如,可以通过API组件所支持的自定义资源类型(CustomResourceDefinitions,CRD),配置镜像引用声明文件资源和镜像仓库类型文件资源。当然,也可以使用相关技术中的其他方式为API组件配置镜像引用声明文件资源和镜像仓库类型文件资源,如,API聚合(Aggregation),本申请实施例对此不做限制。
在为API组件配置镜像引用声明文件资源之后,API组件即可接收目标镜像的镜像引用声明文件并进行相应处理,如存储在目标控制节点的存储系统等。同样的,在为API组件配置镜像仓库类型文件资源后,API组件即可接收目标镜像仓库类型文件并进行相应处理。
在一示例中,基于CRD为API组件配置镜像仓库类型文件资源时,核心架构如下:
在一个示例中,基于CRD为API组件配置镜像引用声明文件资源时,核心架构如下:
S302:容器部署系统的目标控制节点向目标工作节点发送目标镜像的镜像引用声明文件和目标镜像仓库类型文件。
在一些实施例中,目标控制节点通过API组件向目标工作节点上的插件控制器发送目标镜像的镜像引用声明文件和目标镜像仓库类型文件。
示例性的,则目标工作节点的API组件接收到目标镜像的镜像引用声明文件和目标镜像仓库类型文件后,将目标镜像的镜像引用声明文件和目标镜像仓库类型文件发送给插件控制器(位于目标控制节点或任意一个工作节点),插件控制器根据“镜像引用声明”选择合适的工作节点(如目标工作节点),并给“镜像引用声明文件”添加节点名称的属性(即目标工作节点的名称)。之后,插件控制器将添加节点名称的镜像引用声明文件和目标镜像仓库类型文件发送给API组件,API组件通过订阅或发布机制,向各个工作节点发送添加节点名称的镜像引用声明文件和目标镜像仓库类型文件。
在一些实施例中,目标控制节点向目标工作节点同时发送目标镜像的镜像引用声明文件和目标镜像仓库类型文件。在另一些实施例中,目标控制节点向目标工作节点分步发送目镜像的镜像引用声明文件和目标镜像仓库类型文件,例如,可以是先发送目标镜像的镜像引用声明文件,再发送目标镜像仓库类型文件,或者,也可以是先发送目标镜像仓库类型文件,再发送目标镜像的镜像引用声明文件。
S303:容器部署系统的目标工作节点接收目标控制节点发送的目标镜像的镜像引用声明文件和目标镜像仓库类型文件。
在一些实施例中,目标工作节点上的仓库管理插件监听到与自己所在工作节点的节点名称匹配的“镜像引用声明文件”时,接收该镜像引用声明文件和目标镜像仓库类型文件。
在一些实施例中,目标工作节点同时接收到目标镜像的镜像引用声明文件和目标镜像仓库类型文件。在另一些实施中,目标工作节点分次获取目标镜像的镜像引用声明文件和目标镜像仓库类型文件,例如,可以是先接收到目标镜像的镜像引用声明文件,后接收到目标镜像仓库类型文件,或,也可以是先接收到目标镜像仓库类型文件,后接收到目标镜像的镜像引用文件。
S304:容器编排系统的目标工作节点根据目标镜像仓库类型文件,生成目标配置信息。
在一些实施例中,目标工作节点的仓库管理插件根据目标镜像仓库类型文件中所记载的描述信息,生成目标配置文件,目标配置文件记载有目标配置信息。其中,目标配置文件为容器引擎可识别的文件。
在一些实施例中,目标工作节点在生成目标配置信息后,将目标配置信息存储在目标工作节点。这样,在后续部署应用程序时,若需要使用目标配置信息,便可以直接使用,不必再临时生成,有助于提高部署应用时镜像的下载效率。
需要说明的,该目标配置信息在目标工作节点的存储时长,可以根据实际情况进行确定,例如,可以根据目标工作节点的存储能力、目标镜像是否更新等情况。本申请实施例对存储时长不做限制。
可选地,S305:容器编排系统的目标工作节点基于目标配置信息访问目标镜像仓库。
在一些实施例中,目标工作节点的容器引擎识别目标配置文件中的目标配置信息,并基于目标配置信息登入目标镜像仓库账户,以访问目标镜像仓库。
需要说明的,目标工作节点的容器引擎登入目标镜像仓库账户后,可以维持登入状态,以便后续可以直接从镜像仓库下载镜像或镜像摘要,不必重复登入账户。
需要说明的,S305为可选步骤,在执行完S304之后,也可以不执行S305,而是直接执行S306。
相关技术中,通常将镜像仓库的对接、认证以及访问权限的相关信息分别存储,而本申请实施例中,由于目标镜像仓库的对接、认证、访问权限(即访问镜像仓库所需的描述信息)已记载在目标镜像仓库类型文件中,因此,目标工作节点只需根据目标镜像仓库类型文件自动生成目标配置信息,便可以基于目标配置信息访目标镜像仓库,无需再关注镜像仓库的对接、认证以及访问权限等细节,简化了目标工作节点访问目标镜像仓库流程,进而也就简化了从目标镜像仓库下载目标镜像的流程。
S306:容器部署系统的目标工作节点根据目标配置信息,向目标镜像仓库发送第一请求或第三请求。
其中,第一请求用于请求获取目标镜像的第一镜像摘要。第一镜像摘要为描述目标镜像的内容的信息,第一镜像摘要是根据目标镜像的内容生成的。
其中,第三请求用于请求目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥中的至少一项。
由于第一镜像摘要是根据目标镜像的内容生成,因此,第一镜像摘要与目标镜像为一一对应的关系,也即,根据第一镜像摘要可以确定唯一的目标镜像。
在一些实施例中,目标工作节点具体根据目标配置信息和目标镜像的镜像引用声明文件,向目标镜像仓库发送第一请求。其中,目标配置信息用于登入目标镜像仓库账户,从而得到目标镜像仓库允许从目标镜像仓库获取镜像摘要的许可。镜像引用声明文件用于确定获取的是哪个镜像的镜像摘要,也即,目标镜像的引用信息所指示的目标镜像的镜像摘要,例如,可以是目标镜像的引用信息中记载的镜像名称和镜像版本号指示目标镜像。
也就是说,目标工作节点之所以请求获取目标镜像的第一镜像摘要,而不是其他镜像的第一镜像摘要,是因为镜像引用声明文件记载的是目标镜像的引用信息,该引用信息包括目标镜像的镜像标识。也就是说,目标工作节点是根据镜像引用声明文件所记载的镜像标识确定获取哪个镜像的第一镜像摘要。
其次,对于获取到的目标镜像的第一镜像摘要,包括多种实现方式,以下通过方式1至方式2进行示例性说明。
方式1:在目标镜像的镜像标识包括镜像名称和镜像版本号时,第一镜像摘要是基于镜像版本号所属的镜像的内容生成的。
在一些实施例中,若目标镜像的镜像标识包括镜像名称和镜像版本号,例如,镜像标识为okd:4.9,其中,okd为镜像名称,4.9镜像版本号,则镜像标识可以在目标镜像仓库中确定唯一的镜像,该唯一的镜像即为目标镜像,也即,镜像引用声明文件与目标镜像仓库中的镜像具有一一对应的关系。此时,第一镜像摘要即为该唯一镜像的内容生成的。
方式2:在目标镜像的镜像标识包括镜像名称,但不包括镜像版本号时,第一镜像摘要是基于镜像名称所指示的至少一个镜像中的最新版本的镜像的内容所生成的。
在一些实施例中,若目标镜像的镜像标识包括镜像名称,但不包括镜像版本号,则镜像名称可以从目标镜像仓库中确定镜像名称相同、且镜像版本号不同的多个镜像,也就是说,一个镜像引用声明文件对应目标镜像仓库中的多个镜像,此时,多个镜像中的最新版本的镜像为目标镜像。在此基础上,第一镜像摘要是基于镜像名称所指示的至少一个镜像中的最新版本的镜像的内容所生成的。
例如,目标镜像仓库中存储有okd:4.1、okd:4.2以及okd:4.9,镜像标识为okd,则该镜像名称可以从目标镜像仓库中确定多个镜像为okd:4.1、okd:4.2以及okd:4.9,由于okd:4.9为okd的最新版本的镜像,因此,okd:4.9即为目标镜像。
在一些实施例中,目标工作节点的仓库管理插件根据目标配置信息和目标镜像的镜像引用文件,向目标镜像仓库发送第一请求。在另一些实施例中,目标工作节点的仓库管理插件将目标配置信息和目标镜像的镜像引用声明文件发送给目标工作节点上的容器引擎,由容器引擎根据目标配置信息和目标镜像的镜像引用文件,向目标镜像仓库发送第一请求。
在一些实施例中,在执行S306之前,镜像仓库访问方法还包括:容器部署系统的目标工作节点根据目标配置信息和镜像引用声明文件,确定目标镜像仓库中存储有目标镜像。
例如,目标工作节点根据目标配置信息和镜像引用声明文件中的镜像标识,向目标镜像仓库发送查询请求,该查询请求用于请求目标镜像仓库确定是否存储有目标镜像,之后,通过接收目标镜像仓库返回的确定结果,确定目标镜像仓库是否存储有目标镜像。在根据确定结果确定目标镜像仓库存储有目标镜像之后,向目标镜像仓库发送第一请求。若根据确定结果确定目标镜像仓库未存储有目标镜像,则结束,不再执行后续步骤。
在另一些实施例中,第一请求具体用于请求目标镜像仓库确定是否存储有目标镜像,以及在存储有目标镜像时请求获取目标镜像的第一镜像摘要。若目标镜像仓库未返回目标镜像的第一镜像摘要,或者返回未存储有目标镜像的确定结果,则结束,不再执行后续步骤。
S307:容器部署系统的目标工作节点接收目标镜像仓库发送的目标镜像的第一镜像摘要。
在一些实施例中,目标工作节点通过容器引擎向目标镜像仓库发送第一请求时,同样通过容器引擎接收目标镜像仓库返回的目标镜像的第一镜像摘要,在此基础上,容器引擎将接收到的目标镜像的第一镜像摘要发送给仓库管理插件。
在另一些实施例中,目标工作节点通过仓库管理插件向目标镜像仓库发送第一请求时,同样通过仓库管理插件接收目标镜像仓库返回的目标镜像的第一镜像摘要。
S308:容器部署系统的目标工作节点根据目标镜像的第一镜像摘要,生成目标镜像的第一镜像引用文件。
在一些实施例中,目标镜像的第一镜像引用文件用于从目标镜像仓库确定目标镜像。由于第一镜像引用文件记载有描述目标镜像的内容的信息,如目标镜像的第一镜像摘要,因此,第一镜像引用文件可以从目标镜像仓库确定唯一的镜像,并且还能够确定目标镜像仓库中的目标镜像的内容是否发生改变,例如,将非目标镜像的内容替换目标镜像的内容,导致目标镜像的镜像标识未改变但镜像内容发生改变,因此,有助于提高后续使用第一镜像引用文件下载目标镜像的准确性。
在一些实施例中,目标工作节点根据目标镜像的第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥,生成目标镜像的第一镜像引用文件。基于此,目标镜像的第一镜像引用文件记载有描述目标镜像的第一镜像摘要、安全扫描结果、数字签名和密钥的信息。这样,有助于丰富第一镜像引用文件所记载的内容,进而有助于对目标镜像进行更全面的管理。对于容器部署系统来说,通过存储不同镜像的镜像引用文件,即可以对镜像仓库中的镜像进行管理,显著了容器部署系统的镜像管理能力。
在另一些实施例中,目标工作节点的仓库管理插件根据目标镜像的第一镜像摘要,生成目标镜像的第一镜像引用文件。
示例性的,第一镜像引用文件所记载的信息如下所示:
在一些实施例中,如图3所示,第一镜像引用文件记载有第一镜像引用文件的标识、第一镜像摘要以及目标镜像仓库类型文件的标识。其中,第一镜像摘要为J1(即上述内容中的okd@sha265:xxx)。目标镜像仓库类型文件的标识为C1(即上述内容中的harbor-okd)。第一镜像引用文件的标识与镜像引用声明文件的标识相同,这样有助于建立目标镜像的镜像引用声明文件与目标镜像的第一镜像引用文件之间的关联关系,从而根据目标镜像的镜像引用声明文件获取目标镜像的第一镜像引用文件,具体将在后续实施例中说明,此处不再细述。
上述实施例中,工作节点接收到目标镜像仓库类型文件后,根据目标镜像仓库类型文件生成目标配置信息,并根据目标配置信息和镜像引用声明文件,自动从镜像仓库获取目标镜像的第一镜像摘要,并根据第一镜像摘要自动生成目标镜像的第一镜像引用文件,一方面,不需要人工创建第一镜像引用文件,简化了第一镜像引用文件创建过程,提高了第一镜像引用文件创建的便利性。另一方面,由于第一镜像摘要是根据目标镜像的内容生成的,因此,第一镜像摘要指示了目标镜像仓库中唯一的目标镜像,在此基础上,根据第一镜像摘要生成的第一镜像引用文件,也指示了目标镜像仓库中确定唯一的目标镜像,有助于保证使用第一镜像引用文件从镜像仓库中下载目标镜像的准确性。
可选地,镜像仓库访问方法还包括以下:S309。
S309:容器部署系统的目标工作节点向目标控制节点发送目标镜像的第一镜像引用文件。
其中,目标控制节点用于保存目标镜像的第一引用文件。
在一些实施例中,目标工作节点的仓库管理插件将第一镜像引用文件发送至目标控制节点的API组件,API组件存储第一镜像引用文件,如,存储在目标控制节点的存储系统。
需要说明的,在容器部署系统上,配置目标应用之外的其他应用程序(如应用程序1)的镜像引用声明文件、镜像引用文件和镜像仓库类型文件时,若应用程序1的镜像1所在的镜像仓库也是目标镜像仓库,则S301仅需接收镜像1的镜像引用声明文件即可,无需接收目标镜像仓库类型文件,可以直接使用容器部署系统之前存储的目标镜像仓库类型文件。
可选地,镜像仓库访问方法还包括以下S310至S312:
S310:容器部署系统的目标控制节点确定目标镜像的第一镜像引用文件是否满足预设目标条件。
若确定结果为是,则执行S311,若确定结果为否,则执行S312。
在一些实施例中,目标控制节点上的API组件监测到存储系统存储了第一镜像引用文件后,向目标控制节点的插件控制器发送信息,以通知插件控制器存储了第一镜像引用文件。插件控制器在接收到该信息后,通过API组件查询存储系统中的第一镜像引用文件的内容,并确定第一镜像引用文件是否满足预设目标条件。
在一个示例中,第一镜像引用文件满足预设目标条件包括:第一镜像引用文件所记载的目标镜像的第一镜像摘要符合要求。其中,第一镜像摘要符合要求包括第一镜像引用文件记载有第一镜像摘要。
在另一个示例中,第一镜像引用文件满足预设目标条件包括:第一镜像引用文件所记载的目标镜像的安全扫描结果符合要求。其中,安全扫描结果符合要求包括安全扫描结果达标。
在又一个示例中,第一镜像引用文件满足预设目标条件包括第一镜像引用文件所记载的目标镜像的数字签名符合要求。其中,数字签名符合要求包括数字签名正确。
在对第一镜像引用文件中的目标镜像的数字签名进行验证时,可以根据第一镜像引用文件中所记载的目标镜像的密钥,生成目标数字签名,若目标数字签名与第一镜像引用文件记载的数值签名相同,则第一镜像引用文件所记载的目标镜像的数字签名符合要求,也即,数字签名正确。否则,第一镜像引用文件所记载的目标镜像的数字签名不符合要求,也即,数字签名错误。
S311:容器部署系统的目标控制节点确定目标镜像的镜像引用声明文件的使用状态为可使用状态。
在一些实施例中,第一镜像引用文件满足预设目标条件时,则目标控制节点的插件控制器将目标镜像的镜像引用声明文件的使用状态修改为可使用状态,使得后续部署目标应用时,目标工作节点的仓库管理插件可以使用目标镜像的镜像引用声明文件获取目标镜像的第一镜像引用文件,以及目标镜像仓库类型文件/目标镜像仓库类型文件所生成的目标配置信息。
其中,使用状态包括可使用状态和不可使用状态。可使用状态是指镜像引用声明文件可以被使用,如用于获取第一镜像引用文件。不可使用状态是指镜像引用声明文件不可以被使用,如不可以用于获取第一镜像引用文件。
S312:容器部署系统的目标控制节点确定目标镜像的镜像引用声明的使用状态为不可使用状态。
在一些实施例中,第一镜像引用文件不满足预设目标条件时,则目标控制节点的插件控制器将镜像引用声明文件的使用状态修改为不可使用状态,避免后续部署目标应用时,目标工作节点的仓库管理插件使用目标镜像的镜像引用声明文件获取到不符合要求的第一镜像引用文件。
上述实施例中,通过确定第一镜像引用文件是否满足预设目标条件,并根据确定结果设置镜像引用声明文件的使用状态,能够避免根据镜像引用声明文件获取不符合要求的第一镜像引用文件,导致在部署目标应用下载到错误目标镜像。
需要说明的,在插件控制器部署于目标工作节点时,上述S310至S312由容器部署系统的目标工作节点执行。
可选地,在S306之前,镜像仓库访问方法还包括以下步骤一至步骤二。
步骤一:容器部署系统的目标工作节点根据目标配置信息和目标镜像的镜像引用文件,向目标镜像仓库发送第二请求。
其中,第二请求用于请求目标镜像的安全扫描结果,该安全扫描结果用于指示目标镜像的安全程度。
需要说明的,步骤一实现原理与上述S306的实现原理相同,因此,关于如何实现该步骤一,可以参考S306的实现过程和相关说明,此处不再细述。
其中,目标镜像的安全扫描结果为目标镜像仓库生成的,本申请实施例只需获取目标镜像仓库所生成的安全扫描结果即可,因此,关于目标镜像仓库如何生成安全扫描结果可以参考相关技术中的说明,此处不再细述。
步骤二:容器部署系统的目标工作节点接收目标镜像仓库发送的目标镜像的安全扫描结果。
需要说明的,步骤二实现原理与上述S307的实现原理相同,因此,关于如何实现该步骤二,可以参考上述S307的实现过程和相关说明,此处不再细述。
在镜像仓库访问方法还包括以上步骤一至步骤二的基础上,S306具体包括:在安全扫描结果满足预设条件的情况下,向目标镜像仓库发送第一请求。
在一些实施例中,安全扫描结果包括健康分值或风险分值,在此基础上,安全扫描结果满足预设条件可以是健康分值大于或等于预设健康阈值,或者,风险分值小于或等于预设风险阈值。需要说明的,预设健康阈值或预设风险阈值的具体数值,可以根据实际情况设置,本申请实施例对此不做限制。
上述实施例中,一方面,通过向目标镜像仓库请求获取目标镜像的安全扫描结果,从而使得容器部署系统可以确认目标镜像的安全扫描结果,有助于容器部署系统对镜像安全进行管理。另一方面,通过在向目标镜像仓库请求获取目标镜像的第一镜像摘要之前,获取目标镜像的安全扫描结果,并在安全扫描结果满足预设条件时才获取第一镜像摘要,由于第一镜像摘要是根据目标镜像的内容生成的,这样,有助于保证所获取第一镜像摘要的安全性以及准确性,进而有助于保证后续下载目标镜像的准确性和安全性,以及目标应用的稳定运行。
可选地,目标镜像的第一镜像引用文件还记载有目标镜像的安全扫描结果。镜像仓库访问方法还包括以下S313-S314。
S313:容器部署系统的目标控制节点/目标工作节点根据目标镜像的第一镜像引用文件,确定目标镜像的安全扫描结果。
在一些实施例中,目标控制节点/目标工作节点通过API组件访问目标控制节点的存储系统,并根据目标镜像的第一镜像引用文件所记载的内容,确定目标镜像的安全扫描结果。
可以理解的,第一镜像引用文件中记载的目标镜像的安全扫描结果,是从目标镜像仓库获取的,关于获取过程可以参考上述步骤一至步骤二,此处不再细述。
S314:在目标镜像的安全扫描结果满足安全条件时,确定目标镜像的第一镜像引用文件的使用状态为可使用状态。
其中,使用状态包括可使用状态和不可使用状态。可使用状态是指第一镜像引用文件可以被使用,例如,用于确定目标镜像的目标标识信息。不可使用状态是指第一镜像引用文件不可以被使用,例如,不可以用于确定目标镜像的目标标识信息。
需要说明的,关于安全条件的相关说明可以参考上述S310中的预设目标条件,二者的使用原理相同,此处不再细述。
上述实施例中,通过确定第一镜像引用文件的安全扫描结果,从而使得容器部署系统可以感知目标镜像的安全扫描结果,有助于容器部署系统对镜像安全进行管理。另一方面,通过设置在目标镜像的安全扫描结果满足安全条件时,确定目标镜像的第一镜像引用文件的使用状态为可使用状态,从而使得目标镜像的第一镜像引用文件仅在目标镜像的安全达标时才可以被使用,这样,有助于保证后续下载目标镜像的安全性,以及目标应用稳定运行。
如图4所示,结合上述S301-S314,容器部署系统通过工作节点上的仓库管理插件,根据目标镜像仓库类型文件访问目标镜像仓库,并根据目标镜像的镜像引用声明从目标镜像仓库获取第一镜像摘要,实现自动生成目标镜像的第一镜像引用。之后,容器部署系统的目标工作节点可以根据目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件以及目标镜像所在的目标镜像仓库部署目标应用。
以下,继续以目标应用为例,对容器部署系统使用第一部分中的镜像引用声明文件、第一镜像引用文件以及镜像仓库类型文件部署应用程序的过程(即第二部分),进行示例性说明。
图5是根据一示例性实施例示出的一种镜像仓库访问方法的流程图。示例性的,该方法包括S501-S507。
S501:容器部署系统的目标控制节点接收目标应用的部署模板。
其中,部署模板用于记载部署目标应用时所需的部署信息。
在一些实施例中,部署模板记载有部署模板的标识和/或容器的标识中的至少一项。如图5所示,部署模板的标识为K1(如cvo-deployment),容器的标识为L1(如cvo)。
在一些实施例中,如图6所示,目标控制节点通过API组件接收目标应用的部署模板。
可选地,部署模板包括目标镜像的镜像引用声明文件的标识。
在一些实施例中,目标控制节点判断镜像引用声明文件的标识所指示的镜像引用声明文件是否为可用状态。若判断结果为是,则执行S502,向工作节点发送部署模板。若判断结果为否,则结束。
在一些实施例中,镜像引用声明文件记载有目标镜像的引用信息,目标镜的引用信息包括目标镜像的第一镜像引用文件的标识。目标控制节点判断第一镜像引用文件的标识所指示的第一引用文件是否为可用状态。若判断结果为是,则执行S502,向工作节点发送部署模板。若判断结果为否,则结束。
S502:容器部署系统的目标控制节点向目标工作节点发送目标应用的部署模板。
在一些实施例中,如图6所示,目标控制节点通过API组件向目标工作节点的代理组件发送目标应用的部署模板。
需要说明的,在容器部署系统包括多个工作节点的情况下,目标工作节点可以根据部署模板指示的应用运行环境信息进行确定,或者,也可以由API组件根据多个工作节点的负载情况确定。
S503:容器部署系统的目标工作节点接收目标应用的部署模板。
在一些实施例中,如图6所示,目标工作节点通过代理组件接收目标控制节点发送的目标应用的部署模板,并调用目标工作节点上的仓库管理插件,将目标应用的部署模板发送给仓库管理插件,以便由目标工作节点的仓库管理插件生成目标配置信息。
S504:容器部署系统的目标工作节点根据目标应用的部署模板,确定部署目标应用所需的目标镜像的目标标识信息,以及下载目标镜像所需的配置信息为目标配置信息。
其中,部署模板包括目标镜像的镜像引用声明文件的标识。如图5所示,镜像引用声明文件的标识为A1。
可选地,S504中的根据目标应用的部署模板确定部署目标应用所需的目标镜像的目标标识信息,包括以下S504a-S504b。
由上述内容可知,目标镜像的镜像引用声明文件记载有镜像引用声明文件的标识,因此,通过设置部署模板包括目标镜像的镜像引用声明文件的标识,使得部署模板通过镜像引用声明文件的标识与镜像引用声明文件建立关联关系,这样,目标工作节点在接收到部署模板后,即可根据部署模板所记载的镜像引用声明文件的标识,获取目标镜像的镜像引用声明文件。
S504a:容器部署系统的目标工作节点根据镜像引用声明文件的标识,获取目标镜像的镜像引用声明文件。
其中,镜像引用声明文件记载有目标镜像的引用信息。
在一些实施例中,目标工作节点通过仓库管理插件从目标控制节点获取镜像引用声明文件的标识所指示的镜像引用声明文件。
上述实施例中,通过在目标镜像的镜像引用声明中记载目标镜像的第一镜像引用文件的标识,从而建立目标镜像的镜像引用声明文件与目标镜像的第一镜像引用文件之间的关联关系这样,目标工作节点在获取到目标镜像的镜像引用声明文件之后,即可根据目标镜像的镜像引用声明文件获取到目标镜像的第一镜像引用文件。
S504b:容器部署系统的目标工作节点基于目标镜像的引用信息,确定目标镜像的目标标识信息。
可选地,S504b包括多种实现方式,以下,通过方式a至方式b进行示例性说明。
方式a:目标镜像的引用信息包括目标镜像的镜像名称和镜像版本号。S504b具体包括:确定目标镜像的镜像名称和镜像版本号为目标镜像的目标标识信息。
需要说明的,关于镜像名称和镜像版本号的相关说明已在上文中描述过,具体可以参见上文,此处不再细述。
方式b:目标镜像的引用信息包括目标镜像的第一镜像引用文件的标识;S504b包括:
S504b1:根据第一镜像引用文件的标识,确定目标镜像的第一镜像引用文件;第一镜像引用文件用于记载描述目标镜像的内容的信息。
在一些实施例中,目标工作节点根据第一镜像引用文件的标识,从目标控制节点的存储系统中存储的多个镜像引用文件中,确定目标镜像的第一镜像引用文件,并获取该第一镜像引用文件。
S504b2:根据目标镜像的第一镜像引用文件,确定目标镜像的目标标识信息。
其中,目标镜像的第一镜像引用文件包括目标镜像的第一镜像摘要。
在一些实施例中,确定目标镜像的第一镜像摘要为目标镜像的目标标识信息。
在另一些实施例中,确定目标镜像的第一镜像摘要和目标镜像的镜像名称为目标镜像的目标标识信息。
可选地,S504中的根据目标应用的部署模板确定下载目标镜像所需的配置信息为目标配置信息,包括多种实现方式,以下通过两种可能的实现方式进行示例性说明。
第一种可能的实现方式中,根据部署模板确定下载目标镜像所需配置信息为目标配置信息。示例性的,部署模板记载有目标镜像仓库类型文件的标识。目标镜像仓库类型文件的标识所指示的目标镜像仓库类型文件,即为目标镜像所在的目标镜像仓库的类型文件。其中,目标镜像仓库类型文件所生成的配置信息即为下载目标镜像所需使用的目标配置信息。若目标镜像仓库类型文件未生成过配置信息,可以基于目标镜像仓库类型文件生成目标配置信息。
第二种可能的实现方式中,根据目标镜像的镜像引用声明文件,确定下载目标镜像所需的配置信息为目标配置信息。以下,通过S504c-S504d,对第二种可能的实现方式进行示例性说明。
S504c:容器部署系统的目标工作节点根据镜像引用声明文件的标识,确定目标镜像的镜像引用声明文件。
其中,镜像引用声明文件包括目标镜像的引用信息;目标镜像的引用信息包括目标镜像仓库类型文件的标识。
在一些实施例中,目标工作节点根据镜像引用声明文件的标识,从目标控制节点的存储系统获取目标镜像的镜像引用声明文件。
S504d:容器部署系统的目标工作节点根据目标镜像仓库类型文件的标识,确定下载目标镜像所需的配置信息为目标配置信息。
在一些实施例中,目标工作节点根据目标镜像仓库类型文件的标识,确定下载目标镜像所需使用的仓库类型文件为目标镜像仓库类型文件。之后,目标工作节点确定是否存储有目标镜像仓库类型文件所生成的目标配置信息,若有,则确定下载目标镜像所需的配置信息为目标配置信息。若无,则根据目标镜像仓库类型文件,生成目标配置信息,并确定下载目标镜像所需的配置信息为目标配置信息。
需要说明的,由于相关技术的容器部署系统并不支持使用镜像引用声明文件,因此,需要扩展相关技术中的容器部署系统的容器规范,以使得目标工作节点能够支持使用镜像引用声明文件。
对于如何扩展相关技术中的容器部署系统的容器规范,包括多种实现方式,以下通过方式1至方式3进行示例性说明。
方式1:部署模板包括镜像引用声明字段,镜像引用声明字段用于承载镜像引用声明文件的标识。
在一些实施中,通过预先为部署模板增加镜像引用声明字段,使得部署模板包括镜像引用声明字段,以用于承载镜像引用声明文件的标识,从而可以直接在部署模板中的镜像引用声明字段部分写入镜像引用声明文件的标识。
示例性的,在部署模板增加镜像引用声明字段,可以通过如下架构内容:
在该方式中,通过设置部署模板包括承载镜像引用声明文件的标识的镜像引用声明字段,实现在部署模板中直接填写镜像引用声明文件的标识,从而将镜像引用声明文件与部署模板相关联,这样,容器部署系统在接收部署模板后,可以根据部署模板中的标识获取镜像引用声明文件,进而实现了容器部署系统支持镜像引用声明,这种实现方式,仅需在部署模板增加一个字段,简单、方便,操作难度低。
方式2:容器部署系统配置有目标镜像的目标下载方法,目标下载方法为根据目标镜像的镜像引用声明下载目标镜像。
其中,部署模板包括镜像地址字段,镜像地址字段用于承载镜像引用声明文件的标识。
在一些实施例中,通过预先为容器部署系统的目标工作节点配置镜像的目标下载方法,使得目标镜像支持使用目标下载方法,也即,根据目标镜像的镜像引用声明下载目标镜像。在此基础上,通过将镜像引用声明文件的标识写入部署模中的镜像地址字段部分,使得相关技术中目标工作点从部署模板的镜像地址字段部分获取镜像地址并根据镜像地址下载目标镜像的下载方法,更新为本申请实施例中的目标工作节点从部署模板的镜像地址字段部分获取镜像引用声明文件的标识,进而获取镜像引用声明文件,并根据镜像引用声明文件下载目标镜像。
需要说明的,根据镜像引用声明文件下载目标镜像,具体来说,就是根据镜像引用声明文件确定目标镜像的目标标识信息以及目标镜像仓库的目标配置信息,并根据目标镜像的目标标识信息和目标镜像仓库的目标配置信息,从目标镜像仓库下载目标镜像。
示例性的,为目标工作节点配置目标镜像的目标下载方法,可以通过如下架构内容:
在该方式中,通过设置部署模板中的镜像地址字段承载镜像引用声明文件的标识,实现在部署模板中直接填写镜像引用声明文件的标识,从而将镜像引用声明文件与部署模板相关联,可以根据部署模板中的标识获取用于下载目标镜像的镜像引用声明文件,并通过为容器部署系统配置目标下载方法,使得容器部署系统在根据部署模板获取到镜像引用声明文件后,可以根据镜像引用声明文件下载目标镜像,进而实现了容器部署系统支持镜像引用声明,这种实现方式,无需修改部署模板,仅需为容器部署系统配置目标下载方法,简单、方便,操作难度低。
方式3:容器部署系统配置有目标镜像的目标下载策略,目标下载策略为从镜像引用声明指示的目标镜像仓库下载第一镜像引用文件记载的目标镜像。
其中,部署模板包括镜像地址字段,镜像地址字段用于承载镜像引用声明文件的标识。
在一些实施例中,通过预先为容器部署系统的目标工作节点配置镜像的目标下载策略,使得目标镜像支持目标下载策略,也即,从镜像引用声明文件指示的目标镜像仓库下载第一镜像引用文件记载的目标镜像。在此基础上,通过将镜像引用声明文件的标识写入部署模中的镜像地址字段部分,使得相关技术中目标工作节点从指定镜像仓库下载指定的最新版本的镜像,更新为本申请实施例中的从镜像引用声明指示的目标镜像仓库下载第一镜像引用文件记载的目标镜像。
示例性的,为目标工作节点配置目标镜像的目标下载方法,可以通过如下架构内容:
在该方式中,通过设置部署模板中的镜像地址字段承载镜像引用声明文件的标识,实现在部署模板中直接填写镜像引用声明文件的标识,从而将镜像引用声明文件与部署模板相关联,并通过为容器部署系统配置目标下载策略,使得容器部署系统在根据部署模板获取到镜像引用声明文件后,可以执行从镜像引用声明文件指示的从目标镜像仓库中下载第一镜像引用文件记载的目标镜像,进而实现了容器部署系统支持镜像引用声明,这种实现方式,无需修改部署模板,仅需为容器部署系统配置目标下载策略,简单、方便,操作难度低。
S505:容器部署系统的目标工作节点根据目标镜像的目标标识信息和目标配置信息,从目标镜像仓库下载目标镜像。
在一些实施例中,目标工作节点的容器引擎根据目标配置信息,从目标镜像仓库下载目标镜像。由于目标配置信息能够指向唯一的目标镜像仓库,而目标标识信息能够指向目标镜像仓库中的唯一的目标镜像,因此,根据目标标识信息和目标配置信息,可以指向唯一的目标镜像仓库中的唯一的目标镜像。
在一些实施例中,下载目标镜像后,目标工作节点对目标镜像进行镜像完整性检查。若镜像完整性检查符合要求,则执行S506。若镜像完整性不符合要求,则结束。
对目标镜像进行镜像完整性检查,可以基于目标镜像的第一镜像引用文件中记载的目标镜像的密钥进行,或者,也可以基于相关技术中的检查镜像完整性的方法进行,本申请实施例对此不做限制。
需要说明的,容器引擎根据目标配置信息从目标镜像仓库下载目标镜像的原理,与相关技术中从镜像仓库下载镜像的原理相同,此处不再细述。
需要说明的,S505中目标配置信息,可以是S304生成后存储在目标工作节点的,或者也可以是目标工作节点执行S505之前,基于S303的实现过程,自动生成的。
上述实施例中,容器部署系统的工作节点使用自动生成的目标配置信息,为目标工作节点提供从目标镜像仓库下载目标镜像所需的配置信息,相对于相关技术中的预先将目标配置信息存储在目标工作节点的方式,容器部署系统的各个工作节点无需预先存储各个镜像仓库的配置信息,解决了相关技术中由于各个工作节点需要预先存储各个镜像仓库的配置信息所存在的各种问题。
上述实施例中,通过设置部署模板包括镜像引用声明文件的标识,以及镜像引用声明文件中记载第一镜像引用文件的标识和目标镜像仓库类型文件的标识,从而实现通过镜像引用声明文件建立部署模板与第一镜像引用文件和目标镜像仓库类型文件之间关联关系,这样,在部署目标应用的过程中,如果需要将目标镜像由目标镜像仓库迁移到其他镜像仓库,则只需更新镜像引用声明文件中记载镜像仓库类型文件的标识,使得更新后镜像仓库类型文件的标识指向该其他镜像仓库的镜像仓库类型文件,即可从该其他镜像仓库下载目标镜像,无需修改部署模板的内容,有助于简化部署应用的流程。
S506:容器部署系统的目标工作节点根据目标镜像部署目标应用。
在一些实施例中,目标工作节点的容器引擎根据目标镜像部署目标应用。
需要说明的,容器引擎根据目标镜像部署目标应用的原理,与相关技术中根据镜像部署应用程序的原理相同,此处不再细述。
上述实施例中,容器部署系统的工作节点在部署目标应用时,工作节点可以使用自动生成目标配置信息从目标镜像仓库下载目标镜像,因此,不必预先将镜像仓库的配置信息存储在工作节点,这样,也就是不必再专门管理工作节点上的配置信息,显著降低了工作节点所需的镜像仓库的配置信息的管理难度。
此外,由于部署目标应用所使用的目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件以及目标镜像仓库类型文件是记载信息的描述文件,与容器部署系统的版本、硬件情况无关,也即,不同的容器部署系统均可以基于目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件以及目标镜像仓库类型文件,部署目标应用。因此,目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件以及目标镜像仓库类型文件,可以在不同的容器部署系统之间同步、迁移,以实现不同的容器部署系统共享从目标镜像仓库下载目标镜像所需的文件(即镜像引用声明文件、第一镜像引用文件以及目标镜像仓库类型文件)。这样,在其他容器部署系统需要部署目标应用时,只需将目标应用的部署模板、目标镜像的镜像引用声明文件、目标镜像的第一镜像引用文件以及目标镜像仓库类型文件同步至该其他容器部署系统,该其他容器部署系统无需修改目标应用的部署模板即可完成目标应用的部署,简单、方便、快捷。
S507:在目标应用被删除预设时长时,容器部署系统的目标工作节点向目标镜像仓库发送通知信息,通知信息用于通知目标镜像仓库,容器部署系统已删除目标镜像对应的应用。
可选地,预设时长可以15天、30天、45天等。需要说明的,本申请实施例对预设时长的具体数值不做限制,可以人工设置以及变更。
上述实施例中,通过在删除目标应用预设时长后,向目标镜像仓库发送通知信息,使得目标镜像仓库能够感知目标镜像是否处于使用状态,有助于目标镜像仓库了解存储的镜像的使用情况,从而在需要删除部分镜像时,能够准确删除那些处于非使用状态的镜像。
以下,继续以目标应用为例,对容器部署系统部署应用程序后,对应用程序进行自动更新的过程(即第三部分),进行示例性说明。
图7是根据一示例性实施例示出的一种镜像仓库访问方法的流程图。示例性的,该方法包括S701-S704。
S701:容器部署系统的目标工作节点根据目标配置信息,接收目标镜像仓库发送的目标镜像的第二镜像摘要。
其中,第二镜像摘要为描述目标镜像的更新版本的内容的信息,第二镜像摘要是根据目标镜像的更新版本的内容生成的。
在一些实施例中,在目标应用运行期间,目标工作节点按照预设时间间隔访问目标镜像仓库,确定目标应用的目标镜像是否有更新版本,在目标应用的目标镜像有更新版本时,获取目标镜像的更新版本的第二镜像摘要,从而实现在目标应用运行期间感知目标镜像的变化,有助于提高容器部署系统的镜像管理能力。
需要说明的,S701的实现原理与上述S306-S307的实现原理相同,因此,关于S701的实现过程和相关说明,可以参考上述S306-S307,此处不再细述。
S702:容器部署系统的目标工作节点根据目标镜像的第二镜像摘要,生成目标镜像的第二镜像引用文件。
其中,第二镜像引用文件用于工作节点从目标镜像仓库下载目标镜像的更新版本时所使用的配置信息。
需要说明的,目标镜像的第二镜像引用文件可以是对第一镜像引用文件的内容进行修改后所得到的文件,或者,也可以是新生成的文件。
需要说明的,S702的实现原理与S308的实现原理相同,因此,关于S702的实现过程和相关说明,可以参考上述S308,此处不再细述。
上述实施例中,一方面,通过接收目标镜像仓库发送的目标镜像的第二镜像摘要,使得容器部署系统能够感知到目标镜像仓库中目标镜像存在更新版本。另一方面,自动根据第二镜像摘要生成第二镜像引用文件,使得容器部署系统能够自动更新目标镜像的镜像引用文件,这样,有助于容器部署系统自动管理目标镜像的镜像引用文件,不仅提高了容器部署系统的镜像管理能力,还能够降低人工管理的成本。
S703:容器部署系统的目标工作节点根据第二镜像引用文件和目标配置信息,从目标镜像仓库下载目标镜像的更新版本。
在一些实施例中在,根据第二镜像引用文件确定目标镜像的更新标识信息,并更新标识信息和目标配置信息,从目标镜像仓库下载更新标识信息所指示的镜像。
其中,更新标识信息指向目标镜像的更新版本。
需要说明的,根据第二镜像引用文件确定目标镜像的更新标识信息的原理,与确定目标镜像的目标标识信息的原理相同,例如,确定第二镜像引用文件中的第二镜像摘要为目标镜像的更新标识信息,确定目标镜像的镜像名称和第二镜像摘要为更新标识信息等,因此,如何根据第二镜像引用文件确定目标镜像的更新标识信息,可以参考上述描述,此处不再细述。
可选地,目标镜像的第二镜像引用文件还记载有目标镜像的生成时间和/或更新时间。S703包括以下S703a至S703c。
S703a:容器部署系统的目标控制节点确定目标镜像的第一镜像引用文件发生更新。
在一些实施例中,目标控制节点的插件控制器通过API组件访问目标控制节点的存储系统,并根据目标镜像的第二镜像引用文件所记载的内容、生成时间或更新时间,确定目标镜像的第一镜像引用文件发生是否发生更新,例如,若第二镜像引用文件所在的内容与第一镜像引用文件所记载的内容不同、第二镜像引用文件的生成时间晚于第一镜像引用文件的生成时间或第二镜像引用文件的更新时间晚于第一镜像引用文件的生成时间,则确定第一镜像引用文件发生更新。
需要说明的,在插件控制器部署于目标工作节点时,上述S703a由容器部署系统的目标工作节点执行。
S703b:容器部署系统的目标控制节点向容器部署系统的目标工作点发送更新指令,更新指令用于指示容器部署系统的目标工作点更新目标应用。
其中,更新指令包括第二镜像引用文件的标识。
在一些实施例中,目标镜像的第一镜像引用文件发生更新时,目标控制节点的插件控制器向API组件发送更新指令,由API组件将更新指令转发至目标控制节点的代理组件,以指示目标工作节点基于更新后的第二镜像引用文件下载目标镜像的更新版本,以更新目标应用。
S703c:容器部署系统的目标工作节点接收更新指令,并根据更新指令获取目标镜像的第二镜像引用文件和目标配置信息。
在一些实施例中,目标工作节点的代理组件接收到更新指令后,将更新指令发送至仓库管理插件,由仓库管理插件获取目标镜像的第二镜像引用文件和目标配置信息。
需要说明的,获取目标配置信息可以是从目标工作节点的本地存储盘中获取,或者,也可以是获取目标镜像仓库类型文件后生成目标配置信息,本申请实施例对此不做限制。
需要说明的,S703的实现原理与S505的实现原理相同,因此,关于S703的实现过程和相关说明,可以参考S505,此处不再细述。
S704:容器部署系统的目标工作节点根据目标镜像的更新版本部署目标应用。
需要说明的,S704的实现原理与S506的实现原理相同,因此,关于S704的实现过程和相关说明,可以参考S506,此处不再细述。
上述实施例中,在生成第二镜像引用文件后,容器部署系统自动根据第二镜像引用文件和目标配置信息从目标镜像仓库下载目标镜像的更新版本,使用目标镜像的更新版本部署目标应用,从而实现自动更新目标应用,有助于提高容器部署系统对目标应用的管理能力。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,镜像仓库访问装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法,示例性的对镜像仓库访问装置进行功能模块的划分,例如,镜像仓库访问装置可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图8示出了上述实施例中所涉及的镜像仓库访问装置(记为镜像仓库访问装置800)的一种可能的结构示意图,该镜像仓库访问装置用于容器部署系统,该镜像仓库访问装置800包括接收单元801、处理单元802和访问单元803。接收单元801,用于接收目标镜像仓库类型文件;目标镜像仓库类型文件用于记载访问目标镜像仓库所需的描述信息。例如,图3所示的S303。处理单元802,用于生成根据目标镜像仓库类型文件,生成目标配置信息;其中,目标配置信息为从目标镜像仓库获取目标镜像时所需的配置信息。例如,图3所示的S304。访问单元803,用于基于目标配置信息访问目标镜像仓库。例如,图5所示的S305。
可选地,接收单元801,还用于获取目标应用的部署模板,部署模板用于记载部署目标应用时所需的部署信息;处理单元802,还用于根据部署模板,确定部署目标应用所需的目标镜像的目标标识信息;访问单元803,还用于根据目标镜像的目标标识信息和目标配置信息,下载目标镜像。
可选地,部署模板包括目标镜像的镜像引用声明文件的标识;处理单元802具体用于:根据镜像引用声明文件的标识,获取目标镜像的镜像引用声明文件;镜像引用声明文件用于记载目标镜像的引用信息;根据目标镜像的引用信息,确定目标镜像的目标标识信息。
可选地,引用信息包括目标镜像的镜像名称和镜像版本号;处理单元802具体用于:确定目标镜像的镜像名称和镜像版本号为目标镜像的目标标识信息。
可选地,引用信息包括目标镜像的第一镜像引用文件的标识;处理单元802具体用于:根据第一镜像引用文件的标识,确定目标镜像的第一镜像引用文件;第一镜像引用文件用于记载描述目标镜像的内容的信息;根据目标镜像的第一镜像引用文件,确定目标镜像的目标标识信息。
可选地,目标镜像的第一镜像引用文件包括目标镜像的第一镜像摘要;处理单元802具体用于:确定目标镜像的第一镜像摘要为目标镜像的目标标识信息。
可选地,处理单元802具体用于:根据镜像引用声明文件的标识,确定目标镜像的镜像引用声明;镜像引用声明包括目标镜像的引用信息;引用信息包括目标镜像仓库类型文件的标识;根据目标镜像仓库类型文件的标识,确定下载目标镜像所需的配置信息为目标配置信息。
可选地,引用信息包括目标镜像的镜像名称以及目标镜像仓库类型文件的标识;在下载目标镜像之前,访问单元803还用于:根据目标配置信息和目标镜像的镜像名称,向目标镜像仓库发送第一请求,第一请求用于请求目标镜像的第一镜像摘要;接收目标镜像仓库发送的第一镜像摘要,根据第一镜像摘要生成第一镜像引用文件。
可选地,根据目标配置信息和目标镜像的镜像名称,向目标镜像仓库发送第一请求之前,访问单元803还用于:根据目标配置信息,向目标镜像仓库发送第二请求;第二请求用于请求目标镜像的安全扫描结果,安全扫描结果用于指示目标镜像的安全程度;接收目标镜像仓库发送的目标镜像的安全扫描结果;在安全扫描结果满足预设条件的情况下,向目标镜像仓库发送第一请求。
可选地,访问单元803还用于:根据目标配置信息,向目标镜像仓库发送第三请求,第三请求用于请求目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥中的至少一项;根据第一镜像摘要生成第一镜像引用文件,包括:根据第一镜像摘要、目标镜像的安全扫描结果、目标镜像的数字签名和目标镜像的密钥,生成第一镜像引用文件。
可选地,部署模板包括镜像引用声明字段或镜像地址字段;镜像引用声明字段或镜像地址字段用于承载镜像引用声明的标识。
可选地,访问单元803还用于:在删除目标应用预设时长的情况下,向目标镜像仓库发送通知信息;通知信息用于通知目标镜像仓库,目标镜像所属的目标应用已删除。
可选地,访问单元803还用于:根据目标配置信息,接收目标镜像仓库发送的目标镜像的第二镜像摘要,第二镜像摘要为描述目标镜像的更新版本的内容的信息;根据目标镜像的第二镜像摘要,生成目标镜像的第二镜像引用文件。
可选地,访问单元803还用于:根据第二镜像引用文件和目标配置信息,从目标镜像仓库下载目标镜像的更新版本;根据目标镜像的更新版本部署目标应用。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种镜像仓库访问装置800的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
本申请实施例还提供了一种容器部署系统,容器部署系统包括控制节点和工作节点;控制节点获取目标镜像仓库类型文件,向工作节点发送目标镜像仓库类型文件;其中,目标镜像仓库类型文件用于记载访问目标镜像仓库所需的仓库配置信息;工作节点接收控制节点发送的目标镜像仓库文件,根据目标镜像仓库类型文件,生成目标配置信息,目标配置信息是工作节从目标镜像仓库获取目标镜像时所需的配置信息。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,处理器与存储器连接,存储器存储有计算机执行指令,处理器执行该计算机执行指令时实现上述实施例中的镜像仓库访问方法。本申请实施例对计算机设备的具体形式不作任何限制。例如,计算机设备具体可以是终端装置,也可以是网络设备。其中,终端装置可以被称为:终端、用户设备(user equipment,UE)、终端设备、接入终端、用户单元、用户站、移动站、远方站、远程终端、移动设备、用户终端、无线通信设备、用户代理或用户装置等。终端装置具体可以是手机、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等。网络设备具体可以是服务器等。其中,服务器可以是一个物理或逻辑服务器,也可以是有两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现服务器的各项功能。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任一种计算机设备所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述计算机设备的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种镜像仓库访问方法,其特征在于,所述方法包括:
接收目标镜像仓库类型文件;所述目标镜像仓库类型文件用于记载访问目标镜像仓库所需的描述信息;
根据所述目标镜像仓库类型文件,生成目标配置信息;其中,所述目标配置信息为从所述目标镜像仓库获取目标镜像时所需的配置信息;
基于所述目标配置信息访问所述目标镜像仓库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标应用的部署模板,所述部署模板用于记载部署所述目标应用时所需的部署信息;
根据所述部署模板,确定部署所述目标应用所需的目标镜像的目标标识信息;
根据所述目标镜像的目标标识信息和所述目标配置信息,下载所述目标镜像。
3.根据权利要求2所述的方法,其特征在于,所述部署模板包括所述目标镜像的镜像引用声明文件的标识;所述根据所述部署模板,确定部署所述目标应用所需的目标镜像的目标标识信息,包括:
根据所述镜像引用声明文件的标识,获取所述目标镜像的镜像引用声明文件;所述镜像引用声明文件用于记载所述目标镜像的引用信息;
根据所述目标镜像的引用信息,确定所述目标镜像的目标标识信息。
4.根据权利要求3所述的方法,其特征在于,所述目标镜像的引用信息包括所述目标镜像的镜像名称和镜像版本号;所述根据所述目标镜像的引用信息,确定所述目标镜像的目标标识信息,包括:
确定所述目标镜像的镜像名称和镜像版本号为所述目标镜像的目标标识信息。
5.根据权利要求3所述的方法,其特征在于,所述目标镜像的引用信息包括所述目标镜像的第一镜像引用文件的标识;所述根据所述目标镜像的引用信息,确定所述目标镜像的目标标识信息,包括:
根据所述第一镜像引用文件的标识,确定所述目标镜像的第一镜像引用文件;所述第一镜像引用文件用于记载描述所述目标镜像的内容的信息;
根据所述目标镜像的第一镜像引用文件,确定所述目标镜像的目标标识信息。
6.根据权利要求5所述的方法,其特征在于,所述目标镜像的第一镜像引用文件包括所述目标镜像的第一镜像摘要;根据所述目标镜像的第一镜像引用文件,确定所述目标镜像的目标标识信息,包括:
确定所述目标镜像的第一镜像摘要为所述目标镜像的目标标识信息。
7.根据权利要求2-6中任一项所述的方法,其特征在于,所述根据所述目标镜像仓库类型文件,生成目标配置信息,包括:
根据所述镜像引用声明文件的标识,确定所述目标镜像的镜像引用声明文件;所述镜像引用声明文件包括所述目标镜像的引用信息;所述目标镜像的引用信息包括所述目标镜像仓库类型文件的标识;
根据所述目标镜像仓库类型文件的标识,确定下载所述目标镜像所需的配置信息为所述目标配置信息。
8.根据权利要求3-7任一项所述的方法,其特征在于,在所述下载所述目标镜像之前,所述方法还包括:
根据所述目标配置信息和所述目标镜像的镜像引用声明文件,向所述目标镜像仓库发送第一请求,所述第一请求用于请求所述目标镜像的第一镜像摘要;
接收所述目标镜像仓库发送的所述第一镜像摘要,根据所述第一镜像摘要生成所述第一镜像引用文件。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标配置信息和所述目标镜像的镜像引用声明文件,向所述目标镜像仓库发送第一请求之前,所述方法还包括:
根据所述目标配置信息,向所述目标镜像仓库发送第二请求;所述第二请求用于请求所述目标镜像的安全扫描结果,所述安全扫描结果用于指示所述目标镜像的安全程度;
接收所述目标镜像仓库发送的所述目标镜像的安全扫描结果;
所述向所述目标镜像仓库发送第一请求,包括:
在所述安全扫描结果满足预设条件的情况下,向所述目标镜像仓库发送所述第一请求。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据所述目标配置信息,向所述目标镜像仓库发送第三请求,所述第三请求用于请求所述目标镜像的安全扫描结果、所述目标镜像的数字签名和所述目标镜像的密钥中的至少一项;
所述根据所述第一镜像摘要生成所述第一镜像引用文件,包括:
根据所述第一镜像摘要、所述目标镜像的安全扫描结果、所述目标镜像的数字签名和所述目标镜像的密钥,生成所述第一镜像引用文件。
11.根据权利要求3-10中任一项所述的方法,其特征在于,
所述部署模板包括镜像引用声明字段或镜像地址字段;所述镜像引用声明字段或镜像地址字段用于承载所述镜像引用声明的标识。
12.根据权利要求2-11中任一项所述的方法,其特征在于,所述方法还包括:
在删除所述目标应用预设时长的情况下,向所述目标镜像仓库发送通知信息;所述通知信息用于通知所述目标镜像仓库,所述目标镜像所属的所述目标应用已删除。
13.根据权利要求5-12中任一项所述的方法,其特征在于,所述方法还包括:
根据所述目标配置信息,接收所述目标镜像仓库发送的所述目标镜像的第二镜像摘要,所述第二镜像摘要为描述所述目标镜像的更新版本的内容的信息;
根据所述目标镜像的第二镜像摘要,生成所述目标镜像的第二镜像引用文件。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
根据所述第二镜像引用文件和所述目标配置信息,从所述目标镜像仓库下载所述目标镜像的更新版本;
根据所述目标镜像的更新版本部署所述目标应用。
15.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器电连接;所述存储器用于存储计算机执行指令;所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算机设备实现如权利要求1-14中任一项所述的方法。
16.一种容器部署系统,其特征在于,所述容器部署系统包括控制节点和工作节点;
所述控制节点获取目标镜像仓库类型文件,向所述工作节点发送所述目标镜像仓库类型文件;其中,所述目标镜像仓库类型文件用于记载访问目标镜像仓库所需的仓库配置信息;
所述工作节点接收控制节点发送的所述目标镜像仓库文件,根据所述目标镜像仓库类型文件,生成目标配置信息,所述目标配置信息是所述工作节点从所述目标镜像仓库获取目标镜像时所需的配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213566.3A CN115617744A (zh) | 2022-09-30 | 2022-09-30 | 镜像仓库访问方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211213566.3A CN115617744A (zh) | 2022-09-30 | 2022-09-30 | 镜像仓库访问方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617744A true CN115617744A (zh) | 2023-01-17 |
Family
ID=84861500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211213566.3A Pending CN115617744A (zh) | 2022-09-30 | 2022-09-30 | 镜像仓库访问方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617744A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166204A (zh) * | 2023-04-19 | 2023-05-26 | 安元科技股份有限公司 | 一种多版本加密存储的迁移方法 |
-
2022
- 2022-09-30 CN CN202211213566.3A patent/CN115617744A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166204A (zh) * | 2023-04-19 | 2023-05-26 | 安元科技股份有限公司 | 一种多版本加密存储的迁移方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10749985B2 (en) | Custom communication channels for application deployment | |
US9525592B2 (en) | Client/server network environment setup method and system | |
RU2523113C1 (ru) | Система и способ целевой установки сконфигурированного программного обеспечения | |
CN102947797B (zh) | 使用横向扩展目录特征的在线服务访问控制 | |
JP5516821B2 (ja) | 仮想化及び認証を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法 | |
CN109479062B (zh) | 混合云计算系统中的使用跟踪 | |
CN106487869A (zh) | 用于对标签化数据进行控制和标准化的多云网络代理 | |
BR112017000110B1 (pt) | Método implementado por computador, sistema de computador e dispositivo de memória para nuvem autoexpansível | |
WO2015179406A1 (en) | Restricted accounts on a mobile platform | |
CN105340240A (zh) | 用于共享文件存储的方法和系统 | |
US20140040875A1 (en) | Federated system automatic update communication to enable selective update of critical firmware elements | |
US20210160250A1 (en) | Setting application permissions in a cloud computing environment | |
US9892181B1 (en) | Data replicating systems and data replicating methods | |
CN108287894B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
KR101429956B1 (ko) | 가상 nas를 이용한 클라우드 스토리지 서버, 시스템 및 방법 | |
Kolehmainen | Secure firmware updates for iot: A survey | |
EP3796616A1 (en) | Container management method, apparatus, and device | |
JPWO2008056496A1 (ja) | 情報の管理方法及び情報処理装置 | |
CN115617744A (zh) | 镜像仓库访问方法、系统及设备 | |
CN114143090B (zh) | 基于网络安全架构的防火墙部署方法、装置、设备及介质 | |
WO2020063002A1 (zh) | 一种数据管理方法、装置和服务器 | |
CN111935195B (zh) | 分布式系统管理方法、装置、存储介质和分布式管理系统 | |
CN114745397B (zh) | 一种基于私有云的在线存储方法、系统 | |
CN111506657B (zh) | 一种区块链节点设备部署的方法 | |
JP7131363B2 (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 |