AWS ECR 配置生命周期

AWS ECR 配置生命周期,第1张

什么是ECR

Amazon Elastic Container Registry (Amazon ECR) 是 AWS 托管容器镜像注册表服务,它安全、可扩展且可靠。Amazon ECR 支持私有存储库,其具有使用 AWS IAM 的基于资源的权限。这样,指定用户或 Amazon EC2 实例可以访问您的容器存储库和镜像。您可以使用首选 CLI 推送、提取和管理 Docker 映像、Open Container Itistry (OCI) 映像和 OCI 兼容构件。

摘抄自aws官方文档,简述就是一个镜像仓库,云上的产品一般会提供一些额外的功能,加在一起就是ECR。

问题

Gitlab CI/CD 的job不断的向ECR推送镜像文件,导致容量不断增大,而且很多镜像文件都是几年前的。ECR是基于存储的镜像文件大小、推送和拉去镜像进行收费的。为此需要清理一些长时间不用的镜像文件,ECR也为我们提供了这样的功能。

解决方法 通过aws cli 可以获取我们的所有镜像文件的详细信息:

如果aws配已经置了region信息,就可以不用加region参数;

aws ecr describe-images --region xxx --repository-name xxx

可以看到镜像的推送时间,镜像的tag,镜像的仓库名称等:

2.编写我们的过期策略文件

下面这是我编写的策略文件policy.json,所有镜像文件从推送时间算起,只要是超过了180天,就进行过期清除 *** 作。 

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "Expire images older than 180 days",
      "selection": {
        "tagStatus": "any",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 180
      },
      "action": {
        "type": "expire"
      }
    }
  ]
}

注意:这个不是立即生效的,在24小时内将进行完清除工作。

3. 通过cli进行配置过期策略:

aws ecr put-lifecycle-policy --region us-east-2 \
      --repository-name xxx \
      --lifecycle-policy-text file://policy.json

参考文档:

创建生命周期策略 - Amazon ECR生命周期策略允许您创建一组规则,这些规则会让未使用的存储库镜像过期。以下程序显示如何创建生命周期策略。创建生命周期策略后,受影响的镜像会在 24 小时内过期。https://docs.aws.amazon.com/zh_cn/AmazonECR/latest/userguide/lp_creation.html 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/927440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-17
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存