CN107066296A - 一种集群节点中镜像的清理方法及装置 - Google Patents

一种集群节点中镜像的清理方法及装置 Download PDF

Info

Publication number
CN107066296A
CN107066296A CN201710209049.1A CN201710209049A CN107066296A CN 107066296 A CN107066296 A CN 107066296A CN 201710209049 A CN201710209049 A CN 201710209049A CN 107066296 A CN107066296 A CN 107066296A
Authority
CN
China
Prior art keywords
mirror image
intended application
upgrading
version information
version
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
Application number
CN201710209049.1A
Other languages
English (en)
Other versions
CN107066296B (zh
Inventor
赵慰
李军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201710209049.1A priority Critical patent/CN107066296B/zh
Publication of CN107066296A publication Critical patent/CN107066296A/zh
Application granted granted Critical
Publication of CN107066296B publication Critical patent/CN107066296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种集群节点中镜像的清理方法及装置,应用于集群节点,所述方法包括:针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。利用本发明实施例,减小了将来可能再次用到的镜像被误删的概率。

Description

一种集群节点中镜像的清理方法及装置
技术领域
本发明涉及服务器集群的信息处理技术领域,特别涉及一种集群节点中镜像的清理方法及装置。
背景技术
在当今信息时代,互联网获得了快速发展,并为人们的生产生活提供了诸多便利,人们也越来越多利用互联网获取相应的服务。
目前,服务器集群大量使用到Docker容器运行应用,进而提供服务。应用调度服务器会将应用部署到服务器集群的各个集群节点。具体的,调度服务器根据应用配置信息,选择一些集群节点,通知这些集群节点各自去镜像仓库服务器下载应用配置信息中镜像版本信息所对应的镜像,利用该版本镜像创建并启动Docker容器,从而能够在这些容器中运行应用。
使用Docker容器的服务器集群在长时间运行应用后,在此期间由于应用的升级,会积累大量的本地过期镜像。具体的,调度服务器在应用配置信息中的镜像版本信息被更新后,根据更新后的应用配置信息,重新选择一些集群节点,然后这些集群节点各自从仓库服务器中下载更新后的版本信息所对应的镜像,利用该新版本镜像创建并启动新的Docker容器,同时调度服务器通知运行升级前应用的那些集群节点终止自身利用旧版本镜像创建的容器,从而使得应用在新容器中运行。另外,即使应用不升级,但是某个容器由于自身或者所属集群节点的故障退出,调度服务器也会选择其他集群节点去启动一个新的容器,以保证提供服务的容器个数,此时,原集群节点同样会遗留镜像。
由此可见,现有技术在应用升级过程中,未删除旧版本镜像,这些旧版本镜像的存在,浪费了存储空间,故需要对旧版本镜像进行清理。旧版本镜像也可称为过期镜像,就是集群节点已经从远程的仓库服务器上下载并使用过的、版本信息较旧的镜像。
现有的镜像清理方法是每个集群节点检查自身存储于本地的镜像,按照制作镜像的时间或本地使用镜像的时间,删除制作时间或本地使用镜像的时间较早的镜像。但是,由于本地镜像能够起到缓存的作用,现有的镜像清理方法可能导致将来可能再次用到的镜像被误删掉,再次使用时需要重新下载,从而影响了容器的启动速度。
发明内容
本发明实施例的目的在于提供一种集群节点中镜像的清理方法及装置,以减小将来可能再次用到的镜像被误删的概率。
为达到上述目的,本发明实施例公开了一种集群节点中镜像的清理方法,应用于集群节点,方法包括:
针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;
在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
较佳的,所述针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,包括:
针对部署到服务器集群节点上的目标应用,接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;
记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
较佳的,所述方法还包括:
接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;
或,
接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
较佳的,所述针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,包括:
针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
较佳的,所述对其余版本的镜像清理,包括:
删除其余版本的镜像。
较佳的,所述执行镜像清理任务,包括:
按照预设的时间间隔,定时执行镜像清理任务。
为达到上述目的,本发明实施例提供了一种集群节点中镜像的清理装置,应用于集群节点,装置包括:
记录模块,用于针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;
清理模块,用于在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
较佳的,所述记录模块,具体用于:
针对部署到服务器集群节点上的目标应用,接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;
记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
较佳的,所述装置还包括:
接收模块,用于接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;
或,
接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
较佳的,所述记录模块,具体用于:
针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
较佳的,所述清理模块,具体用于:
在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,删除其余版本的镜像。
较佳的,所述清理模块,具体用于:
在按照预设的时间间隔,定时执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
由上述的技术方案可见,本发明实施例提供了一种集群节点中镜像的清理方法及装置,应用于集群节点,针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
可见,记录当前该应用对应镜像的最新版本信息和前一个旧版本的信息,在清理镜像时,保留该应用对应的最新版本镜像和可能随时用到的前一个旧版本镜像,对该应用对应的其他旧版本镜像进行清理。由于保留了将来可能会用到的前一个版本的镜像,在再次使用该镜像时无需重新下载,从而减小了将来可能再次用到的镜像被误删的概率,提高了容器的启动速度。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的集群节点中镜像的清理方法的一种流程示意图;
图2为本发明实施例提供的一种集群节点中镜像的清理原理示意图;
图3为本发明实施例提供的集群节点中镜像的清理方法的另一种流程示意图;
图4为本发明实施例提供的集群节点中镜像的清理装置的一种结构示意图;
图5为本发明实施例提供的集群节点中镜像的清理装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例提供的一种集群节点中镜像的清理方法及装置优选适用于集群节点。
下面首先对本发明实施例提供的一种集群节点中镜像的清理方法进行详细说明。
参见图1,图1为本发明实施例提供的集群节点中镜像的清理方法的一种流程示意图,可以包括如下步骤:
S101,针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
具体的,部署在集群节点上的每一个应用均可以作为目标应用。针对部署到服务器集群节点上的目标应用,可以理解为:针对部署到服务器集群节点上的每个应用。
具体的,针对部署到服务器集群节点上的目标应用,可以接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
具体的,调度服务器在应用配置信息中的镜像版本信息被更新后,会根据更新后的应用配置信息,重新选择一些集群节点,然后被重新选择的这些节点各自从仓库服务器中下载更新后的镜像版本信息所对应的镜像,利用该新版本镜像创建并启动新的Docker容器,同时调度服务器通知运行升级前应用的那些集群节点终止自身利用旧版本镜像创建的容器,从而使得升级后的应用在新容器中运行。
示例性的,集群节点上部署了A、B、C、D四个应用,每个应用均为目标应用。以下针对目标应用A进行详细说明,针对目标应用A的处理方法均适用于其他目标应用B、C和D。
针对部署到集群节点a、b、c、d上的目标应用A,应用配置信息(包含期望的容器总数量、每个容器需要的资源数量、镜像版本等一堆静态的数据)中的镜像版本v被更新后,此时调度服务器会根据更新后的应用配置信息,重新选择服务器集群中的一些集群节点a、b、e、f,然后集群节点a、b、e、f各自去从仓库服务器下载更新后的镜像版本v′所对应的镜像I(I为镜像的名称),利用镜像I创建并启动新的Docker容器。同时,调度服务器通知运行升级前应用A的集群节点a、b、c、d终止自身利用旧版本(即版本v)镜像创建的Docker容器,从而使得升级后的应用在新Docker容器中运行。
具体的,针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,可以记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
S102,在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
具体的,所述对其余版本的镜像清理,可以删除其余版本的镜像。
具体的,所述执行镜像清理任务,可以按照预设的时间间隔,定时执行镜像清理任务。
具体的,保留当前最新版本镜像的意义在于,当某个集群节点m发生死机等故障时,调度服务器需要重新选择一个节点n去重新启动一个新的Docker容器,以保证运行应用的容器数量不变。当节点m运行正常后,在某一时刻,若节点n也发生死机,调度服务器有可能会重新选择节点m去启动一个新的Docker容器,故而就可以直接使用保留下来的、本地存储的最新版本镜像,避免Docker容器的初始化启动速度受到影响。保留当前最新版本的前一旧版本镜像的意义在于,当部署的升级后的应用无法正常运行,需要对升级后的应用进行回滚时,可能会再次利用到本地存储的、当前最新版本的前一旧版本镜像,此时则无需去远程的仓库服务器中重新下载,对Docker容器的初始化启动速度亦不会造成影响。
示例性的,图2为本发明实施例提供的一种集群节点中镜像的清理原理示意图。如图2所示,应用调度服务器部署应用(假设为A)到服务器集群的其中3个集群节点,是指调度服务器根据应用配置信息,选择了该3个节点,并通知这些节点各自去下载应用配置信息中镜像版本信息所对应的镜像I。
每个集群节点到镜像仓库服务器下载部署应用所需的镜像I后,利用自身下载的该版本镜像I创建并启动一个新的Docker容器,进而在这些Docker容器中运行应用。
当应用调度器部署应用A到各个集群节点上时,可以将应用A对应的镜像名称及其版本信息发送给预先设置的、用于进行镜像名称和版本信息记录的组件,即该组件对该应用所使用的镜像名称I和镜像I的版本信息V0进行了记录。
当对应用A进行第一次升级时,记录应用A对应的新下载的、用于第一次升级的镜像的名称I(在实际应用中,镜像名称并不会发生变化)及其当前最新版本信息V1,以及本地存储的、当前最新版本V1的前一旧版本镜像的版本信息V0。在第一次升级后,此时该组件记录有I、V1和V0
在一段时间后,对应用A进行第二次升级时,记录应用A对应的第二次新下载的、用于第二次升级的镜像的名称I及其当前最新版本信息V2,以及本地存储的、当前最新版本V2的前一旧版本镜像的版本信息V1,并删除第一次升级时所记录的、用于第一次升级的镜像的名称I及其版本信息V1,以及用于第一次升级的镜像I的前一旧版本信息V0。在第二次升级后,此时该组件记录有I、V2和V1
以此类推,在对应用A进行第三次升级时,记录用于第三次升级的镜像的名称I及其当前最新版本信息V3,以及本地存储的、当前最新版本V3的前一旧版本镜像的版本信息V2,并删除第二次升级时所记录的、用于第二次升级的镜像的名称I及其版本信息V2,以及用于第二次升级的镜像I的前一旧版本信息V1。在第三次升级后,此时该组件记录有I、V3和V2。其中,假设应用在部署到这3个集群节点上后,每次升级时,应用调度服务器都选择这3个节点去下载新版本镜像,以创建并启动用于运行该次升级后的应用的新的Docker容器,即每次升级时,都将升级后的应用部署到这3个集群节点上去。可见,在每次对应用A升级后,相当于对记录的镜像I的版本信息进行了重新记录,这样使得每次升级后该组件记录的只有镜像名称I和I的当前最新版本信息V_current,以及当前最新版本V_current的前一旧版本信息V_previous。
同理,对于部署在集群节点上的其余目标应用B、C、D(假设集群节点上共部署了A、B、C、D四个应用),对每个目标应用,在每次升级时,记录该目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
对于应用A(假设一个月升级了三次)、B(假设一个月升级了一次)、C(假设一个月升级了两次)和D(假设一个月升级了四次),组件中记录有:应用A对应的镜像名称I、I的最新版本信息V3和前一旧版本镜像的版本信息V2,应用B对应的镜像名称J、J的最新版本信息j1和前一旧版本镜像的版本信息j0,应用C对应的镜像名称K、K的最新版本信息k2和前一旧版本镜像的版本信息k1,镜像名称L、L的最新版本信息l4和前一旧版本镜像的版本信息l3。此时,本地存储的所有镜像为:V0版本镜像、V1版本镜像、V2版本镜像、V3版本镜像、j0版本镜像、j1版本镜像、k0版本镜像、k1版本镜像、k2版本镜像、l0版本镜像、l1版本镜像、l2版本镜像和l3版本镜像、l4版本镜像。
按照预设的一个月的时间间隔,这3个集群节点定时执行镜像清理任务。以其中的一个集群节点a为例,在一个月后,节点a执行镜像清理任务时,先获取组件当前记录的目标应用A、B、C、D的镜像名称、该名称镜像的最新版本信息和前一旧版本镜像的版本信息。然后,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像(即V3版本镜像、j1版本镜像、k2版本镜像和l4版本镜像)和当前最新版本的前一旧版本镜像(即V2版本镜像、j0版本镜像、k1版本镜像和l3版本镜像),对其余的过期版本镜像进行清理,即删除掉本地存储的V0版本镜像、V1版本镜像、V2版本镜像、k0版本镜像、l0版本镜像、l1版本镜像和l2版本镜像,根据记录的镜像I、J、K和L的版本信息,只保留对应的当前最新版本镜像和前一旧版本镜像。
可见,记录当前该应用对应镜像的最新版本信息和前一个旧版本的信息,在清理镜像时,保留该应用对应的最新版本镜像和可能随时用到的前一个旧版本镜像,对该应用对应的其他旧版本镜像进行清理。由于保留了将来可能会用到的前一个版本的镜像,在再次使用该镜像时无需重新下载,从而减小了将来可能再次用到的镜像被误删的概率,提高了容器的启动速度。
参见图3,图3为本发明实施例提供的集群节点中镜像的清理方法的另一种流程示意图,本发明图3所示实施例在图1所示实施例的基础上,增加步骤S103:接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;或,接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
在实际应用中,如果存在之前未选择但回滚选择了的新的集群节点,应用调度服务器还需要向新的集群节点发送容器启动指令,通知新的集群节点各自去下载记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,进而完成针对整个升级后的目标应用的回滚。
具体的,如果应用的owner(应用的所有者,即用户)出于自身的意愿(诸如出现升级后的应用无法正常运行或用户对升级后的应用不满意等情况),可以通过调度服务器提供的按钮、页面或输入框等通知方式,通知调度服务器,以使其确定对升级后的应用进行回滚。
应用调度服务器在确定升级后的应用需要回滚后,会向之前选择的部署了升级后的应用的集群节点发送容器终止指令,通知这些集群节点终止掉用于运行升级后的应用的Docker容器。然后,应用调度服务器会在服务器集群中重新选择一些回滚所需的集群节点,向这些重新选择的集群节点发送容器启动指令,通知重选的这些集群节点,利用当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器。
具体的,针对重新选择的回滚所需的每个集群节点,如果该集群节点之前部署过升级前的目标应用,则该集群节点可以直接利用本地存储的、当前最新版本的前一旧版本信息所对应的镜像,去创建并启动用于运行升级前的目标应用的新Docker容器;如果该集群节点之前未部署过本次升级前的目标应用,是调度服务器重选的新的集群节点,则该集群节点可以去镜像仓库服务器中下载记录的当前最新版本的前一旧版本信息所对应的镜像,然后利用下载的镜像去创建并启动用于运行升级前的目标应用的新Docker容器。
可见,记录当前该应用对应镜像的最新版本信息和前一个旧版本的信息,在清理镜像时,保留该应用对应的最新版本镜像和可能随时用到的前一个旧版本镜像,对该应用对应的其他旧版本镜像进行清理。由于保留了将来可能会用到的前一个版本的镜像,在再次使用该镜像时无需重新下载,从而减小了将来可能再次用到的镜像被误删的概率,提高了容器的启动速度。
参见图4,图4为本发明实施例提供的集群节点中镜像的清理装置的一种结构示意图,与图1所示的流程相对应,该清理装置可以包括:记录模块401和清理模块402。
所述记录模块401,用于针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;
具体的,所述记录模块,具体可以用于:
针对部署到服务器集群节点上的目标应用,接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;
记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
具体的,所述记录模块,具体可以用于:
针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
所述清理模块402,用于在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
具体的,所述清理模块,具体可以用于:
在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,删除其余版本的镜像。
具体的,所述清理模块,具体可以用于:
在按照预设的时间间隔,定时执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
可见,记录当前该应用对应镜像的最新版本信息和前一个旧版本的信息,在清理镜像时,保留该应用对应的最新版本镜像和可能随时用到的前一个旧版本镜像,对该应用对应的其他旧版本镜像进行清理。由于保留了将来可能会用到的前一个版本的镜像,在再次使用该镜像时无需重新下载,从而减小了将来可能再次用到的镜像被误删的概率,提高了容器的启动速度。
参见图5,图5为本发明实施例提供的集群节点中镜像的清理装置的另一种结构示意图,与图3所示的流程相对应,本发明图5所示实施例在图4所示实施例的基础上,增加了接收模块403,用于接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;或,接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
可见,记录当前该应用对应镜像的最新版本信息和前一个旧版本的信息,在清理镜像时,保留该应用对应的最新版本镜像和可能随时用到的前一个旧版本镜像,对该应用对应的其他旧版本镜像进行清理。由于保留了将来可能会用到的前一个版本的镜像,在再次使用该镜像时无需重新下载,从而减小了将来可能再次用到的镜像被误删的概率,提高了容器的启动速度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种集群节点中镜像的清理方法,应用于集群节点,其特征在于,所述方法包括:
针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;
在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
2.根据权利要求1所述的方法,其特征在于,所述针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,包括:
针对部署到服务器集群节点上的目标应用,接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;
记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;
或,
接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
4.根据权利要求1所述的方法,其特征在于,所述针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,包括:
针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
5.根据权利要求1所述的方法,其特征在于,所述对其余版本的镜像清理,包括:
删除其余版本的镜像。
6.根据权利要求1所述的方法,其特征在于,所述执行镜像清理任务,包括:
按照预设的时间间隔,定时执行镜像清理任务。
7.一种集群节点中镜像的清理装置,应用于集群节点,其特征在于,所述装置包括:
记录模块,用于针对部署到服务器集群节点上的目标应用,当对目标应用进行升级时,记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息;
清理模块,用于在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
8.根据权利要求7所述的装置,其特征在于,所述记录模块,具体用于:
针对部署到服务器集群节点上的目标应用,接收应用调度服务器发送的针对所述目标应用的升级指令,根据所述升级指令,下载所述目标应用对应的用于升级的当前最新版本的镜像,创建并启动用于运行升级后的目标应用的新Docker容器;所述的升级指令为:所述调度服务器在确定所述目标应用需要升级后,选择所述目标应用对应的集群节点后发送给选择的集群节点的;
记录所述目标应用对应的新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收所述应用调度服务器发送的针对所述目标应用的容器终止指令,根据所述容器终止指令,终止目标应用的Docker容器;所述容器终止指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择的集群节点发送的;
或,
接收所述应用调度服务器发送的针对所述目标应用的容器启动指令,根据所述容器启动指令,利用记录的当前最新版本的前一旧版本信息所对应的镜像,创建并启动用于运行升级前的目标应用的新Docker容器,以完成对升级后的目标应用的回滚;所述容器启动指令为:所述应用调度服务器在确定所述目标应用需要回滚后,向之前选择且回滚也选择的集群节点发送的。
10.根据权利要求7所述的装置,其特征在于,所述记录模块,具体用于:
针对部署到服务器集群节点上的目标应用,在每次对目标应用进行升级时,记录所述目标应用对应的本次新下载的、用于升级的镜像的名称及其当前最新版本信息,以及当前最新版本的前一旧版本镜像的版本信息,并删除上一次升级时所记录的、用于上一次升级的镜像的名称及其版本信息,以及所述用于上一次升级的镜像的前一旧版本信息。
11.根据权利要求7所述的装置,其特征在于,所述清理模块,具体用于:
在执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,删除其余版本的镜像。
12.根据权利要求7所述的装置,其特征在于,所述清理模块,具体用于:
在按照预设的时间间隔,定时执行镜像清理任务时,根据当前记录的所述镜像名称、所述最新版本信息和所述最新版本的前一旧版本镜像的版本信息,针对查找到的本地存储的所有镜像,保留其中的当前最新版本镜像和当前最新版本的前一旧版本镜像,对其余版本的镜像进行清理。
CN201710209049.1A 2017-03-31 2017-03-31 一种集群节点中镜像的清理方法及装置 Active CN107066296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710209049.1A CN107066296B (zh) 2017-03-31 2017-03-31 一种集群节点中镜像的清理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710209049.1A CN107066296B (zh) 2017-03-31 2017-03-31 一种集群节点中镜像的清理方法及装置

Publications (2)

Publication Number Publication Date
CN107066296A true CN107066296A (zh) 2017-08-18
CN107066296B CN107066296B (zh) 2020-09-25

Family

ID=59602132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710209049.1A Active CN107066296B (zh) 2017-03-31 2017-03-31 一种集群节点中镜像的清理方法及装置

Country Status (1)

Country Link
CN (1) CN107066296B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284204A (zh) * 2018-09-10 2019-01-29 福建星瑞格软件有限公司 一种基于虚拟化计算的大数据平台运维方法以及系统
CN109376010A (zh) * 2018-09-28 2019-02-22 上海思询信息科技有限公司 一种基于Openstack实现跨集群资源迁移的方法
CN109542677A (zh) * 2018-11-05 2019-03-29 北京炎黄盈动科技发展有限责任公司 一种高可靠容器内应用介质升级方法、装置及存储介质
CN110336699A (zh) * 2019-07-09 2019-10-15 北京和利时智能技术有限公司 自动化部署网关系统的方法、装置及系统
CN110442480A (zh) * 2019-07-31 2019-11-12 中国工商银行股份有限公司 一种镜像数据清理方法、装置及系统
CN111324361A (zh) * 2018-12-14 2020-06-23 中国移动通信集团北京有限公司 一种应用升级方法及设备
CN111752676A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种基于Docker的同名镜像清除方法、系统、终端及存储介质
CN111813601A (zh) * 2020-07-09 2020-10-23 中国工商银行股份有限公司 有状态分布式集群的微服务回滚方法及装置
WO2020249036A1 (zh) * 2019-06-12 2020-12-17 阿里巴巴集团控股有限公司 管理镜像仓库的方法、装置、电子设备及可读存储介质
CN112860282A (zh) * 2021-03-31 2021-05-28 中国工商银行股份有限公司 集群插件的升级方法、装置和服务器
WO2023142924A1 (zh) * 2022-01-29 2023-08-03 京东方科技集团股份有限公司 电子地图运维方法、电子地图数据使用方法及服务系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002011A (zh) * 2012-10-29 2013-03-27 北京奇虎科技有限公司 基于服务器的数据更新方法和服务器
CN106209827A (zh) * 2016-07-08 2016-12-07 安徽四创电子股份有限公司 基于容器云技术的虚拟卡口系统及其服务创建方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002011A (zh) * 2012-10-29 2013-03-27 北京奇虎科技有限公司 基于服务器的数据更新方法和服务器
CN106209827A (zh) * 2016-07-08 2016-12-07 安徽四创电子股份有限公司 基于容器云技术的虚拟卡口系统及其服务创建方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284204A (zh) * 2018-09-10 2019-01-29 福建星瑞格软件有限公司 一种基于虚拟化计算的大数据平台运维方法以及系统
CN109376010A (zh) * 2018-09-28 2019-02-22 上海思询信息科技有限公司 一种基于Openstack实现跨集群资源迁移的方法
CN109542677A (zh) * 2018-11-05 2019-03-29 北京炎黄盈动科技发展有限责任公司 一种高可靠容器内应用介质升级方法、装置及存储介质
CN111324361A (zh) * 2018-12-14 2020-06-23 中国移动通信集团北京有限公司 一种应用升级方法及设备
WO2020249036A1 (zh) * 2019-06-12 2020-12-17 阿里巴巴集团控股有限公司 管理镜像仓库的方法、装置、电子设备及可读存储介质
CN110336699A (zh) * 2019-07-09 2019-10-15 北京和利时智能技术有限公司 自动化部署网关系统的方法、装置及系统
CN110442480A (zh) * 2019-07-31 2019-11-12 中国工商银行股份有限公司 一种镜像数据清理方法、装置及系统
CN110442480B (zh) * 2019-07-31 2022-04-15 中国工商银行股份有限公司 一种镜像数据清理方法、装置及系统
CN111752676A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种基于Docker的同名镜像清除方法、系统、终端及存储介质
CN111752676B (zh) * 2020-05-28 2022-06-21 苏州浪潮智能科技有限公司 一种基于Docker的同名镜像清除方法、系统、终端及存储介质
CN111813601A (zh) * 2020-07-09 2020-10-23 中国工商银行股份有限公司 有状态分布式集群的微服务回滚方法及装置
CN111813601B (zh) * 2020-07-09 2023-08-08 中国工商银行股份有限公司 有状态分布式集群的微服务回滚方法及装置
CN112860282A (zh) * 2021-03-31 2021-05-28 中国工商银行股份有限公司 集群插件的升级方法、装置和服务器
CN112860282B (zh) * 2021-03-31 2024-02-09 中国工商银行股份有限公司 集群插件的升级方法、装置和服务器
WO2023142924A1 (zh) * 2022-01-29 2023-08-03 京东方科技集团股份有限公司 电子地图运维方法、电子地图数据使用方法及服务系统

Also Published As

Publication number Publication date
CN107066296B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN107066296A (zh) 一种集群节点中镜像的清理方法及装置
CN105528368B (zh) 一种数据库迁移方法及装置
US11662996B2 (en) System and method for downgrading applications
US8645837B2 (en) Graphical user interface for managing services in a distributed computing system
KR101062562B1 (ko) 타겟 컴퓨터의 인-플레이스 이미징 방법 및 다수의 타겟 컴퓨터 이미징 방법
US7539985B2 (en) Systems and methods for dynamic component versioning
US6189051B1 (en) System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
US9367400B2 (en) System reset
CN104011677B (zh) 利用流技术在多个目标上部署软件映像的方法及系统
CN107111494B (zh) 显露通用应用的视觉表示
KR20110030447A (ko) 가상 머신 및 애플리케이션 수명들의 동기화
CN101095111A (zh) 一种维护计算装置中的应用程序的方法
WO2019182796A1 (en) Configurable recovery states
CN108228206A (zh) 一种应用程序管理方法及装置
CN104793981B (zh) 一种虚拟机集群的在线快照管理方法及装置
CN106504026A (zh) 一种数据获取方法和装置
JP5998566B2 (ja) 移動制御プログラム、移動制御方法および制御装置
CN109508223A (zh) 一种虚拟机批量创建方法、系统及设备
US8140641B2 (en) Managing media synchronization
CN114816272B (zh) Kubernetes环境下的磁盘管理系统
CN107430519B (zh) 内容部署、扩展和遥测
CN107667343A (zh) 按需加载资源
CN106776296A (zh) 覆盖率检测的启动方法、装置和启动设备
CN113892083A (zh) 用于以自动化方式注入事务性服务的自动化系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant