更新时间:2024-12-05 GMT+08:00
分享

镜像老化

操作场景

现代软件开发多采用流水线生成镜像,随着版本不断向前迭代,将会不断生成新的镜像版本。新版本镜像的生成意味着老旧版本的镜像变得不再需要,如何方便快速的删除这些老旧版本镜像成为了新的问题。容器镜像服务企业版提供镜像老化功能,您可以创建镜像老化规则,手动或定时触发该规则,根据规则老化删除不需要的镜像。镜像老化规则支持多个老化子规则组合生效。

约束与限制

每个命名空间下仅允许创建1个老化规则,每个老化规则至少包含1个子规则,至多包含15个子规则。

创建老化规则

  1. 登录容器镜像服务控制台,单击左侧菜单栏“企业版”,然后单击仓库名称进入仓库详情页面。
  2. 在左侧导航栏选择“运维中心 > 镜像老化”
  3. 在右上角单击“创建老化规则”
  4. 填写具体规则。

    表1 参数说明

    参数名称

    说明

    示例

    规则名称

    老化规则的名称。

    AgingRule

    命名空间

    选择要老化的镜像所在的命名空间。

    library1

    触发模式

    • 手动:手动触发,规则创建完成后需要您手动单击执行。
    • 定时 + 手动:定时即为设置周期性定时老化。

    定时 + 手动

    定时

    触发模式为“定时 + 手动”时可以设置。

    -

    子规则范围(镜像)

    有如下两种模式:

    • 正则输入模式

      正则表达式规则可填写如 nginx-* ,{repo1,repo2} 等 。

      • *:匹配不包含路径分隔符“/”的任何字段。
      • **:匹配包含路径分隔符“/”的任何字段。
      • ?:匹配任何单个非“/”的字符。
      • {repo1,repo2, ...}:同时匹配多个选项。

      注意:不填或者填**默认为匹配全部。

    • 选择模式

      可直接选择镜像。

    nginx-*

    子规则范围(版本)

    镜像的版本,同样使用正则表达式匹配。

    正则表达式规则可填写如 v1* ,{v1,v2} 等。

    • *:匹配不包含路径分隔符“/”的任何字段。
    • **:匹配包含路径分隔符“/”的任何字段。
    • ?:匹配任何单个非“/”的字符。
    • {v1,v2, ...}:同时匹配多个版本。

    v1

    老化条件

    选择执行的老化条件,有如下条件可选择:

    • 保留最近推送的#个镜像版本
    • 保留最近拉取的#个镜像版本
    • 保留最近#天被推送过的
    • 保留最近#天被拉取过的

    其中“#”为变量,为具体的版本数和保留天数,请自行设置。

    保留最近推送的10个镜像版本

    启用

    可启用或不启用本条老化子规则

    -

    操作

    可删除本条老化子规则

    -

    图1 创建老化规则

  5. 单击“确定”完成规则创建。

老化规则示例

  • 示例1:

    选择library命名空间中,匹配所有版本的所有镜像,保留符合最近推送的2个与最近拉取的5个的并集条件的镜像,其余镜像删除,且需要手动触发执行。

    示例解读:假设library命名空间空间下有10个镜像Image1 ~ Image10,其中Image9和Image10是最近推送的2个镜像,Image1~Image5是最近拉取的5个镜像,那么保留的就是Image1~Image5以及Image9和Image10,老化的是Image6~Image8。

  • 示例2:

    选择library命名空间中,demo-image-v8和demo-image-v7保留最近3天被推送过的所有版本的镜像以及demo-image-v6和demo-image-v5保留最近1天被拉取过的镜像所有版本的镜像的并集,其余镜像全部删除,该规则每月1号 0时0分定时执行,且可以手动触发执行。

管理老化规则

成功创建后即可在“镜像老化”页面查看已创建的老化规则,您可以执行以下操作管理老化规则。

  • 执行:真实执行。为避免误操作,建议在首次执行老化规则前模拟执行。
  • 模拟:模拟执行。可用于确认规则是否生效,但不实际清理镜像版本。
  • 编辑:重新编辑老化规则,除“命名空间”外,其余参数均可编辑。
  • 删除:删除该老化规则。
图2 管理老化规则
  • 查看老化任务:当老化规则被触发时,符合规则范围的镜像将被删除。老化任务包含的信息如下:
    表2 老化任务

    参数

    说明

    触发模式

    手动或自动。

    单击“执行”“模拟”为手动方式,通过规则定义的周期自动执行,则为自动方式。

    状态

    任务完成状态。

    模拟

    是或否。

    单击“模拟”则为是,单击“执行”则为否。模拟可用于确认规则是否生效,但不实际清理镜像版本。

    老化数

    老化删除了多少个镜像,这里是按照镜像版本统计不是镜像制品。

    创建时间

    老化任务被触发的时间。

    结束时间

    老化任务执行结束的时间。

    老化信息

    老化了哪个命名空间下的哪些版本的镜像,删除是否成功。

    图3 任务详情

相关文档