版本保留
更新时间:2025-01-21
用户在使用CCR的过程中,随着业务的快速迭代,将会产生大量的镜像版本。其中很多老旧的镜像版本随着时间推移不再被使用,这些多余的版本有存储成本,同时也会给镜像管理带来一定的负担。您可以使用版本保留功能进行定期清理。
注意事项
- 通过创建保留规则,执行规则时会将保留规则外的镜像版本自动删除。注:版本保留功能不会自动清理存储空间,如需清理存储空间请配置制品清理策略,详见:制品清理
- 版本保留规则执行后,被删除的镜像版本将无法拉取。为了避免镜像误删除,建议您针对关键镜像进行模拟执行,了解镜像清理范围以后再正式执行。
- 镜像仓库中可能存在不同镜像版本对应相同Artifact制品的情况,保留规则执行时如果一个镜像版本满足清理规则,则共用相同Artifact制品的镜像版本都会被删除。
- 保留规则执行期间,不建议您同时手动删除进行版本,可能会导致最终保留版本与预期不一致。
前提条件
操作步骤
- 登录百度智能云控制台,选择“产品服务 > 容器镜像服务 > CCR”。
- 进入目标实例,点击“仓库管理”,选择“版本保留”。
- 点击“创建规则”按钮,选择命名空间后,您可选择使用简易模式或高级模式创建保留规则。
简易模式
- 保留版本:默认为命名空间内全部仓库及版本。
- 保留策略:支持保留最新推送的n个版本、保留n天内推送的版本、保留最新拉取的n个版本、保留n天内被拉取过的版本,您可以按需选择。
- 执行周期:可选择手动执行、每天、每周或每月执行。每天为每日零点,每周默认为周一零点,每月为每月第一天零点清理镜像版本。
高级模式
- 仓库过滤和版本过滤:支持正则表达式匹配。
- 保留策略:支持保留最新推送的n个版本、保留n天内推送的版本、保留最新拉取的n个版本、保留n天内被拉取过的版本,您可以按需选择。
- 可设置最多15条保留规则,最终效果取多条规则的并集。
- 执行周期:可选择手动执行、每天、每周或每月执行。每天为每日零点,每周默认为周一零点,每月为每月第一天零点清理镜像版本。
4.创建成功后,在“版本保留”页面,您可查看已创建的保留规则,并可执行、编辑或删除现有规则。
版本保留配置参考
正则表达式
当通过高级模式配置版本保留规则,填写“仓库”和“版本”过滤规则时,其正则表达式支持的匹配规则:
* :匹配所有不包含路径分隔符(/)的任意长字符串。
**:匹配所有的任意长字符串,包括路径分隔符(/)。
注意:
**必须作为一段完整的相对路径,如果使用 /ccr**,其作用将等同于 /ccr,仅能匹配以ccr为名称前缀的一级仓库。要想匹配ccr下的所有仓库,应使用 /ccr/**;要想匹配以ccr为名称前缀的所有仓库,则应使用 /ccr/**。
?:匹配除 ‘/’ 以外的任意单个字符。
{str1, str1, …}:同时匹配多个正则表达式。
典型场景
过滤类型 | 场景 | 正则表达式 |
---|---|---|
仓库过滤规则 | 匹配当前命名空间内所有镜像仓库 | ** 或者不填 |
匹配选定命名空间内以 ccr 为名称前缀的所有一级仓库 | ccr* | |
匹配选定命名空间内以 ccr1 和 ccr2 为名称前缀的所有一级仓库 | {ccr1, ccr2} | |
匹配选定命名空间内 ccr1 和 ccr2 目录下的所有仓库 | {ccr1, ccr2}/** | |
匹配选定命名空间内以 ccr1 和 ccr2 为名称前缀的所有仓库 | {ccr1, ccr2}*/** | |
版本过滤规则 | 匹配选定仓库内所有 1.x 的版本Tag | 1.? |
匹配选定仓库内所有以 dev1 和 dev2 为名称前缀的版本 Tag | {dev1, dev2} |
FAQ
1.保留结果如何查看?
如下图示例:
RETAIN:对应的镜像版本将会保留。
DEL:对应的镜像版本将会自动删除。
2.如何确认镜像清理操作不会误删重要镜像?
在执行镜像清理之前,建议进行模拟执行,以确认将要删除的镜像范围及清理时间,确保不会误删关键镜像