像大家担心的那样,Openshift私有仓库磁盘爆了,使用率100%!!!
使用oc adm prune来作对openshift集群的清理,你敢吗?
会不会把需要的镜像也一并删了呢,要是如此,就只能像DBA一样走人了。
今天就来探讨下oc adm prune的用法。
如你所料,我们最终的清理镜像的办法是oc adm prune images
oc login -u admin -p admin
oc adm prune images --keep-younger-than=400m --confirm
注意以上oc adm prune images命令只能在普通用户下执行,无法在system:admin用户下执行,所以必须先登录普通用户,同时用户拥有system:image-pruner权限。
为了让镜像不占用过多的磁盘空间,需要对它全精减。很多时候,比如重复地构建镜像,会留下很多不必要的镜像层,而这些镜像层会占用非常多的空间。
oc adm prune images [<options>]
使用 --keep-tag-revisions 与 --keep-younger-than 来清理镜像,以下情况对应的镜像不会被清理
ImageStream的状态items下最近的--keep-tag-revisions镜像
使用 --prune-over-size-limit 清理超过指定Limit的镜像,以下情况下指向的镜像不会清理
注意:以下情况并不会真正删除镜像
手动删除image,这只会删除etcd中的数据,不会删除私有仓库中的镜像
delete image <sha256:image-id>
当然oc adm prune并不仅仅只是用于清理镜像,它还用来清理deployments与builds
adm prune deployments/builds [<options>]
实例:清理deployments/builds
--orphans --keep-complete=5 --keep-failed=1 --keep-younger-than=60m --confirm
oc adm prune builds --orphans --keep-complete=5 --keep-failed=1 --keep-younger-than=60m --confirm
$ cat cleanregistry.sh
#!/bin/bash
date
oc login -u admin -p password
oc adm prune builds --orphans --keep-complete=25 --keep-failed=5 --keep-younger-than=60m --confirm
oc adm prune deployments --orphans --keep-complete=25 --keep-failed=10 --keep-younger-than=60m --confirm
oc adm prune images --keep-younger-than=400m --confirm
$ crontab -l
0 0 * * * /usr/bin/cleanregistry.sh >> /var/log/cleanregistry.log 2>&1
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞4
添加新评论0 条评论