Harbor / 云原生

Harbor镜像保留以及磁盘空间释放

浅时光博客 · 8月23日 · 2021年 6.2w 次已读

一、场景描述


当我们的项目从传统项目改造成容器化运行的项目时,必然我们都会使用到docker、registry这些东西,而开源的私有registry则是harbor最为火热,但是我们再频繁的上传镜像文章来源(Source):https://www.dqzboy.com的时候,同样面临的一个问题就是这些存储的镜像越来越多,服务器磁盘资源早晚会被占满,从而导致镜像无法上传,为了解决这个问题我们就需要设置相应的镜像保留策略来删除那些已经不再使用的镜像层,从而释放服务器磁盘空间。

二、添加规则


Harbor1.9版本中增加了TAG保留策略,这样我们就可以通过配置镜像保留策略来删除那些没用镜像了

2.1:选择项目

  • 选择我们需要配置保留策略的项目

2.2:配置策略

  • 进入到某个项目下添加保留策略。保留策略针对是某个项目的不是全部的项目
  • 注意:这里经过测试,发现保留规则中直接写项目的仓库名称,执行保留策略并不生效,解决方法是将保留策略改成**或者直接写某个项目的镜像仓库名称,如下图所示

2.3:定时执行

三、测试验证


  • 下面我们点击模拟运行,查看执行记录
  • 注意:UI上执行TAG删除是比较慢的;并且这里配置TAG删除并不会真正释放掉磁盘空间,还需要我们通过清理GC的方式进行清理blob

四、释放空间


  • 查看原先的占用磁盘空间
  • 首先停止harbor,防止在执行过程中有人上传镜像导致镜像损坏
[root@harbor v2]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose stop
  • 查看h原文链接:https://www.dqzboy.comarbor的待删除
#下面的命令直接在宿主机上执行,会下载并运行registry容器,然后执行对应的命令
[root@harbor harbor]# docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect --dry-run /etc/registry/config.yml
  • 运行删除历史镜像释放空间
[root@harbor harbor]# docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.0 garbage-collect /etc/registry/config.yml
  • 重新启动harbo程序
[root@harbor v2]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose up -d
  • 检查磁盘空间是否释放
[root@harbor v2]# df -h

本文作者:浅时光博客
原文链接:https://www.dqzboy.com/7845.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!