CN115827162A - 一种智能化处理镜像仓库数据方法、装置、介质及设备 - Google Patents
一种智能化处理镜像仓库数据方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115827162A CN115827162A CN202211589682.5A CN202211589682A CN115827162A CN 115827162 A CN115827162 A CN 115827162A CN 202211589682 A CN202211589682 A CN 202211589682A CN 115827162 A CN115827162 A CN 115827162A
- Authority
- CN
- China
- Prior art keywords
- mirror
- mirror image
- image
- warehouse
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 title claims abstract description 37
- 238000004140 cleaning Methods 0.000 claims abstract description 141
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012163 sequencing technique Methods 0.000 claims description 15
- 230000010354 integration Effects 0.000 claims description 10
- 230000002085 persistent effect Effects 0.000 claims 2
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种智能化处理镜像仓库数据方法、装置、介质及设备,其中方法包括:在到达预先创建的镜像仓库清理任务的清理时间时,启动镜像仓库清理任务,并获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表;根据镜像名称列表和各镜像版本列表确定镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除;启动镜像仓库的垃圾清理,对已删除的历史镜像版本进行清理。通过从每个镜像名称对应的镜像版本列表中删除更新时间靠前、且无需再保存的历史镜像版本,并启动镜像仓库的垃圾清理彻底将已删除的历史镜像版本从镜像仓库中清除,释放镜像仓库的存储空间,改善镜像仓库的稳定性本申请具有的效果。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种智能化处理镜像仓库数据方法、装置、介质及设备。
背景技术
随着移动互联网的高速发展,软件服务也在快速的进行迭代,软件服务在迭代的同时,软件服务代码版本也在快速变更,并且不断执行容器镜像打包和同步存储到镜像仓库的动作。其中,容器是目前IT运维的关键部分,容器镜像包含打包的应用程序及其依赖关系,以及有关启动时所运行的进程信息。但是容器镜像的数量越来越多,越来越多打包的容器镜像存储到镜像仓库中,有限的镜像仓库的存储容量越来越小,导致镜像仓库的稳定性较差。
发明内容
为了改善镜像仓库的稳定性,本申请提供一种智能化处理镜像仓库数据方法、装置、介质及设备。
在本申请的第一方面提供了一种智能化处理镜像仓库数据方法,具体包括:
在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,并获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表;
根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除;
启动所述镜像仓库的垃圾清理,对已删除的所述历史镜像版本进行清理。
通过采用上述技术方案,建立定时的镜像仓库清理任务,当达到镜像仓库清理任务的计划清理时间时,开始启动镜像仓库清理任务,进入服务器的镜像仓库中获取打包的各种镜像的镜像名称列表以及每个镜像下的因应用迭代产生的多个镜像版本,并组成镜像版本列表。接着从每个镜像名称对应的镜像版本列表中删除更新时间靠前、且无需再保存的历史镜像版本,最后通过垃圾清理机制将已删除的历史镜像版本从回收站中清理,彻底将已删除的历史镜像版本从镜像仓库中清除,释放镜像仓库的存储空间,改善镜像仓库的稳定性。
可选的,所述在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,包括:
在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动所述镜像仓库清理任务。
通过采用上述技术方案,如果当前时间达到了镜像仓库清理任务的清理时间,持续集成/持续部署模块即CI/CD模块开启工作,发出镜像仓库清理任务的执行命令,基于执行命令,镜像仓库清理任务被启动开始对镜像仓库的历史镜像版本进行清理,CI/CD部署的自动化的流水线,能够提升镜像仓库的清理效率。
可选的,所述在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动所述镜像仓库清理任务之后,还包括:
通过Gitlab-Runner工具生成执行所述镜像仓库清理任务的运行环境;
获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表,包括:
基于所述运行环境,获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表。
通过采用上述技术方案,启动镜像仓库清理任务后,Gitlab-Runner工具随即被启动,它是配合持续集成/持续部署模块自动化部署的执行工具,通过Gitlab-Runner工具生成一个独立的运行环境,使得镜像仓库清理任务能够在独立的运行环境中运行,从而较稳定的执行镜像仓库清理的操作。
可选的,所述获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表,包括:
通过镜像仓库接口登录所述镜像仓库;
统计所述镜像仓库中的项目名称,从所述项目名称中查找镜像名称得到镜像名称列表;
搜索所述镜像名称列表中每个镜像名称对应的镜像版本,得到每个镜像名称对应的镜像版本列表。
通过采用上述技术方案,镜像仓库清理任务启动后,通过镜像仓库接口登录到服务器的镜像仓库中,获取镜像仓库中存储的所有项目的项目名称,从多个项目名称中不同的镜像名称组成镜像名称列表,接着统计每个镜像名称下对应的镜像版本,最后得到各镜像名称分别对应的镜像版本列表,方便后续对每个镜像的镜像版本进行历史版本的删除,起到释放镜像仓库存储空间的作用。
可选的,所述镜像仓库清理任务还包括各镜像名称对应镜像版本的预留个数,所述根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除,包括:
将每个所述镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表,所述更新时间越靠后,排序越靠前;
根据各镜像名称对应镜像版本的预留个数,将所述排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,将所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除。
通过采用上述技术方案,镜像仓库中镜像名称列表和每个镜像名称对应的镜像版本列表确定后,对每个镜像版本列表中的镜像版本进行排序,镜像版本的更新时间越靠后,说明镜像版本越新,更新时间越靠后,说明镜像版本越旧。接着将排序后的每个镜像版本列表中从前往后保留最新的预留个数的镜像版本。最后将每个镜像版本列表中除保留镜像版本之外的较旧的历史镜像版本进行删除,释放存储空间。
可选的,所述将每个所述镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表之前,还包括:
获取所述镜像仓库的可用存储容量;
根据所述可用存储容量调整所述镜像仓库清理任务中的所述预留个数为第一数量;
根据各镜像名称对应镜像版本的预留个数,将所述排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除,包括:
根据各镜像名称对应镜像版本的第一数量,将所述排序后的镜像版本列表中靠前的第一数量的镜像版本确定为保留镜像版本,将所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除。
通过采用上述技术方案,对镜像版本列表中镜像版本进行排序之前,统计当前时间镜像仓库已使用的存储容量,进而得到可用存储容量。如果可用存储容量较大,那么可以适当减少历史镜像版本的删除,将预设的镜像版本的预留个数增加至第一数量;如果可用存储容量较小,那么可以适当增加历史镜像版本的删除,将预设的镜像版本的预留个数减小至第一数量,从而合理的协调好镜像仓库的存储空间与预留镜像版本个数的关系。
可选的,所述根据所述可用存储容量调整所述镜像仓库清理任务中的所述预留个数为第一数量之后,还包括:
统计所述镜像名称列表中的镜像名称的第二数量;
将所述第二数量与数量阈值进行对比,若所述第二数量小于数量阈值,则维持所述第一数量不变;
若所述第二数量不小于数量阈值,则降低所述第一数量。
通过采用上述技术方案,将镜像版本的预留个数调整为第一数量后,统计镜像名称列表中不同镜像名称的第二数量,即打包上传的不同应用程序的数量。如果第二数量小于数量阈值,说明镜像仓库中的不同镜像的数量较少,则无需再对预留个数进行调整;如果第二数量大于或等于数量阈值,说明镜像仓库中的不同镜像的数量较多,下次应用迭代的时候,产生的镜像版本会较多,需要降低预留个数,增加每个镜像的历史镜像版本的删除数量,使得镜像仓库腾出较大的存储空间。
在本申请的第二方面提供了一种智能化处理镜像仓库数据装置,具体包括:
列表获取模块,用于在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,并获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表;
历史删除模块,用于根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除;
垃圾清理模块,用于启动所述镜像仓库的垃圾清理,对已删除的所述历史镜像版本进行清理。
通过采用上述技术方案,列表获取模块在清理时间达到是,启动镜像仓库清理任务,登录镜像仓库获取到镜像仓库中镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表,接着历史删除模块开启工作,对每个镜像版本列表中预留个数之外的历史镜像版本进行删除,最后由垃圾清理模块启动镜像仓库的垃圾清理,将已删除的历史镜像版本从回收站彻底进行清理,释放镜像仓库的存储空间,改善镜像仓库的稳定性。
综上所述,本申请包括以下至少一种有益技术效果:
建立定时的镜像仓库清理任务,当达到镜像仓库清理任务的计划清理时间,开始启动镜像仓库清理任务,进入服务器的镜像仓库中获取打包的各种镜像的镜像名称列表以及每个镜像下的因应用迭代产生的多个镜像版本,并组成镜像版本列表。接着从每个镜像名称对应的镜像版本列表中删除更新时间靠前、且无需再保存的历史镜像版本,最后通过垃圾清理机制将已删除的历史镜像版本从回收站中清理,彻底将已删除的历史镜像版本从镜像仓库中清除,释放镜像仓库的存储空间,改善镜像仓库的稳定性。
附图说明
图1是本申请实施例提供的一种智能化处理镜像仓库数据方法的流程示意图;
图2是本申请实施例提供的另一种智能化处理镜像仓库数据方法的流程示意图;
图3是本申请实施例提供的又一种智能化处理镜像仓库数据方法的流程示意图;
图4是本申请实施例提供的一种智能化处理镜像仓库数据装置的结构示意图;
图5是本申请实施例提供的另一种智能化处理镜像仓库数据装置的结构示意图。
附图标记说明:11、列表获取模块;12、历史删除模块;13、垃圾清理模块。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“示性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
参见图1,本申请实施例公开了一种智能化处理镜像仓库数据方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的智能化处理镜像仓库数据装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S101:在到达预先创建的镜像仓库清理任务的清理时间时,启动镜像仓库清理任务,并获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表。
具体的,镜像仓库(harbor)是镜像的集合,用于存储、管理容器镜像。可以在控制台上轻松存储、管理、部署容器镜像。其中,容器镜像其实就是镜像。容器镜像(containerimage)包含一个打包的应用程序,以及它的依赖关系,还有它启动时运行的进程信息。当应用程序进行版本迭代时,也会打包成容器镜像,即镜像对应的镜像版本。每个镜像对应一个镜像名称,每个镜像名称对应一个镜像版本列表,在每个镜像版本列表中包含该镜像的多个镜像版本,镜像版本列表又称Tag列表。
通过运行在服务器上的gitlab平台预先创建配置镜像仓库清理任务,其中,gitlab平台为一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。在其他实施例中,也可以通过运行在服务器上的BitBucket代码管理平台来创建镜像仓库清理任务。
需要说明的是,镜像仓库清理任务中预设有清理镜像仓库的清理时间和每个镜像名称对应镜像版本的预留个数,例如设置每5天凌晨1点执行镜像仓库清理任务,对镜像仓库中历史镜像版本进行清理;再例如,镜像仓库中每个镜像对应的镜像版本的预留个数为50个,即每个镜像保留最新的50个镜像版本。在其他实施例中,预留个数也可以为60个或40个,也可以每3天早8点执行镜像仓库清理任务。
镜像仓库清理任务创建后,到达预先创建的镜像仓库清理任务的清理时间时,会启动镜像仓库清理任务,接着登录到镜像仓库,通过预置的docker软件利用docker images命令获取到镜像仓库中的镜像名称列表,最后利用应用程序编程接口(ApplicationProgramming Interface,API)调取每个镜像对应的镜像版本列表。此为现有技术,在此不再赘述。
S102:根据镜像名称列表和各镜像版本列表确定镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除。
具体的,镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表获取后,将镜像版本列表中的各个镜像版本进行排序,其中,镜像版本列表还包括每个镜像版本的更新时间。将各个镜像版本按照更新时间先后顺序进行排序,更新时间越靠前,说明更新时间越早,镜像版本越旧,排序则越靠前。接着从排序后的镜像版本列表中按照先后顺序对较旧的镜像版本进行删除,直到镜像仓库中剩余预设的预留个数的镜像版本,将较新的镜像版本进行保留。
例如,镜像名称A,对应的镜像版本为:A1_2022-06-13,A2_2022-08-13,A3_2022-05-13……,按照各个镜像版本的更新时间进行排序,镜像版本A3的更新时间最靠前(最早),镜像版本A3最旧,镜像版本A2的更新时间最靠后(最晚),镜像版本A2最新。依次排序后为:A3_2022-05-13,A1_2022-06-13,A2_2022-08-13……。将排序后的镜像版本列表中镜像版本A3,A1,A2等进行删除,保留最后镜像版本较新、更新时间靠后(更新时间较晚)的50个镜像版本。
S103:启动镜像仓库的垃圾清理,对已删除的历史镜像版本进行清理。
具体的,镜像仓库的垃圾清理,又称为垃圾回收(Garbage Collection ,GC),是一种自动的存储管理机制。当一些被占用的内存不再需要时,将其释放,以让出空间,这种存储管理机制,就叫做垃圾回收机制。启动镜像仓库Harbor的垃圾清理后,从服务器的后端存储中清理每个镜像的已经删除的历史镜像版本,并且在执行垃圾清理操作之前镜像仓库Harbor不会中断运行。需要说明的是,上述执行垃圾清理的过程,可以理解为已删除的历史镜像版本只是从镜像仓库中清理到回收站,并非真正意义上被删除,需要通过垃圾清理操作,将回收站中的垃圾进行彻底的删除,以达到真正释放镜像仓库的存储空间的目的。
参见图2,本申请实施例公开了另一种智能化处理镜像仓库数据方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的智能化处理镜像仓库数据装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S201:在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动镜像仓库清理任务。
具体的,持续集成(Continuous Integration,CI)/持续部署(ContinuousDeployment,CD)模块,即CI/CD模块,CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,CI/CD的核心概念是持续集成和持续部署。指在开发过程中自动执行一系列从开发到部署的过程中,尽量减少人工的介入。当前时间如果达到镜像仓库清理任务的清理时间时,CI/CD模块构建CI/CD流水线(一套关于清理镜像仓库的自动化流程),并向镜像仓库清理任务发出清理的执行命令,进而启动镜像仓库清理任务。此为现有技术,在此不再赘述。
S202:通过Gitlab-Runner工具生成执行镜像仓库清理任务的运行环境。
具体的,Gitlab-Runner能为GitLab平台提供CI/CD执行环境,是GitLab的一个工具包。通过Gitlab-Runner可以自动化部署任务的执行环境。即生成执行镜像仓库清理任务的运行环境。需要说明的是,例如,编写了一条自动化部署的CI/CD流水线,包含了清理镜像仓库的任务,这个任务就在Gitlab-Runner生成的运行环境下执行。如果没有Gitlab-Runner工具,CI/CD无法运行,镜像仓库清理任务也无法正常执行。
S203:基于运行环境,获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表。
在一个可实现的方式中,通过镜像仓库接口登录镜像仓库;
统计镜像仓库中的项目名称,从项目名称中查找镜像名称得到镜像名称列表;
搜索镜像名称列表中每个镜像名称对应的镜像版本,得到每个镜像名称对应的镜像版本列表。
具体的,Gitlab-Runner提供了镜像仓库清理任务执行的运行环境后,基于此运行环境,通过镜像仓库接口登录到镜像仓库中,其中,镜像仓库接口为API接口。接着通过调用API先获取到镜像仓库中项目ID和对应的项目名称,从多个项目名称中查找到包含“tag”的项目名称,即不同的镜像名称,组成得到镜像名称列表。最后通过docker软件的dockersearch命令,搜索每个镜像名称对应的多个镜像版本,得到每个镜像名称对应的镜像版本列表。
S204:将每个镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表,更新时间越靠后,排序越靠前。
S205:根据各镜像名称对应镜像版本的预留个数,将排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,排序后的镜像版本列表中保留镜像版本之外的镜像版本确定为镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除。
具体的,得到每个镜像名称对应的镜像版本列表后,由于每个镜像版本列表中除了包含各个镜像版本,还包括各个镜像版本对应的更新时间。按照更新时间的先后顺序进行排序,更新时间越在先,在镜像版本列表中的排序越靠后,说明此镜像版本较旧;更新时间越在后,在镜像版本列表中排序越靠前,说明此镜像版本较新。其中,各镜像名称对应镜像版本的预留个数为50个,即每个镜像对应的镜像版本列表中只保留50个更新时间较新的镜像版本。接着将排序后的镜像版本列表中前50个镜像版本作为保留镜像版本,不进行删除。除保留镜像版本之外的镜像版本均确定为这个镜像可删除的历史镜像版本,并从镜像仓库中删除。
S206:启动镜像仓库的垃圾清理,对已删除的历史镜像版本进行清理。
具体的,可参考步骤S103,在此不再赘述。
参见图3,本申请实施例公开了又一种智能化处理镜像仓库数据方法的流程示意图,可依赖于计算机程序实现,也可运行于基于冯诺依曼体系的智能化处理镜像仓库数据装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,具体包括:
S301:在到达预先创建的镜像仓库清理任务的清理时间时,启动镜像仓库清理任务,并获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表。
具体的,可参考步骤S101,在此不再赘述。
S302:获取镜像仓库的可用存储容量。
S303:根据可用存储容量调整镜像仓库清理任务中的预留个数为第一数量。
具体的,通过du命令可以获取到镜像仓库已经使用的存储容量,通过df命令获取服务器分配给镜像仓库的磁盘容量,即镜像仓库的总容量,将镜像仓库的总容量与已经使用的存储容量作差,得到镜像仓库的可用存储容量。接着将可用存储容量与最小阈值进行对比,最小阈值为可用存储容量的最小值,可用存储容量小于最小阈值,说明镜像仓库所剩的可用存储容量较小,预设的各镜像名称对应镜像版本的预留个数偏多,会导致镜像仓库的存储空间释放程度较低,因此将镜像仓库清理任务中的预留个数减少至第一数量,此时第一数量小于预设的预留个数,增加每个镜像对应的镜像版本的删除数量;如果可用存储容量大于最大阈值,最大阈值为可用存储容量的最大值,说明可用存储容量较大,预留个数偏少,将预留个数增加至第一数量,此时第一数量大于预设的预留个数,减少每个镜像对应的镜像版本的删除数量;如果可用存储容量处于最小阈值与最大阈值之间,则维持预留个数不变,此时第一数量等于预设的预留个数。
例如,可用存储容量为1500M,最小阈值为500M,最大阈值为1000M,预留个数为50个,可用存储容量1500M大于最大阈值1000M,可用存储容量较大,镜像仓库清理力度无需过大,则将预留个数降增加至第一数量60个。
S304:统计镜像名称列表中的镜像名称的第二数量。
S305:将第二数量与数量阈值进行对比,若第二数量小于数量阈值,则维持第一数量不变。
S306:若第二数量不小于数量阈值,则降低第一数量。
具体的,根据镜像仓库的可用存储容量调整预留个数为第一数量后,通过预设的计数工具统计镜像名称列表中不同的镜像名称的数量,即第二数量。接着将第二数量与数量阈值对比,数量阈值为判断镜像名称数量程度的临界值。如果第二数量小于数量阈值,说明镜像仓库存在的不同镜像的数量较少,那么维持当前的第一数量不变,作为最终的预留个数,能够达到较好释放镜像仓库存储空间的目的。
如果第二数量大于或者等于数量阈值,说明镜像仓库存在的不同镜像的数量较多,继续维持当前的预留个数不变,那么清理之后,由于镜像基数较大,下次应用迭代,各个镜像产生的镜像版本较多,易于再次造成镜像仓库的存储空间较小,影响稳定性。因此,此时需要增大镜像仓库清理力度,对第一数量进行降低,减少镜像版本保留的个数,得到最终的预留个数。按照此预留个数确定可删除的历史镜像版本,可以有效地对镜像仓库的存储空间进行释放。
S307:将每个镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表,更新时间越靠后,排序越靠前。
具体的,可参考步骤S204,在此不再赘述。
S308:根据各镜像名称对应镜像版本的第一数量,将排序后的镜像版本列表中靠前的第一数量的镜像版本确定为保留镜像版本,排序后的镜像版本列表中保留镜像版本之外的镜像版本确定为镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除。
具体的,根据第二数量调整第一数量后,镜像仓库清理任务中预设的预留个数变成了调整后的第一数量,具体如何确定可删除的历史镜像版本可参考步骤S205,在此不再赘述。
S309:启动镜像仓库的垃圾清理,对已删除的历史镜像版本进行清理。
具体的,可参考步骤S103,在此不再赘述。
本申请实施例智能化处理镜像仓库数据的方法实施原理为:预先创建镜像仓库清理任务,镜像仓库清理任务中预先设置清理时间和各镜像对应镜像版本的预留个数。当前时间达到清理时间,则启动镜像仓库清理任务,登录至镜像仓库中获取镜像名称列表和每个镜像名称对应的镜像版本列表,接着根据镜像名称列表和各镜像版本列表确定每个镜像名称对应的镜像版本列表中可删除的历史镜像版本,对每个镜像版本列表中可删除的历史镜像版本进行删除,最后启动镜像仓库的垃圾清理,将已删除的历史镜像版本进行彻底删除,从而释放镜像仓库的存储空间,改善镜像仓库的稳定性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,为本申请实施例提供的一种智能化处理镜像仓库数据装置的结构示意图。该应用于智能化处理镜像仓库数据装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括列表获取模块11、历史删除模块12和垃圾清理模块13。
列表获取模块11,用于在到达预先创建的镜像仓库清理任务的清理时间时,启动镜像仓库清理任务,并获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表;
历史删除模块12,用于根据镜像名称列表和各镜像版本列表确定镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除;
垃圾清理模块13,用于启动镜像仓库的垃圾清理,对已删除的历史镜像版本进行清理。
可选的,列表获取模块11,具体用于:
在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动镜像仓库清理任务。
可选的,如图5所示,装置1还包括运行环境生成模块14,具体用于:
通过Gitlab-Runner工具生成执行镜像仓库清理任务的运行环境;
获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表,包括:
基于运行环境,获取镜像仓库中的镜像名称列表和镜像名称列表中每个镜像名称对应的镜像版本列表。
可选的,列表获取模块11,具体还用于:
通过镜像仓库接口登录镜像仓库;
统计镜像仓库中的项目名称,从项目名称中查找镜像名称得到镜像名称列表;
搜索镜像名称列表中每个镜像名称对应的镜像版本,得到每个镜像名称对应的镜像版本列表。
可选的,历史删除模块12,具体用于:
将每个镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表,更新时间越靠后,排序越靠前;
根据各镜像名称对应镜像版本的预留个数,将排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,排序后的镜像版本列表中保留镜像版本之外的镜像版本确定为镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除。
可选的,装置1还包括预留个数调整模块15,具体用于:
获取镜像仓库的可用存储容量;
根据可用存储容量调整镜像仓库清理任务中的预留个数为第一数量;
根据各镜像名称对应镜像版本的预留个数,将排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,排序后的镜像版本列表中保留镜像版本之外的镜像版本确定为镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除,包括:
根据各镜像名称对应镜像版本的第一数量,将排序后的镜像版本列表中靠前的第一数量的镜像版本确定为保留镜像版本,排序后的镜像版本列表中保留镜像版本之外的镜像版本确定为镜像仓库中可删除的历史镜像版本,并对历史镜像版本进行删除。
可选的,预留个数调整模块15,具体还用于:
统计镜像名称列表中的镜像名称的第二数量;
将第二数量与数量阈值进行对比,若第二数量小于数量阈值,则维持第一数量不变;
若第二数量不小于数量阈值,则降低第一数量。
需要说明的是,上述实施例提供的一种智能化处理镜像仓库数据装置在执行智能化处理镜像仓库数据方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的一种智能化处理镜像仓库数据装置与一种智能化处理镜像仓库数据方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
本申请实施例还公开一种计算机可读存储介质,并且,计算机可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时,采用了上述实施例的一种智能化处理镜像仓库数据方法。
其中,计算机程序可以存储于计算机可读介质中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间件形式等,计算机可读介质包括能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM)、随机存取存储器(RAM)、电载波信号、电信信号以及软件分发介质等,需要说明的是,计算机可读介质包括但不限于上述元器件。
其中,通过本计算机可读存储介质,将上述实施例的一种智能化处理镜像仓库数据方法存储于计算机可读存储介质中,并且,被加载并执行于处理器上,以方便上述方法的存储及应用。
本申请实施例还公开一种电子设备,计算机可读存储介质中存储有计算机程序,计算机程序被处理器加载并执行时,采用了上述一种智能化处理镜像仓库数据方法。
其中,电子设备可以采用台式电脑、笔记本电脑或者云端服务器等电子设备,并且,电子设备设备包括但不限于处理器以及存储器,例如,电子设备还可以包括输入输出设备、网络接入设备以及总线等。
其中,处理器可以采用中央处理单元(CPU),当然,根据实际的使用情况,也可以采用其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以采用微处理器或者任何常规的处理器等,本申请对此不做限制。
其中,存储器可以为电子设备的内部存储单元,例如,电子设备的硬盘或者内存,也可以为电子设备的外部存储设备,例如,电子设备上配备的插接式硬盘、智能存储卡(SMC)、安全数字卡(SD)或者闪存卡(FC)等,并且,存储器还可以为电子设备的内部存储单元与外部存储设备的组合,存储器用于存储计算机程序以及电子设备所需的其他程序和数据,存储器还可以用于暂时地存储已经输出或者将要输出的数据,本申请对此不做限制。
其中,通过本电子设备,将上述实施例的一种智能化处理镜像仓库数据方法存储于电子设备的存储器中,并且,被加载并执行于电子设备的处理器上,方便使用。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种智能化处理镜像仓库数据方法,其特征在于,所述方法包括:
在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,并获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表;
根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除;
启动所述镜像仓库的垃圾清理,对已删除的所述历史镜像版本进行清理。
2.根据权利要求1所述的智能化处理镜像仓库数据方法,其特征在于,所述在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,包括:
在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动所述镜像仓库清理任务。
3.根据权利要求2所述的智能化处理镜像仓库数据方法,其特征在于,所述在到达预先创建的镜像仓库清理任务的清理时间时,通过持续集成/持续部署模块启动所述镜像仓库清理任务之后,还包括:
通过Gitlab-Runner工具生成执行所述镜像仓库清理任务的运行环境;
获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表,包括:
基于所述运行环境,获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表。
4.根据权利要求1所述的智能化处理镜像仓库数据方法,其特征在于,所述获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表,包括:
通过镜像仓库接口登录所述镜像仓库;
统计所述镜像仓库中的项目名称,从所述项目名称中查找镜像名称得到镜像名称列表;
搜索所述镜像名称列表中每个镜像名称对应的镜像版本,得到每个镜像名称对应的镜像版本列表。
5.根据权利要求1所述的智能化处理镜像仓库数据方法,其特征在于,所述镜像仓库清理任务还包括各镜像名称对应镜像版本的预留个数,所述根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除,包括:
将每个所述镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表,所述更新时间越靠后,排序越靠前;
根据各镜像名称对应镜像版本的预留个数,将所述排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,将所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除。
6.根据权利要求5所述的智能化处理镜像仓库数据方法,其特征在于,所述将每个所述镜像版本列表中各镜像版本按照更新时间的先后进行排序,得到排序后的镜像版本列表之前,还包括:
获取所述镜像仓库的可用存储容量;
根据所述可用存储容量调整所述镜像仓库清理任务中的所述预留个数为第一数量;
根据各镜像名称对应镜像版本的预留个数,将所述排序后的镜像版本列表中靠前的预留个数的镜像版本确定为保留镜像版本,所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除,包括:
根据各镜像名称对应镜像版本的第一数量,将所述排序后的镜像版本列表中靠前的第一数量的镜像版本确定为保留镜像版本,将所述排序后的镜像版本列表中所述保留镜像版本之外的镜像版本确定为所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除。
7.根据权利要求6所述的智能化处理镜像仓库数据方法,其特征在于,所述根据所述可用存储容量调整所述镜像仓库清理任务中的所述预留个数为第一数量之后,还包括:
统计所述镜像名称列表中的镜像名称的第二数量;
将所述第二数量与数量阈值进行对比,若所述第二数量小于数量阈值,则维持所述第一数量不变;
若所述第二数量不小于数量阈值,则降低所述第一数量。
8.一种智能化处理镜像仓库数据装置,其特征在于,包括:
列表获取模块(11),用于在到达预先创建的镜像仓库清理任务的清理时间时,启动所述镜像仓库清理任务,并获取所述镜像仓库中的镜像名称列表和所述镜像名称列表中每个镜像名称对应的镜像版本列表;
历史删除模块(12),用于根据所述镜像名称列表和各所述镜像版本列表确定所述镜像仓库中可删除的历史镜像版本,并对所述历史镜像版本进行删除;
垃圾清理模块(13),用于启动所述镜像仓库的垃圾清理,对已删除的所述历史镜像版本进行清理。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器加载并执行时,采用了权利要求1-7中任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,其特征在于,所述处理器加载并执行计算机程序时,采用了权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211589682.5A CN115827162A (zh) | 2022-12-12 | 2022-12-12 | 一种智能化处理镜像仓库数据方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211589682.5A CN115827162A (zh) | 2022-12-12 | 2022-12-12 | 一种智能化处理镜像仓库数据方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827162A true CN115827162A (zh) | 2023-03-21 |
Family
ID=85546467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211589682.5A Withdrawn CN115827162A (zh) | 2022-12-12 | 2022-12-12 | 一种智能化处理镜像仓库数据方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827162A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842001A (zh) * | 2023-08-29 | 2023-10-03 | 合肥中科类脑智能技术有限公司 | 镜像数据清理方法、装置及电子设备、人工智能平台 |
CN117369953A (zh) * | 2023-12-08 | 2024-01-09 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
CN118631827A (zh) * | 2024-08-14 | 2024-09-10 | 天翼视联科技有限公司 | 一种镜像分发方法、装置、电子装置和存储介质 |
-
2022
- 2022-12-12 CN CN202211589682.5A patent/CN115827162A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842001A (zh) * | 2023-08-29 | 2023-10-03 | 合肥中科类脑智能技术有限公司 | 镜像数据清理方法、装置及电子设备、人工智能平台 |
CN117369953A (zh) * | 2023-12-08 | 2024-01-09 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
CN117369953B (zh) * | 2023-12-08 | 2024-03-15 | 中电云计算技术有限公司 | 镜像同步方法、装置、设备及存储介质 |
CN118631827A (zh) * | 2024-08-14 | 2024-09-10 | 天翼视联科技有限公司 | 一种镜像分发方法、装置、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115827162A (zh) | 一种智能化处理镜像仓库数据方法、装置、介质及设备 | |
CN113377348B (zh) | 应用于任务引擎的任务调整方法、相关装置和存储介质 | |
CN110427258B (zh) | 基于云平台的资源调度控制方法及装置 | |
US11074134B2 (en) | Space management for snapshots of execution images | |
CN109472540B (zh) | 业务处理方法和装置 | |
CN105320567A (zh) | 用于有效资源回收的延迟损毁 | |
CN110825694A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112579692A (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN113326107A (zh) | 一种基于Kubernetes集群周期性任务调度的方法及电子设备 | |
CN108711025B (zh) | 租车车辆库存查询方法、装置、电子设备、存储介质 | |
CN111459629A (zh) | 基于Azkaban的项目运行方法、装置及终端设备 | |
CN112328602B (zh) | 一种数据写入Kafka的方法、装置及设备 | |
CN113377724A (zh) | 一种缓存空间管理方法、装置和存储介质 | |
CN117056123A (zh) | 数据恢复方法、装置、介质及电子设备 | |
CN111382180A (zh) | 一种本地缓存的数据清除方法和装置 | |
CN111176705A (zh) | 特征库的升级方法及装置 | |
CN112905541B (zh) | 镜像仓库垃圾清理方法和装置 | |
CN113377500B (zh) | 一种资源调度方法、装置、设备及介质 | |
CN115309558A (zh) | 一种资源调度管理系统、方法、计算机设备及存储介质 | |
CN111625500B (zh) | 文件快照方法及装置、电子设备和存储介质 | |
CN115964061A (zh) | 插件更新方法、装置、电子设备和计算机可读存储介质 | |
CN113673872A (zh) | 一种补货处理方法、装置、存储介质及电子设备 | |
CN113934692A (zh) | 文件清理方法、装置、存储介质及设备 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN111858234A (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 | ||
CB02 | Change of applicant information |
Address after: 518000 2201, block D, building 1, Chuangzhi Yuncheng bid section 1, Liuxian Avenue, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Qizhi Technology Co.,Ltd. Address before: 518000 2201, block D, building 1, Chuangzhi Yuncheng bid section 1, Liuxian Avenue, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: Qizhi Network Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230321 |
|
WW01 | Invention patent application withdrawn after publication |