最近线上Harbor镜像仓库的磁盘一直告警,磁盘使用率一度超过85%,发现很多微服务发布过于频繁,而我们每隔两周手动删除过期的镜像显得有点力不从心。看了官网有1.9版本的,带垃圾清理功能,决定将Harbor升级到1.9.2(我们使用的是1.6.3的老版本)
虽然Harbor1.9版本开始有垃圾清理和过期镜像自动清理,但是使用过程中有个bug,就是推送时间一直是1/1/1 上午8:05,这就很尴尬了,容易误删,看了下创建时间还是正常的,只能写python脚本调API删除了。
Harbor的API:
大致思路:
1.获取Harbor会话连接。
2.获取项目名称和分组。
3.获取项目中镜像的tag标签名称,并按创建时间排序。
4.按保留个数依次删除项目中的过期镜像(这个只是删除了WEB界面的镜像tag,磁盘中还在)。
5.设置垃圾清理定时任务,自动清理镜像(磁盘中删除,1.9版本有垃圾清理功能,可以不停机清理过期镜像)。
最终脚本如下:<