【推荐】Rainbond5.2.x清理Docker Registry

在测试或开发环境中,会频繁构建服务,导致磁盘占用急剧增加,即使删除了历史构建版本,磁盘也未释放。经过官方的帮助,整理清理过程如下:

  1. 获取认证信息

kubectl get rainbondcluster -n rbd-system -o yaml|grep -A 3 imageHub

  1. 认证信息Base64编码

echo -n username:password | base64

  1. 获取rbd-hub的ip地址

kubectl get service -n rbd-system

  1. 下载和配置镜像删除脚本

下载镜像删除脚本:

curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | tee /usr/local/bin/delete_docker_registry_image >/dev/null

如果下载超时,可以修改服务器hosts文件/etc/hosts,在文件末尾添加下列内容:

199.232.28.133 raw.githubusercontent.com

给脚本授权:

chmod a+x /usr/local/bin/delete_docker_registry_image

查找v2目录(云帮好像是nfs这个):

添加环境变量(/etc/profile):

export REGISTRY_DATA_DIR=/opt/rainbond/data/nfs/pvc-940df161-389e-4fa0-ac89-3d8180a1f86b/docker/registry/v2

使修改生效:

source /etc/profile

  1. 使用脚本删除云帮服务的构建版本历史

查询服务信息:

使用这个查询命令需安装grctl:https://www.rainbond.com/docs/user-operations/tools/grctl/


这个ServiceID就是镜像标签的查找字段

根据前面收集到的base64认证信息,rbd-hub地址,以及ServiceID,获取镜像标签列表:

curl -H “Authorization: Basic YWRtaW46YzExOWRlNjI=” http://10.68.229.120:5000/v2/413f2916391a6e41c1920f42b2cba855/tags/list

删除其中一个镜像的标签:

delete_docker_registry_image --image 413f2916391a6e41c1920f42b2cba855:20201229133434

获取所有的镜像列表:

curl -H “Authorization: Basic YWRtaW46YzExOWRlNjI=” http://10.68.229.120:5000/v2/_catalog

结语:
通过删除脚本删除镜像标签后,发现磁盘占用的空间还是未释放,这时需要手动重启相关服务,请参考官方的重启策略:
https://www.rainbond.com/docs/troubleshoot/concrete-operations/how-to-restart/
重启后可以使用df命令查看磁盘占用情况。

1 Like