在测试或开发环境中,会频繁构建服务,导致磁盘占用急剧增加,即使删除了历史构建版本,磁盘也未释放。经过官方的帮助,整理清理过程如下:
- 获取认证信息
kubectl get rainbondcluster -n rbd-system -o yaml|grep -A 3 imageHub
- 认证信息Base64编码
echo -n username:password | base64
- 获取rbd-hub的ip地址
kubectl get service -n rbd-system
- 下载和配置镜像删除脚本
下载镜像删除脚本:
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
- 使用脚本删除云帮服务的构建版本历史
查询服务信息:
使用这个查询命令需安装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
命令查看磁盘占用情况。