• harbor镜像仓库清理操作


    两年前清理过一次harbor镜像,而现在又要面临清镜像的操作了,笔者目前所在的公司镜像是存放在ceph集群内部的,目前约200T,且该存储池是两副本,那么占用空间是400T左右。真的是相当浪费空间了。
    harbor镜像仓库由于过大,需要清理老版本镜像,以释放空间。清理之前有一些需要注意事项,提前说一下
    1、太老版本的harbor可能不带有清理机制(也就是下文讲的清理操作)
    2、清理期间harbor仓库处于只读状态,期间不能推镜像,但可以拉镜像。清理的过程也称为gc
    3、生产环境当中的harbor只读是不被允许的,因此开发出在线不停服gc的功能会更加受用(目前网上没有找到该案例,需要自己研发)

    实践过程如下:

    1、现在仓库有如下镜像

    2、harbor镜像仓库存放的位置

    一般上来说,harbor本身就是由docker跑起来的。harbor的数据存储是在容器goharbor/harbor-registryctl当中。进入到这个容器内部,找到/storage/docker/registry/v2目录,可以看到blobs和repositories两个目录。如下所示:

    root [ /storage/docker/registry/v2 ]# du -sm *
    1140    blobs
    1       repositories
    

    实际上,容器内部的/storage/docker/registry/v2目录对应的是宿主机上的/data/registry/docker/registry/v2目录。
    当我们推上去一个镜像的时候,blobs目录的大小会随之发生变化,至于增大多少空间,取决于你在harbor里面看到的镜像大小,如图所示:

    大约是702MB。所以上面看到的blobs目录的大小就是在推上去一个gitlab镜像后,由原来的438MB增长到现在的1140MB

    3、开始清理

    清理操作我们可以在harbor的webUI界面上来点点进行删除,镜像超级多的时候就是有点费手。

    选中并删除,删除成功后会在右侧进行提示。但是这种删除只是逻辑上的删除,并不会真正释放空间,可以去/storage/docker/registry/v2验证一下看看,空间还是没有释放。所以还需要下面的一步

    4、垃圾清理(在线gc)

    点击进行垃圾清理操作,期间会在下面生成一个清理任务。注意清理期间harbor仓库处于只读状态,此时不可推镜像。

    显示已完成表示清理成功了

    5、验证空间是否释放

    此时再去查看空间

    root [ /storage/docker/registry/v2 ]# du -sm *
    438     blobs
    1       repositories
    

    发现空间释放了。

  • 相关阅读:
    moss jscript
    CSS两端对准
    简单的日期格式验证
    .NET中使用Exchange 2007 Webservice来读取邮件
    张二狗
    spcontext
    Infopath表单用改控件值提交或作别的更改时一定要在控件属性浏览器表单的回发设置为始终.
    使用 Web 服务
    SharePoint 2010中开发模式的改进 COM 客户端对象模型
    Retrieve data from Separate Oracle System
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/15517706.html
Copyright © 2020-2023  润新知