Harbor 简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等
Harbor 回收镜像难点
- Harbor 镜像回收分两步,
第一步
清理镜像的tag,这是删除镜像关联关系并没有真正释放磁盘。第二步 垃圾回收
,释放磁盘空间。 - Harbor 从1.7.0 开始提供不停服务运行
垃圾回收功能
,运行垃圾回收时,Harbor数据库
处于只读
状态。 - Harbor 磁盘回收难点在于清理
镜像关联的tag
,虽然控制台提供删除功能,但镜像很多时我们不可能一个个去点击删除,这样很浪费时间,下面就是今天要讲的调取Harbor Api
接口清理镜像关联的tag。
运行本程序要求
- Harbor 结构要求
product_line/project/tag
。例:B线/hello:20190912123205-c808c4
- K8s 要求 namespace 下面是 project ,并且和Harbor结构是一一对应。原因是因为
程序
需要连接k8s查询需要保留目前使用的镜像版本
。 - 目前程序
只测试过 Harbor v1.7.0
,测试是没有问题的 Python3.5+
官方 Python SDK
已经不维护了,本程序是在官方 python sdk 基础上修改- 程序分两块,分别是
harborclient_modify_v1_7_0
和清理程序
harborclient_modify_v1_7_0 代码
1 | #!/usr/bin/env python3 |
清理程序
1 | #!/usr/bin/env python3 |
程序执行完成,再次执行垃圾回收
---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---
本文作者:
Peng Yang
本文链接: https://www.yp14.cn/2019/11/17/Harbor-v1-7-0自动镜像回收/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://www.yp14.cn/2019/11/17/Harbor-v1-7-0自动镜像回收/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!