CN117632374A - 容器镜像的读取方法、介质、装置和计算设备 - Google Patents
容器镜像的读取方法、介质、装置和计算设备 Download PDFInfo
- Publication number
- CN117632374A CN117632374A CN202311670953.4A CN202311670953A CN117632374A CN 117632374 A CN117632374 A CN 117632374A CN 202311670953 A CN202311670953 A CN 202311670953A CN 117632374 A CN117632374 A CN 117632374A
- Authority
- CN
- China
- Prior art keywords
- warehouse
- host
- container
- mirror image
- sidecar
- 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 209
- 230000008569 process Effects 0.000 claims abstract description 120
- 238000012544 monitoring process Methods 0.000 claims abstract description 89
- 238000013507 mapping Methods 0.000 claims abstract description 68
- 230000036541 health Effects 0.000 claims description 85
- 238000012423 maintenance Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 24
- 230000001360 synchronised effect Effects 0.000 description 23
- 230000002159 abnormal effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本公开的实施方式提供了一种容器镜像的读取方法,涉及云原生技术领域。该方法包括:在至少两个Sidecar组件中,确定主节点和从节点;响应于主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使服务进程在接收到用户访问服务进程IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户。通过监测主节点的运行状态,可以保证用户正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。此外,本公开的实施方式提供了一种介质、装置和计算设备。
Description
技术领域
本公开的实施方式涉及云原生技术领域,更具体地,本公开的实施方式涉及容器镜像的读取方法、介质、装置和计算设备。
背景技术
本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着云原生技术的发展,容器成为了当下必不可少的计算机软件基础设施,借助于容器镜像,可以快速的部署容器。容器镜像的存储、管理和分发需要容器镜像仓库(简称仓库)实现。仓库一般部署在虚拟机或物理机等主机上,仓库挂载主机的本地磁盘,仓库中所有的容器镜像存储在本地磁盘中,用户通过仓库的服务端口读取本地磁盘中存储的容器镜像。但由于仓库和本地磁盘均为单点,若仓库或主机宕机,则用户无法读取容器镜像。
相关技术中,为了解决上述问题,通常会增加一台主机,然后将第一主机上的仓库A确定为主仓库,将第二主机上的仓库B确定为从仓库。仓库A的数据会同步到仓库B中,仓库A对外提供服务。若仓库A宕机或第一主机宕机,则通过keepalived进行仓库的主从切换,使仓库B对外提供服务,这样用户可以通过仓库B的服务端口读取容器镜像。但keepalived依赖两个主机之间的网络通信,若第一主机和第二主机之间的网络中断,容易出现集群脑裂现象,使得第一主机的本地磁盘和第二主机的本地磁盘中存储的容器镜像不一致,从而导致用户读取到错误的容器镜像。
因此,亟需一种可以提高用户读取容器镜像的准确率的方案。
发明内容
本公开提供一种容器镜像的读取方法、介质、装置和计算设备,以提高用户读取容器镜像的准确率。
在本公开实施方式的第一方面中,提供了一种容器镜像的读取方法,应用于Operator组件,该容器镜像的读取方法包括:在至少两个Sidecar组件中,确定主节点和从节点,至少两个Sidecar组件分别部署在至少两个主机中,至少两个主机中的每个主机中还部署有用于存储、管理和分发容器镜像的仓库;响应于主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使服务进程在接收到用户访问服务进程互联网协议地址IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。
在本公开的一个实施例中,至少两个主机中的每个主机中还部署有存储介质,在每个主机中,仓库挂载存储介质;在至少两个Sidecar组件中,确定主节点和从节点之后,该容器镜像的读取方法还包括:向主节点对应的Sidecar组件发送控制指令,以控制主节点对应的Sidecar组件执行数据同步操作,数据同步操作用于将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
在本公开的另一个实施例中,在至少两个Sidecar组件中,确定主节点和从节点,包括:响应于首次接收到至少两个Sidecar组件发送的健康监测信息,确定至少两个接收时刻,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;在至少两个接收时刻中确定最早接收时刻;在至少两个Sidecar组件中,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点。
在本公开的又一个实施例中,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点之后,该容器镜像的读取方法还包括:响应于检测到主节点对应的仓库宕机,或主节点对应的主机宕机,执行主从切换操作。
在本公开的再一个实施例中,Operator组件提供应用程序接口;在接收到至少两个Sidecar组件发送的健康监测信息之后,该容器镜像的读取方法还包括:基于Operator组件提供的应用程序接口,向显示组件发送健康监测信息,以使显示组件展示健康监测信息。
在本公开的再一个实施例中,该容器镜像的读取方法还包括:响应于运维管理操作指令,控制主节点对应的Sidecar组件停止执行数据同步操作,或控制服务进程删除映射关系表中主节点对应仓库的仓库IP。
在本公开实施方式的第二方面中,提供了一种容器镜像的读取方法,应用于主节点对应的Sidecar组件,主节点对应的Sidecar组件部署在主节点对应的主机中,主节点对应的主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取方法包括:接收来自Operator组件的控制指令;基于控制指令,执行以下数据同步操作:将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
在本公开的再一个实施例中,将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中,包括:在主节点对应主机的存储介质中读取容器镜像;向从节点对应的Sidecar组件发送读取到的容器镜像,以使从节点对应的Sidecar组件将接收到的容器镜像存储在从节点对应主机的存储介质中;其中,从节点对应的Sidecar组件部署在从节点对应的主机中,从节点对应的主机中还部署有仓库。
在本公开的再一个实施例中,容器镜像采用分层存储的方式存储在存储介质中;在主节点对应主机的存储介质中读取容器镜像,包括:获取主节点对应主机的存储介质中存储的容器镜像的第一层标识信息,以及从节点对应主机的存储介质中存储的容器镜像的第二层标识信息;将第一层标识信息和第二层标识信息之间的不同部分确定为第三层标识信息;在主节点对应主机的存储介质中读取第三层标识信息对应的容器镜像。
在本公开实施方式的第三方面中,提供了一种容器镜像的读取方法,应用于Sidecar组件,Sidecar组件部署在主机中,主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取方法包括:获取健康监测信息,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;向Operator组件发送健康监测信息,以便于Operator组件通过健康监测信息确定Sidecar组件为主节点或从节点。
在本公开的再一个实施例中,Sidecar组件的数量为至少两个。
在本公开的再一个实施例中,Sidecar组件为从节点对应的Sidecar组件;该容器镜像的读取方法还包括:接收主节点对应的Sidecar组件发送的容器镜像;将接收到的容器镜像存储在从节点对应主机的存储介质中。
在本公开实施方式的第四方面中,提供了一种容器镜像的读取系统,包括:容器管理平台,容器管理平台提供服务进程,服务进程用于在接收到用户访问服务进程IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系;主节点对应的第一主机,第一主机中部署有第一Sidecar组件,第一仓库,以及挂载第一仓库的第一存储介质,第一Sidecar组件用于执行第二方面的容器镜像的读取方法,第一仓库用于存储、管理和分发容器镜像,第一存储介质用于存储第一仓库中的容器镜像;从节点对应的第二主机,第二主机中部署有第二Sidecar组件,第二仓库,以及挂载第二仓库的第二存储介质,第二Sidecar组件用于执行第三方面的容器镜像的读取方法,第二仓库用于存储、管理和分发容器镜像,第二存储介质用于存储第二仓库中的容器镜像;Operator组件,用于执行第一方面的容器镜像的读取方法;显示组件,用于展示健康监测信息,以及生成运维管理操作指令,运维管理操作指令用于控制第一Sidecar组件停止执行数据同步操作,或控制服务进程删除映射关系表中主节点对应仓库的仓库IP。
在本公开实施方式的第五方面中,提供了一种介质,介质中存储有计算机执行指令,计算机执行指令被执行时用于实现如第一方面至第三方面中任一项的容器镜像的读取方法。
在本公开实施方式的第六方面中,提供了一种容器镜像的读取装置,应用于Operator组件,该容器镜像的读取装置包括:确定模块,用于在至少两个Sidecar组件中,确定主节点和从节点,至少两个Sidecar组件分别部署在至少两个主机中,至少两个主机中的每个主机中还部署有用于存储、管理和分发容器镜像的仓库;控制模块,用于响应于主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使服务进程在接收到用户访问服务进程互联网协议地址IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。
在本公开实施方式的第七方面中,提供了一种容器镜像的读取装置,应用于主节点对应的Sidecar组件,主节点对应的Sidecar组件部署在主节点对应的主机中,主节点对应的主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取装置包括:接收模块,用于接收来自Operator组件的控制指令;执行模块,用于基于控制指令,执行以下数据同步操作:将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
在本公开实施方式的第八方面中,提供了一种容器镜像的读取装置,应用于Sidecar组件,Sidecar组件部署在主机中,主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取装置包括:获取模块,用于获取健康监测信息,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;发送模块,用于向Operator组件发送健康监测信息,以便于Operator组件通过健康监测信息确定Sidecar组件为主节点或从节点。
在本公开实施方式的第九方面中,提供了一种计算设备,包括:处理器,以及与处理器连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现如第一方面至第三方面中任一项的容器镜像的读取方法。
根据本公开实施方式的容器镜像的读取方法、介质、装置和计算设备,Operator组件可以在至少两个Sidecar组件中,确定主节点和从节点;并在主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常时,Operator组件可以基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,这样服务进程在接收到用户访问服务进程IP的访问请求时,就可以根据映射关系表确定服务进程IP对应的主节点对应仓库的仓库IP,这样就可以根据主节点对应仓库的仓库IP将主节点对应仓库中存储的容器镜像返回给用户,以保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了相关技术中的用户访问仓库的一种示意图;
图2示出了相关技术中的用户访问仓库的另一种示意图;
图3示出了相关技术中的用户访问仓库的又一种示意图;
图4示出了根据本公开实施例的容器镜像的读取方法的一种场景示意图;
图5示出了根据本公开实施例的容器镜像的读取方法的一种流程示意图;
图6示出了根据本公开实施例的数据同步操作的一种示意图;
图7示出了根据本公开实施例的用户访问主节点对应仓库的一种示意图;
图8示出了根据本公开实施例的用户访问主节点对应仓库的另一种示意图;
图9示出了根据本公开实施例的用户访问主节点对应仓库的又一种示意图;
图10示出了根据本公开实施例的用户访问主节点对应仓库的再一种示意图;
图11示出了根据本公开实施例的用户访问主节点对应仓库的再一种示意图;
图12示出了根据本公开实施例的用户访问主节点对应仓库的再一种示意图;
图13示出了根据本公开实施例的手动干预Sidecar组件和服务进程的运行的一种示意图;
图14示出了根据本公开实施例的Operator组件进行管控的一种示意图;
图15示出了根据本公开实施例的容器镜像的读取方法的另一种流程示意图;
图16示出了根据本公开实施例的数据同步操作的另一种示意图;
图17示出了根据本公开实施例的数据同步操作的再一种示意图;
图18示出了根据本公开实施例的容器镜像的读取方法的又一种流程示意图;
图19示出了根据本公开实施例的存储介质的一种结构示意图;
图20示出了根据本公开实施例的容器镜像的读取装置的一种结构示意图;
图21示出了根据本公开实施例的容器镜像的读取装置的另一种结构示意图;
图22示出了根据本公开实施例的容器镜像的读取装置的再一种结构示意图;
图23示出了根据本公开实施例的计算设备的一种结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种容器镜像的读取方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语含义如下:
虚拟机:是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
容器:是一种便携式软件单元,无需再构建复杂的环境,通过容器可以简化应用程序(Application,简称:APP)从开发到部署的过程。每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统是解耦的,所以容器可以在不同云、不同版本操作系统间进行迁移。如果认为虚拟机是模拟运行的一整套操作系统和跑在上面的APP,那么容器就是独立运行的APP及运行环境。
容器镜像:容器镜像包含一个打包的APP,以及该APP的依赖关系,还有该APP在启动时运行的进程信息。可以使用这个打包好的容器镜像在任何主机上快速的运行APP程序。
仓库:用于存放容器镜像。可以将容器镜像存放到仓库中,用于后期的传输和使用。
挂载:是指由操作系统使一个存储设备(诸如本地硬盘、CD-ROM、共享资源、远程存储)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
本地磁盘:是指安装于同一台计算机主板上,不可随意插拔、移动的磁盘(硬盘),一般包括计算机操作系统所在分区及其他分区。同一台计算机内部安装的数块磁盘均可称作该计算机的本地磁盘。
远程存储:一种存储方式,相对于本地磁盘存储而言的,远程存储可以使用远程终端访问远程存储设备或服务,这样用户就可以存储、管理和保护数据了。远程存储可以用于存储APP程序、数据文件、用户数据和更多类型的文件。
Keepalived:是实现高可用的一种方式,Keepalived可以检测服务器的状态,如果有一台服务器宕机或工作出现故障,Keepalived可以自动的切换到备用节点上。
集群脑裂:在多机热备的高可用集群系统中,当两个节点之间的网络断开之后,集群分裂为两个独立的个体,由于互相失去联系,都认为对方出现了故障,因此都会争抢对方的资源,这就是集群脑裂问题。例如,A和B作为一个双机而被集群的两个节点,这时两机器之间突然无法通信,A认为B出现了故障,B也认为A出现了故障,于是出现脑裂问题。
K8S:是开源的容器管理平台Kubernetes的简称,可以在K8S中创建多个容器,每个容器里面运行一个应用实例,通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
K8S Pod:是K8S中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在K8S上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,例如控制器对象可以用来管控Pod对象,K8S Service可以用来暴露Pod引用对象。Pod包括一个或多个容器,比如一个Pod中也可以运行一个运行业务的容器和一个额外的Sidecar辅助容器。
K8S Sidecar:Sidecar是在不改变原有业务容器功能的情况下,在同一个K8S Pod下增加一个新的容器来增加对应的辅助功能的方式。因为在同一个K8S Pod中的容器可以共享网络、存储等资源的,这样Sidecar容器就可以很方便的对原有的业务容器进行辅助操作。
K8S Service:在K8S中,Pod是应用程序的载体,可以通过Pod的IP来访问应用程序,但是Pod的IP不是固定的,这也就意味着不方便直接采用Pod的IP对服务进行访问。为了解决这个问题,K8S提供了Service,Service会对提供同一个服务的多个Pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到各个容器应用上。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,仓库一般部署在虚拟机或物理机等主机上,仓库挂载主机的本地磁盘,仓库中所有的容器镜像存储在本地磁盘中,用户通过仓库的服务端口读取本地磁盘中存储的容器镜像,如图1所示。但由于仓库和本地磁盘均为单点,若仓库或主机宕机,则用户无法读取容器镜像。
相关技术中为了保证用户可以正常读取容器镜像,通常是采用以下两种方案实现:
第一种方案是,采用如图2所示的架构,设置两台主机,分别为主机1和主机2,将仓库A挂载在主机1的本地磁盘上,将仓库B挂载在主机2的本地磁盘上,容器镜像存储在主机的本地磁盘中。将主机1上的仓库A对外提供服务,并将主机1的仓库A中的容器镜像同步给主机2的仓库B。但在这种方案中,若主机1宕机,需要通过keepalived自动将主机1和主机2进行切换,使主机2上的仓库B对外提供服务;后续若主机1从宕机中恢复,且主机2宕机,为了保证性能的稳定性,需要手动将主机2与主机1切换,使主机1上的仓库A对外提供服务。
在上述第一种方案中,手工切换主机1和主机2,存在切换效率低的问题;并且,由于keepalived依赖主机1和主机2之间的网络通信,当主机1和主机2之间的网络中断,就会出现集群脑裂的现象,从而导致主机1和主机2之间的本地磁盘中数据不一致;另外,由于keepalived的局限,主机1的仓库A和主机2的仓库B必须在同一个网段中,如果同网段中没有主机资源,只能分配一个不同网段的其他主机来安装仓库,但这种方式不易实现。
第二种方案是,采用如图3所示的架构,设置两台主机,分别为主机1和主机2,将主机1对应的仓库A和主机2对应的仓库B均外挂在远程存储上,这样无论是主机1宕机还是主机2宕机,用户都可以访问另外一个主机的仓库。
在上述第二种方案中,仓库外挂在远程存储上,需要网络支持,因此,性能损耗大、读写速度慢;并且,远程存储增加了额外的部署成本;另外,若远程存储发生宕机,则会导致主机1的仓库A和主机2的仓库B都不可访问,影响范围大。
因此,本公开提供了一种容器镜像的读取方法,设置多台主机,每台主机中部署有Sidecar组件、仓库和本地磁盘,每个主机对应的仓库挂载在该主机的本地磁盘上。通过Operator组件,可以确定多个Sidecar组件中的主节点和从节点,主节点和从节点之间可以实现数据同步。容器管理平台中的服务进程存储有映射关系表,该映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。若主节点对应的主机和仓库均正常运行,则用户可以通过容器管理平台中的服务进程,访问主节点对应主机中的仓库,以读取主节点对应仓库中存储的容器镜像。若主节点对应的主机和/或仓库运行异常,从节点对应的Sidecar组件执行主从切换操作,且Operator组件控制容器管理平台中的服务进程修改映射关系表,以保证用户可以通过容器管理平台中的服务进程,访问切换后的主节点对应主机中的仓库,以读取切换后的主节点对应仓库中存储的容器镜像。这样就可以保证用户正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图4,图4示出了根据本公开实施例的容器镜像的读取方法的一种场景示意图,主机1中部署有仓库A、Sidecar组件A和本地磁盘A,主机2中部署有仓库B、Sidecar组件B和本地磁盘B,仓库A挂载在本地磁盘A上,仓库B挂载在本地磁盘B上,在主机1中,仓库A和Sidecar组件A均可以采用容器部署在主机1中的K8S Pod中,在主机2中,仓库B和Sidecar组件B均可以采用容器部署在主机2中的K8S Pod中,Sidecar组件A和Sidecar组件B均可以实现主从切换、数据同步以及对对应的仓库和主机进行监测的功能。Sidecar组件A和Sidecar组件B均可以向管控组件内部的Operator组件发送健康监测信息,Operator组件对接收到的健康监测信息进行分析,确定Sidecar组件A为主节点,Sidecar组件B为从节点,并可以控制容器管理平台中的服务进程调整映射关系表,以保证服务进程IP可以对应仓库A的IP。用户可以向容器管理平台中的服务进程发送访问请求,通过服务进程IP映射到仓库A的IP,从而实现用户访问仓库A,以读取仓库A中存储的容器镜像。
可选地,若主机1和/或仓库A运行异常,则Sidecar组件A向Operator组件发送主机1和/或仓库A运行异常的健康监测信息,Sidecar组件B执行主从切换操作,并向Operator组件发送主机2和仓库B运行正常的健康监测信息。Operator组件向容器管理平台中的服务进程调整映射关系表,以保证服务进程IP可以对应仓库B的IP。后续用户向容器管理平台中的服务进程发送访问请求时,可以通过服务进程IP映射到仓库B的IP,从而实现用户访问仓库B,以读取仓库B中存储的容器镜像。这样就可以保证用户正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
可选地,管控组件内部还包括显示组件,显示组件可以调用Operator组件提供的应用程序接口(Application Programming Interface,简称:API),以展示主机1、仓库A、Sidecar组件A、主机2、仓库B、Sidecar组件B的健康监测信息。
示例性方法
下面结合图4的应用场景,参考图5、图15和图18来描述根据本公开示例性实施方式的容器镜像的读取方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图5示出了根据本公开实施例的容器镜像的读取方法的一种流程示意图,在图5中,该容器镜像的读取方法可以应用于Operator组件,该容器镜像的读取方法包括以下步骤:
S501:在至少两个Sidecar组件中,确定主节点和从节点,至少两个Sidecar组件分别部署在至少两个主机中,至少两个主机中的每个主机中还部署有用于存储、管理和分发容器镜像的仓库。
在该步骤中,在每个主机中,仓库和Sidecar组件均可以采用容器部署在主机中的K8S Pod中,仓库和Sidecar组件可以采用同一个IP,也即仓库和Sidecar组件可以采用K8SPod的IP。
S502:响应于主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使服务进程在接收到用户访问服务进程IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。
在该步骤中,容器管理平台中的服务进程可以为K8S Service。容器管理平台中的服务进程可以为后端多个容器仓库提供统一访问入口,用户通过容器管理平台中的服务进程就可以访问到后端的容器仓库,读取到仓库中存储的容器镜像。容器管理平台中的服务进程中存储有映射关系表,该映射关系表可以用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。
举例而言,映射关系表可以如表1所示:
表1映射关系表
服务进程IP | 服务进程端口 | 仓库IP | 仓库端口 |
10.8.8.8 | 5000 | 10.1.1.11 | 5000 |
在一种可选的实施方式中,一个服务进程IP可以对应多个仓库IP。若服务进程为K8S Service,则多个仓库IP对应的端口需要保持一致。若服务进程为其他可以实现负载均衡的服务进程,则多个仓库IP对应的端口可以不一致。同一个仓库IP可以对应多个仓库端口。
可选地,每个Sidecar组件可以向Operator组件发送对应主机的运行状态,以及该主机中部署的仓库的运行状态。Operator组件在监测到主节点对应主机的运行状态为运行正常,且主节点对应主机中部署的仓库的运行状态为运行正常时,控制容器管理平台中的服务进程将服务进程IP和主节点对应仓库的仓库IP添加至映射关系表中,这样服务进程在接收到用户访问服务进程IP的访问请求时,就可以根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,从而保证用户可以正常访问主节点的仓库,以使用户可以读取到准确的容器镜像。
本公开提供的容器镜像的读取方法,Operator组件可以在至少两个Sidecar组件中,确定主节点和从节点;并在主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常时,Operator组件可以基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,这样服务进程在接收到用户访问服务进程IP的访问请求时,就可以根据映射关系表确定服务进程IP对应的主节点对应仓库的仓库IP,这样就可以根据主节点对应仓库的仓库IP将主节点对应仓库中存储的容器镜像返回给用户,以保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在本公开的一个实施例中,至少两个主机中的每个主机中还部署有存储介质,在每个主机中,仓库挂载存储介质;在至少两个Sidecar组件中,确定主节点和从节点之后,该容器镜像的读取方法还包括:向主节点对应的Sidecar组件发送控制指令,以控制主节点对应的Sidecar组件执行数据同步操作,数据同步操作用于将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
在该实施例中,存储介质可以为主机的本地磁盘,可以用于实现容器镜像的后端存储。主机中部署的仓库可以挂载主机的本地磁盘,或者主机的本地磁盘挂载进K8S Pod中,以实现仓库挂载存储介质。
在一种可选的实施方式中,Operator组件中可以存储用于实现主节点和从节点之间的数据同步的同步配置表,通过对同步配置表中用于进行数据同步操作的开关切换为打开(on),并将携带有切换开关后的同步配置表的控制指令发送给主节点对应的Sidecar组件,以控制主节点对应的Sidecar组件执行数据同步操作。主节点对应的Sidecar组件接收到同步配置表之后,将主节点对应主机中部署的存储介质中存储的容器镜像同步给从节点对应主机的存储介质中。这样在主节点出现运行异常的情况时,可以进行主从切换,以便于保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
举例而言,同步配置表可以如表2所示:
表2同步配置表
可选地,主节点和从节点之间的数据同步操作可以如图6所示。用户开发完新的业务对应的容器镜像之后,向容器管理平台中的服务进程发送携带容器镜像的容器镜像写入请求,以实现通过容器管理平台中的服务进程向主节点对应主机(在图6中为主机1)中部署的仓库写入容器镜像。主节点对应主机中部署的仓库在接收到容器镜像之后,将容器镜像存储在主节点对应主机中部署的存储介质中。由于仓库和Sidecar组件部署在同一个K8SPod中,因此,仓库和Sidecar组件共享同一个IP,这样,主节点对应的Sidecar组件在接收到控制指令之后,从主节点对应主机(在图6中为主机2)中部署的存储介质中读取容器镜像,并按照同步配置表中的目标仓库IP,向从节点的Sidecar组件同步容器镜像,从节点的Sidecar组件将容器镜像存储至从节点对应主机中部署的存储介质中。
在本公开的另一个实施例中,在至少两个Sidecar组件中,确定主节点和从节点,包括:响应于首次接收到至少两个Sidecar组件发送的健康监测信息,确定至少两个接收时刻,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;在至少两个接收时刻中确定最早接收时刻;在至少两个Sidecar组件中,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点。
在该实施例中,主机在启动时,主机中部署的仓库、Sidecar组件、和本地磁盘均同步启动,Sidecar组件启动后,可以收集对应主机的运行状态和该主机中部署的仓库的运行状态,得到健康监测信息,并向Operator组件上报健康监测信息。如图7所示,在主机1和主机2均第一次启动时,Operator组件接收到主机1中部署的Sidecar组件A发送的健康监测信息,以及接收到主机2中部署的Sidecar组件B发送的健康监测信息。Operator组件对接收到的健康监测信息进行分析,确定接收Sidecar组件A发送的健康监测信息的接收时刻,早于接收Sidecar组件B发送的健康监测信息的接收时刻,可以认为主机1最先启动,因此,将Sidecar组件A确定为主节点,将Sidecar组件B确定为从节点。
举例而言,主节点对应Sidecar组件A向Operator组件上报的健康监测信息可以如表3所示,从节点对应Sidecar组件B向Operator组件上报的健康监测信息可以如表4所示:
表3主节点对应Sidecar组件A上报的健康监测信息
类别 | IP | 运行状态 |
主机1 | 172.16.0.189 | 正常 |
仓库A | 10.1.1.11 | 正常 |
则Operator组件的API返回如下接口信息:
″master″:”10.1.1.11”;
″update time″:”xxxxxxxx”。
其中,master用于表示主节点对应Sidecar组件A的IP(由于仓库和Sidecar组件在同一个K8S Pod中,所以两者的IP是相同的);update_time用于表示最近更新时间。
表4从节点对应Sidecar组件B上报的健康监测信息
类别 | IP | 运行状态 |
主机2 | 172.16.5.66 | 正常 |
仓库B | 10.2.2.12 | 正常 |
Operator组件在接收到从节点对应Sidecar组件B上报的健康监测信息之后,向从节点对应Sidecar组件B反馈上述接口信息,以使从节点对应Sidecar组件B确定主节点对应的主机1的IP和主节点对应的仓库A的IP。
在一种可选的实施方式中,Operator组件确定主节点和从节点之后,控制容器管理平台中的服务进程修改映射关系表,修改后的映射关系表如表1。这样服务进程在接收到用户访问服务进程IP的访问请求时,就可以根据映射关系表确定服务进程IP对应的仓库A的IP,从而可以将仓库A中存储的容器镜像返回给用户,以保证用户可以正常访问主节点的仓库,使用户读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在一种可选的实施方式中,Operator组件确定主节点和从节点之后,将主节点对应的同步配置表中的同步操作开关切换为“on”,并将切换同步操作开关后的同步配置表发送至主节点对应的Sidecar组件A;以及将从节点对应的同步配置表中的同步操作开关切换为关闭(off),并将切换同步操作开关后的同步配置表发送至从节点对应的Sidecar组件B,这样就可以实现将主机1部署的存储介质中存储的容器镜像,同步至主机2部署的存储介质中。
在本公开的又一个实施例中,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点之后,该容器镜像的读取方法还包括:响应于检测到主节点对应的仓库宕机,或主节点对应的主机宕机,执行主从切换操作。
在该实施例中,在主机首次启动时,主机中部署的仓库和Sidecar组件也同步启动,Operator组件基于接收到的健康监测信息,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点。在后续运行过程中,可能出现以下几种情况:
情况①:若Operator组件检测到从节点对应的主机或从节点对应的仓库宕机,且主节点对应的主机或主节点对应的仓库运行正常,则不执行主从切换操作。如图8所示。
在图8中,主节点对应的主机为主机1,主机1中部署有仓库A、本地磁盘A和Sidecar组件A,从节点对应的主机为主机2,主机2中部署有仓库B、本地磁盘B和Sidecar组件B。仓库A对外提供服务,用户可以访问仓库A以读取容器镜像。若Operator组件检测到主机2宕机和/或仓库B宕机,则对用户的访问无任何影响,用户依然可以通过访问仓库A以读取容器镜像。
情况②:若在情况①之后,Operator组件检测到主节点对应的主机宕机或主节点对应的仓库宕机,且从节点对应的主机恢复正常运行或从节点对应的仓库恢复正常运行,则Operator组件可以执行主从切换操作,以使切换后的新的主节点对应的仓库可以提供对外服务。如图9所示。
在图9中,Operator组件接收到Sidecar组件A上报的健康监测信息,如表5所示,以及接收到Sidecar组件B上报的健康监测信息,如表6所示,检测到主机1宕机和/或仓库A宕机,则仓库A无法提供对外服务。
表5 Sidecar组件A收集到的健康监测信息
类别 | IP | 运行状态 |
主机1 | 172.16.0.189 | 宕机 |
仓库A | 10.1.1.11 | 宕机 |
表6 Sidecar组件B收集到的健康监测信息
因此,Operator组件将容器管理平台中的服务进程中存储的映射关系表记录的仓库IP修改为仓库B的IP,如表7所示。
表7修改后的映射关系表
服务进程IP | 服务进程端口 | 仓库IP | 仓库端口 |
10.8.8.8 | 5000 | 10.2.2.12 | 5000 |
并且Operator组件将Sidecar组件A对应的同步配置表中的同步操作开关设置为off,如表8所示,以及将Sidecar组件B对应的同步配置表中的同步操作开关设置为on,如表9所示。这样就可以完成主从切换操作,从而使用户通过访问仓库B以读取容器镜像。
表8修改后的Sidecar组件A对应的同步配置表
表9修改后的Sidecar组件B对应的同步配置表
情况③:若主节点对应的主机运行正常或主节点对应的仓库运行正常,且从节点对应的主机运行正常或主节点对应的仓库运行正常,但Operator组件与主节点对应的仓库之间的网络中断,则Operator组件认为主节点对应的主机宕机或主节点对应的仓库宕机,如图10所示。Operator组件与仓库A之间的网络中断,则Operator组件无法与Sidecar组件A进行信息交互,因此,Operator组件认为主机1宕机或仓库A宕机,因此,可以采用情况②对应的策略执行主从切换操作。
情况④:若在情况③之后,主节点对应的主机恢复正常运行或主节点对应的仓库恢复正常运行,考虑到稳定性,则不进行任何操作,如图11所示。主机1恢复正常运行或仓库A恢复正常运行,由于已经存在新的主节点(10.2.2.12),仓库B已经提供对外服务,用户可以通过访问仓库B以读取容器镜像。因此,主机1和仓库A会接收到来自Operator组件的如下API接口信息:
″master″:”10.2.2.12”;
″update_time″:”xxxxxx”。
情况⑤:若在情况④之后,从节点对应的主机宕机或从节点对应的仓库宕机,则Operator组件可以执行主从切换操作,以使切换后的新的主节点对应的仓库可以提供对外服务。如图8所示。Operator组件接收到Sidecar组件A上报的健康监测信息,如表10所示,以及接收到Sidecar组件B上报的健康监测信息,如表11所示,检测到主机2宕机和/或仓库B宕机,则仓库B无法提供对外服务。
表10 Sidecar组件A收集到的健康监测信息
表11 Sidecar组件B收集到的健康监测信息
类别 | IP | 运行状态 |
主机2 | 172.16.5.66 | 宕机 |
仓库B | 10.2.2.12 | 宕机 |
因此,Operator组件将容器管理平台中的服务进程中存储的映射关系表记录的仓库IP修改为仓库A的IP,如表12所示。
表12修改后的映射关系表
服务进程IP | 服务进程端口 | 仓库IP | 仓库端口 |
10.8.8.8 | 5000 | 10.1.1.11 | 5000 |
并且Operator组件将Sidecar组件A对应的同步配置表中的同步操作开关设置为on,如表13所示,以及将Sidecar组件B对应的同步配置表中的同步操作开关设置为off,如表14所示。这样就可以完成主从切换操作,从而使用户通过访问仓库A以读取容器镜像。
表13修改后的Sidecar组件A对应的同步配置表
表14修改后的Sidecar组件B对应的同步配置表
情况⑥:若主节点对应的主机运行正常或主节点对应的仓库运行正常,且从节点对应的主机运行正常或主节点对应的仓库运行正常,但Operator组件与从节点对应的仓库之间的网络中断,则Operator组件认为从节点对应的主机宕机或从节点对应的仓库宕机,如图12所示。Operator组件与仓库B之间的网络中断,则Operator组件无法与Sidecar组件B进行信息交互,因此,Operator组件认为主机2宕机或仓库B宕机,因此,可以采用情况①对应的策略应对。
在一种可选的实施方式中,通过在不同情况执行相应的策略,可以保证用户正常访问主节点的仓库,使用户读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在本公开的再一个实施例中,Operator组件提供应用程序接口;在接收到至少两个Sidecar组件发送的健康监测信息之后,该容器镜像的读取方法还包括:基于Operator组件提供的应用程序接口,向显示组件发送健康监测信息,以使显示组件展示健康监测信息。
在该实施例中,为了便于对主机和仓库的健康监测信息进行直观地监测,Operator组件可以通过API,向显示组件发送健康监测信息,通过显示组件来展示健康监测信息,从而实时监测主机和仓库的运行状态。
可选地,Operator组件可以通过API,向显示组件发送Sidecar组件的运行状态,以使显示组件可以直观地展示Sidecar组件的运行状态。
在本公开的再一个实施例中,该容器镜像的读取方法还包括:响应于运维管理操作指令,控制所述主节点对应的Sidecar组件停止执行数据同步操作,或控制所述服务进程删除所述映射关系表中所述主节点对应仓库的仓库IP。
在该实施例中,如图13所示,运维管理操作指令可以是运维人员通过管控组件内部的显示组件发起的。显示组件可以调用管控组件内部的Operator组件提供的API,将运维管理操作指令下发至Operator组件,Operator组件在接收到运维管理操作指令之后,控制主节点对应的Sidecar组件停止执行数据同步操作,或控制服务进程删除映射关系表中主节点对应仓库的仓库IP。从而实现在应急情况下,可以手动干预Sidecar组件和服务进程的运行的目的。
可选地,控制主节点对应的Sidecar组件停止执行数据同步操作,可以是运维人员通过显示组件修改主节点对应的Sidecar组件的同步配置表,将同步配置表中的同步操作开关调整为off,从而实现手动停止掉Sidecar组件的数据同步操作。
可选地,控制服务进程删除映射关系表中主节点对应仓库的仓库IP,可以是运维人员通过显示组件修改服务进程的映射关系表,删除映射关系表中仓库IP对应的具体地址,从而实现手动关闭外界用户访问服务进程。
在本公开的再一个实施例中,如图14所示,Sidecar组件从仓库收集仓库的类别、IP地址、运行状态等健康监测信息,从主机收集主机的类别、IP地址、运行状态等健康监测信息,并将收集到的健康监测信息上报给管控组件内部的Operator组件;Operator组件基于接收到的健康监测信息进行分析,向服务进程发送控制指令,以修改服务进程中的最新映射关系;并向Sidecar组件发送控制指令,以修改Sidecar组件对应的同步配置表中的开关,并提供API给管控组件内部的显示组件;显示组件从Operator组件的API获取最新的健康监测信息,并进行展示,以供管理员查看与运维。
图15示出了根据本公开实施例的容器镜像的读取方法的另一种流程示意图,在图15中,该容器镜像的读取方法可以应用于主节点对应的Sidecar组件,主节点对应的Sidecar组件部署在主节点对应的主机中,主节点对应的主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取方法包括以下步骤:
S1501:接收来自Operator组件的控制指令。
在该步骤中,Operator组件中可以存储用于实现主节点和从节点之间的数据同步的同步配置表,通过对同步配置表中用于进行数据同步操作的开关切换为on,并将携带有切换开关后的同步配置表的控制指令发送给主节点对应的Sidecar组件。
S1502:基于控制指令,执行以下数据同步操作:将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中。
在该步骤中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
在一种可选的实施方式中,主节点对应的Sidecar组件在接收到控制指令之后,可以按照控制指令中携带的同步配置表,将主节点对应主机中部署的存储介质中存储的容器镜像同步给从节点对应主机的存储介质中。这样在主节点出现运行异常的情况时,可以进行主从切换,以便于保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
可选地,存储介质可以为主机的本地磁盘,可以用于实现容器镜像的后端存储。主机中部署的仓库可以挂载主机的本地磁盘,或者主机的本地磁盘挂载进K8S Pod中,以实现仓库挂载存储介质。
本公开提供的容器镜像的读取方法,Operator组件向主节点对应的Sidecar组件发送控制指令,以使主节点对应的Sidecar组件将主节点对应主机中部署的存储介质中存储的容器镜像同步给从节点对应主机的存储介质中。这样在主节点出现运行异常的情况时,可以进行主从切换,以便于保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在本公开的一个实施例中,将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中,包括:在主节点对应主机的存储介质中读取容器镜像;向从节点对应的Sidecar组件发送读取到的容器镜像,以使从节点对应的Sidecar组件将接收到的容器镜像存储在从节点对应主机的存储介质中;其中,从节点对应的Sidecar组件部署在从节点对应的主机中,从节点对应的主机中还部署有仓库。
在该实施例中,用户开发完新的业务对应的容器镜像之后,向容器管理平台中的服务进程发送携带容器镜像的容器镜像写入请求,以实现通过容器管理平台中的服务进程向主节点对应主机中部署的仓库写入容器镜像。主节点对应主机中部署的仓库在接收到容器镜像之后,将容器镜像存储在主节点对应主机中部署的存储介质中。由于仓库和Sidecar组件部署在同一个K8S Pod中,因此,仓库和Sidecar组件共享同一个IP,这样,主节点对应的Sidecar组件在接收到控制指令之后,从主节点对应主机中部署的存储介质中读取容器镜像,并按照同步配置表中的目标仓库IP,向从节点的Sidecar组件同步容器镜像,从节点的Sidecar组件将容器镜像存储至从节点对应主机中部署的存储介质中。
可选地,通过数据同步操作,在主节点出现运行异常的情况时,可以进行主从切换,以便于保证用户可以正常访问主节点的仓库,从而读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在本公开的另一个实施例中,容器镜像采用分层存储的方式存储在存储介质中;在主节点对应主机的存储介质中读取容器镜像,包括:获取主节点对应主机的存储介质中存储的容器镜像的第一层标识信息,以及从节点对应主机的存储介质中存储的容器镜像的第二层标识信息;将第一层标识信息和第二层标识信息之间的不同部分确定为第三层标识信息;在主节点对应主机的存储介质中读取第三层标识信息对应的容器镜像。
在该实施例中,存储介质中存储的容器镜像采用分层存储的方式,每层容器镜像均对应有层标识信息。在进行数据同步的过程中,若是首次进行数据同步,则可以在主节点对应主机的存储介质中读取全量的容器镜像,然后将读取到的全量的容器镜像全部同步至从节点对应主机的存储介质中。如图16所示。
在图16中,主节点对应的主机为主机1,主机1中部署有存储介质A和Sidecar组件A,从节点对应的主机为主机2,主机2中部署有存储介质B和Sidecar组件B。存储介质A中的容器镜像以L00001至L00006进行存储,在首次进行数据同步操作时,Sidecar组件A在存储介质A中读取L00001至L00006这6层容器镜像,并将这6层容器镜像同步至Sidecar组件B,通过Sidecar组件B将这6层容器镜像存储至存储介质B中。
在上述实施例中,在非首次进行数据同步时,为了提高数据同步的效率,减少不必要的资源浪费,可以仅同步主节点对应主机的存储介质与从节点对应主机的存储介质之间存在差异的容器镜像。如图17所示。
在图17中,在经过如图16所示的首次数据同步之后,若存储介质A中增加了一层容器镜像L00007,则在第二次数据同步时,Sidecar组件A获取存储介质A中存储的容器镜像的第一层标识信息,第一层标识信息包括L00001、L00002、L00003、L00004、L00005、L00006、L00007,以及通过Sidecar组件B获取存储介质B中存储的容器镜像的第二层标识信息,第二层标识信息包括L00001、L00002、L00003、L00004、L00005、L00006。则第三层标识信息为L00007。因此,Sidecar组件A可以在存储介质A中读取L00007对应的容器镜像,这样Sidecar组件A就可以将L00007对应的容器镜像同步至Sidecar组件B,从而通过Sidecar组件B将L00007对应的容器镜像存储至存储介质B中。以此类推,后续存储介质A中每变动一次容器镜像,Sidecar组件A就会将差异部分对应的容器镜像同步至Sidecar组件B,从而通过Sidecar组件B将差异部分对应的容器镜像存储至存储介质B中。
在一种可选的实施方式中,层标识信息可以通过标签和校验值MD5确定。若某一层容器镜像发生改动,则校验值MD5就会变化,因此,可以对发生改动的容器镜像进行数据同步。
图18示出了根据本公开实施例的容器镜像的读取方法的又一种流程示意图,在图18中,该容器镜像的读取方法可以应用于Sidecar组件,Sidecar组件部署在主机中,主机中还部署有用于存储、管理和分发容器镜像的仓库;该容器镜像的读取方法包括以下步骤:
S1801:获取健康监测信息,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态。
在该步骤中,主机在启动时,主机中部署的仓库、Sidecar组件、和本地磁盘均同步启动,Sidecar组件启动后,可以收集该Sidecar组件对应的主机的运行状态,以及该主机中部署的仓库的运行状态,得到健康监测信息。如表3和表4所示。
S1802:向Operator组件发送健康监测信息,以便于Operator组件通过健康监测信息确定Sidecar组件为主节点或从节点。
在该步骤中,Sidecar组件获取到健康监测信息之后,可以向Operator组件发送健康监测信息,以便于Operator组件对接收到的健康监测信息进行分析,确定该Sidecar组件是主节点还是从节点。
本公开提供的容器镜像的读取方法,Sidecar组件通过获取健康监测信息,可以向Operator组件发送获取到的健康监测信息,以便于Operator组件可以对接收到的健康监测信息进行分析,从而确定该Sidecar组件是主节点还是从节点,进而可以保证用户可以读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
在本公开的一个实施例中,Sidecar组件的数量为至少两个。
在该实施例中,至少两个Sidecar组件中每个Sidecar组件都可以向Operator组件发送健康监测信息,Operator组件在接收到至少两个Sidecar组件发送的健康监测信息之后,就可以对接收到的健康监测信息进行分析,确定出至少两个Sidecar组件中的主节点和从节点。Operator组件确定主节点和从节点之后,控制容器管理平台中的服务进程修改映射关系表,这样服务进程在接收到用户访问服务进程IP的访问请求时,就可以根据映射关系表确定服务进程IP对应的仓库A的IP,从而可以将仓库A中存储的容器镜像返回给用户,以保证用户可以正常访问主节点的仓库,使用户读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
可选地,Operator组件对接收到的健康监测信息进行分析后,可以将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点。
在本公开的另一个实施例中,Sidecar组件为从节点对应的Sidecar组件;该容器镜像的读取方法还包括:接收主节点对应的Sidecar组件发送的容器镜像;将接收到的容器镜像存储在从节点对应主机的存储介质中。
在该实施例中,存储介质可以为主机的本地磁盘,可以用于实现容器镜像的后端存储。主机中部署的仓库可以挂载主机的本地磁盘,或者主机的本地磁盘挂载进K8S Pod中,以实现仓库挂载存储介质。
在一种可选的实施方式中,主节点对应主机中部署的存储介质中存储的容器镜像可以同步给从节点对应主机的存储介质中。主节点对应的Sidecar组件从主节点对应主机的存储介质中读取容器镜像后,向从节点对应的Sidecar组件发送容器镜像,从节点对应的Sidecar组件在接收到主节点对应的Sidecar组件发送的容器镜像之后,将接收到的容器镜像存储在从节点对应主机中部署的存储介质中,以便于在主节点出现运行异常时,可以通过主从切换将从节点切换为新的主节点,从而采用新的主节点对应的仓库提供对外服务,使用户读取到准确的容器镜像,显著地提高了用户读取容器镜像的准确率,为用户带来了更好的体验。
本公开提供的容器镜像的读取方法,通过Operator组件可以提高仓库故障的自愈能力和高可用的切换能力;并且,本地磁盘的读写性能更高,不存在集中存储的依赖带来的网络性能延迟;此外,通过显示组件,可以便于运行状态的监控与应急操作等运维管理。
在介绍了本公开示例性实施方式的方法之后,接下来,对本公开示例性实施方式的容器镜像的读取系统进行说明。
该容器镜像的读取系统包括:
容器管理平台,容器管理平台提供服务进程,服务进程用于在接收到用户访问服务进程IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系;
主节点对应的第一主机,第一主机中部署有第一Sidecar组件,第一仓库,以及挂载第一仓库的第一存储介质,第一Sidecar组件用于执行应用于主节点对应的Sidecar组件的任一项的容器镜像的读取方法的实施方式,第一仓库用于存储、管理和分发容器镜像,第一存储介质用于存储第一仓库中的容器镜像;
从节点对应的第二主机,第二主机中部署有第二Sidecar组件,第二仓库,以及挂载第二仓库的第二存储介质,第二Sidecar组件用于执行应用于Sidecar组件的任一项的容器镜像的读取方法的实施方式,第二仓库用于存储、管理和分发容器镜像,第二存储介质用于存储第二仓库中的容器镜像;
Operator组件,用于执行应用于Operator组件的任一项的容器镜像的读取方法的实施方式;
显示组件,用于展示健康监测信息,以及生成运维管理操作指令,运维管理操作指令用于控制第一Sidecar组件停止执行数据同步操作,或控制服务进程删除映射关系表中主节点对应仓库的仓库IP。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图19对本公开示例性实施方式的存储介质进行说明。
参考图19所示,存储介质1900中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机执行指令,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序严品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图20、图21和图22对本公开示例性实施方式的容器镜像的读取装置进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图20示出了根据本公开实施例的容器镜像的读取装置的一种结构示意图,该容器镜像的读取装置应用于Operator组件。在图20中,该容器镜像的读取装置2000包括:
确定模块2001,用于在至少两个Sidecar组件中,确定主节点和从节点,至少两个Sidecar组件分别部署在至少两个主机中,至少两个主机中的每个主机中还部署有用于存储、管理和分发容器镜像的仓库;
控制模块2002,用于响应于主节点对应主机的运行状态为运行正常,且主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使服务进程在接收到用户访问服务进程互联网协议地址IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给用户,映射关系表用于表示服务进程IP与主节点对应仓库的仓库IP之间的映射关系。
可选地,至少两个主机中的每个主机中还部署有存储介质,在每个主机中,仓库挂载存储介质;该容器镜像的读取装置2000还包括:第一发送模块(未示出),用于在至少两个Sidecar组件中,确定主节点和从节点之后,向主节点对应的Sidecar组件发送控制指令,以控制主节点对应的Sidecar组件执行数据同步操作,数据同步操作用于将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
可选地,确定模块2001用于通过以下方式实现在至少两个Sidecar组件中,确定主节点和从节点:响应于首次接收到至少两个Sidecar组件发送的健康监测信息,确定至少两个接收时刻,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;在至少两个接收时刻中确定最早接收时刻;在至少两个Sidecar组件中,将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点。
可选地,该容器镜像的读取装置2000还包括:执行模块(未示出),用于在将最早接收时刻对应的Sidecar组件确定为主节点,将其他Sidecar组件确定为从节点之后,响应于检测到主节点对应的仓库宕机,或主节点对应的主机宕机,执行主从切换操作。
可选地,Operator组件提供应用程序接口;该容器镜像的读取装置2000还包括:第二发送模块(未示出),用于在接收到至少两个Sidecar组件发送的健康监测信息之后,基于Operator组件提供的应用程序接口,向显示组件发送健康监测信息,以使显示组件展示健康监测信息。
可选地,控制模块2002还用于:响应于运维管理操作指令,控制主节点对应的Sidecar组件停止执行数据同步操作,或控制服务进程删除映射关系表中主节点对应仓库的仓库IP。
图21示出了根据本公开实施例的容器镜像的读取装置的另一种结构示意图,该容器镜像的读取装置应用于主节点对应的Sidecar组件,主节点对应的Sidecar组件部署在主节点对应的主机中,主节点对应的主机中还部署有用于存储、管理和分发容器镜像的仓库。在图21中,该容器镜像的读取装置2100包括:
接收模块2101,用于接收来自Operator组件的控制指令;
执行模块2102,用于基于控制指令,执行以下数据同步操作:
将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;
其中,主节点对应主机的存储介质中存储的容器镜像是主节点对应的仓库写入的,主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,容器镜像写入请求中携带容器镜像。
可选地,执行模块2102用于通过以下方式实现将主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中:在主节点对应主机的存储介质中读取容器镜像;向从节点对应的Sidecar组件发送读取到的容器镜像,以使从节点对应的Sidecar组件将接收到的容器镜像存储在从节点对应主机的存储介质中;其中,从节点对应的Sidecar组件部署在从节点对应的主机中,从节点对应的主机中还部署有仓库。
可选地,容器镜像采用分层存储的方式存储在存储介质中;执行模块2102用于通过以下方式实现在主节点对应主机的存储介质中读取容器镜像:获取主节点对应主机的存储介质中存储的容器镜像的第一层标识信息,以及从节点对应主机的存储介质中存储的容器镜像的第二层标识信息;将第一层标识信息和第二层标识信息之间的不同部分确定为第三层标识信息;在主节点对应主机的存储介质中读取第三层标识信息对应的容器镜像。
图22示出了根据本公开实施例的容器镜像的读取装置的另一种结构示意图,该容器镜像的读取装置应用于Sidecar组件,Sidecar组件部署在主机中,主机中还部署有用于存储、管理和分发容器镜像的仓库。在图22中,该容器镜像的读取装置2200包括:
获取模块2201,用于获取健康监测信息,健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;
发送模块2202,用于向Operator组件发送健康监测信息,以便于Operator组件通过健康监测信息确定Sidecar组件为主节点或从节点。
可选地,Sidecar组件的数量为至少两个。
可选地,Sidecar组件为从节点对应的Sidecar组件;该容器镜像的读取装置2200还包括:存储模块(未示出),用于接收主节点对应的Sidecar组件发送的容器镜像;将接收到的容器镜像存储在从节点对应主机的存储介质中。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图23对本公开示例性实施方式的计算设备进行说明。
图23显示的计算设备2300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图23所示,计算设备2300以通用计算设备的形式表现。计算设备2300的组件可以包括但不限于:至少一个处理单元2301、至少一个存储单元2302,连接不同系统组件(包括处理单元2301和存储单元2302)的总线2303。其中,至少一个存储单元2302中存储有计算机执行指令;至少一个处理单元2301包括处理器,处理器执行该计算机执行指令,以实现上文描述的方法。
总线2303包括数据总线、控制总线和地址总线。
存储单元2302可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)2321和/或高速缓存存储器2322,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)2323。
存储单元2302还可以包括具有一组(至少一个)程序模块2324的程序/实用工具2325,这样的程序模块2324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备2300也可以与一个或多个外部设备2304(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口2305进行。并且,计算设备2300还可以通过网络适配器2306与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图23所示,网络适配器2306通过总线2303与计算设备2300的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备2300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了容器镜像的读取装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种容器镜像的读取方法,应用于Operator组件,所述读取方法包括:
在至少两个Sidecar组件中,确定主节点和从节点,所述至少两个Sidecar组件分别部署在至少两个主机中,所述至少两个主机中的每个主机中还部署有用于存储、管理和分发容器镜像的仓库;
响应于所述主节点对应主机的运行状态为运行正常,且所述主节点对应仓库的运行状态为运行正常,基于容器管理平台的外接应用程序接口,控制容器管理平台中的服务进程修改映射关系表,以使所述服务进程在接收到用户访问服务进程互联网协议地址IP的访问请求时,根据所述映射关系表将所述主节点对应仓库中存储的容器镜像返回给所述用户,所述映射关系表用于表示所述服务进程IP与所述主节点对应仓库的仓库IP之间的映射关系。
2.根据权利要求1所述的读取方法,所述至少两个主机中的每个主机中还部署有存储介质,在每个主机中,仓库挂载存储介质;所述在至少两个Sidecar组件中,确定主节点和从节点之后,所述读取方法还包括:
向所述主节点对应的Sidecar组件发送控制指令,以控制所述主节点对应的Sidecar组件执行数据同步操作,所述数据同步操作用于将所述主节点对应主机的存储介质中存储的容器镜像,同步至所述从节点对应主机的存储介质中;
其中,所述主节点对应主机的存储介质中存储的容器镜像是所述主节点对应的仓库写入的,所述主节点对应的仓库中存储的容器镜像是所述服务进程在接收到容器镜像写入请求时写入的,所述容器镜像写入请求中携带容器镜像。
3.根据权利要求1或2所述的读取方法,所述在至少两个Sidecar组件中,确定主节点和从节点,包括:
响应于首次接收到所述至少两个Sidecar组件发送的健康监测信息,确定至少两个接收时刻,所述健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;
在所述至少两个接收时刻中确定最早接收时刻;
在所述至少两个Sidecar组件中,将最早接收时刻对应的Sidecar组件确定为所述主节点,将其他Sidecar组件确定为所述从节点。
4.一种容器镜像的读取方法,应用于主节点对应的Sidecar组件,所述主节点对应的Sidecar组件部署在所述主节点对应的主机中,所述主节点对应的主机中还部署有用于存储、管理和分发容器镜像的仓库;所述读取方法包括:
接收来自Operator组件的控制指令;
基于所述控制指令,执行以下数据同步操作:
将所述主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中;
其中,所述主节点对应主机的存储介质中存储的容器镜像是所述主节点对应的仓库写入的,所述主节点对应的仓库中存储的容器镜像是服务进程在接收到容器镜像写入请求时写入的,所述容器镜像写入请求中携带容器镜像。
5.根据权利要求4所述的读取方法,所述将所述主节点对应主机的存储介质中存储的容器镜像,同步至从节点对应主机的存储介质中,包括:
在所述主节点对应主机的存储介质中读取容器镜像;
向所述从节点对应的Sidecar组件发送读取到的容器镜像,以使所述从节点对应的Sidecar组件将接收到的容器镜像存储在所述从节点对应主机的存储介质中;
其中,所述从节点对应的Sidecar组件部署在所述从节点对应的主机中,所述从节点对应的主机中还部署有仓库。
6.根据权利要求5所述的读取方法,容器镜像采用分层存储的方式存储在存储介质中;所述在所述主节点对应主机的存储介质中读取容器镜像,包括:
获取所述主节点对应主机的存储介质中存储的容器镜像的第一层标识信息,以及所述从节点对应主机的存储介质中存储的容器镜像的第二层标识信息;
将所述第一层标识信息和所述第二层标识信息之间的不同部分确定为第三层标识信息;
在所述主节点对应主机的存储介质中读取所述第三层标识信息对应的容器镜像。
7.一种容器镜像的读取方法,应用于Sidecar组件,所述Sidecar组件部署在主机中,所述主机中还部署有用于存储、管理和分发容器镜像的仓库;所述读取方法包括:
获取健康监测信息,所述健康监测信息包括主机标识信息、主机IP、主机运行状态、仓库标识信息、仓库IP和仓库运行状态;
向Operator组件发送所述健康监测信息,以便于所述Operator组件通过所述健康监测信息确定所述Sidecar组件为主节点或从节点。
8.一种容器镜像的读取系统,包括:
容器管理平台,所述容器管理平台提供服务进程,所述服务进程用于在接收到用户访问服务进程IP的访问请求时,根据映射关系表将主节点对应仓库中存储的容器镜像返回给所述用户,所述映射关系表用于表示所述服务进程IP与所述主节点对应仓库的仓库IP之间的映射关系;
主节点对应的第一主机,所述第一主机中部署有第一Sidecar组件,第一仓库,以及挂载所述第一仓库的第一存储介质,所述第一Sidecar组件用于执行权利要求4至6中任一项所述的容器镜像的读取方法,所述第一仓库用于存储、管理和分发容器镜像,所述第一存储介质用于存储所述第一仓库中的容器镜像;
从节点对应的第二主机,所述第二主机中部署有第二Sidecar组件,第二仓库,以及挂载所述第二仓库的第二存储介质,所述第二Sidecar组件用于执行权利要求7所述的容器镜像的读取方法,所述第二仓库用于存储、管理和分发容器镜像,所述第二存储介质用于存储所述第二仓库中的容器镜像;
Operator组件,用于执行权利要求1至3中任一项所述的容器镜像的读取方法;
显示组件,用于展示健康监测信息,以及生成运维管理操作指令,所述运维管理操作指令用于控制所述第一Sidecar组件停止执行数据同步操作,或控制所述服务进程删除所述映射关系表中所述主节点对应仓库的仓库IP。
9.一种介质,所述介质中存储有计算机执行指令,所述计算机执行指令被执行时用于实现如权利要求1至7中任一项所述的容器镜像的读取方法。
10.一种计算设备,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7中任一项所述的容器镜像的读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311670953.4A CN117632374A (zh) | 2023-12-06 | 2023-12-06 | 容器镜像的读取方法、介质、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311670953.4A CN117632374A (zh) | 2023-12-06 | 2023-12-06 | 容器镜像的读取方法、介质、装置和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632374A true CN117632374A (zh) | 2024-03-01 |
Family
ID=90019736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311670953.4A Pending CN117632374A (zh) | 2023-12-06 | 2023-12-06 | 容器镜像的读取方法、介质、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632374A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873535A (zh) * | 2024-03-08 | 2024-04-12 | 之江实验室 | 一种服务路由更新方法、装置、存储介质及电子设备 |
-
2023
- 2023-12-06 CN CN202311670953.4A patent/CN117632374A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873535A (zh) * | 2024-03-08 | 2024-04-12 | 之江实验室 | 一种服务路由更新方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868323B2 (en) | Orchestrated disaster recovery | |
JP6317856B2 (ja) | クラスタ間冗長構成におけるスムーズな制御部交代 | |
US10140303B1 (en) | Application aware snapshots | |
CN107707393B (zh) | 基于Openstack O版特性的多活系统 | |
US9137148B2 (en) | Information processing system and information processing apparatus | |
US9389892B2 (en) | Multiple points in time disk images for disaster recovery | |
US9710294B2 (en) | Methods and apparatus for providing hypervisor level data services for server virtualization | |
US6598174B1 (en) | Method and apparatus for storage unit replacement in non-redundant array | |
US8639976B2 (en) | Power failure management in components of storage area network | |
US20090055507A1 (en) | Storage and server provisioning for virtualized and geographically dispersed data centers | |
US20090158081A1 (en) | Failover Of Blade Servers In A Data Center | |
JP5015351B2 (ja) | 実行プログラムによる非ローカルブロックデータストレージへの信頼性の高いアクセスの実現 | |
US9223606B1 (en) | Automatically configuring and maintaining cluster level high availability of a virtual machine running an application according to an application level specified service level agreement | |
CN103164254A (zh) | 用于维持镜像虚拟环境中存储装置的一致性的方法和系统 | |
US9282021B2 (en) | Method and apparatus for simulated failover testing | |
US20220318104A1 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
CN109947591B (zh) | 数据库异地灾备系统及其部署方法、部署装置 | |
US20120151095A1 (en) | Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device | |
US9602341B1 (en) | Secure multi-tenant virtual control server operation in a cloud environment using API provider | |
CN117632374A (zh) | 容器镜像的读取方法、介质、装置和计算设备 | |
US20200249845A1 (en) | Operation Data Accessing Device And Accessing Method Thereof | |
US10862887B2 (en) | Multiple domain authentication using data management and storage node | |
CN113849136B (zh) | 一种基于国产平台的自动化fc块存储处理方法和系统 | |
CN106612314A (zh) | 基于虚拟机实现软件定义存储的系统 | |
US7603392B2 (en) | System, method and computer program product for storing transient state information |
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 |