如何清理旧的未使用的Kubernetes图像/标签?
为了简化部署和短期回滚,为每个要部署在Kubernetes上的新版本使用一个新的Docker图像标记是很有用的。如果没有清理,这意味着旧图像:标签将永远保留 如何列出Kubernetes容器使用的所有image:tag,以便找到所有旧的image:tag,这些旧的image:tag不用于从Docker注册表中自动删除它们如何清理旧的未使用的Kubernetes图像/标签?,kubernetes,docker-registry,google-kubernetes-engine,Kubernetes,Docker Registry,Google Kubernetes Engine,为了简化部署和短期回滚,为每个要部署在Kubernetes上的新版本使用一个新的Docker图像标记是很有用的。如果没有清理,这意味着旧图像:标签将永远保留 如何列出Kubernetes容器使用的所有image:tag,以便找到所有旧的image:tag,这些旧的image:tag不用于从Docker注册表中自动删除它们 我的目标是在谷歌容器引擎(GKE)中删除谷歌容器注册表中未使用的图像。作为替代方法,你可以考虑让Kubernetes处理旧图像。 目前,ImageManager处理候选图像的回
我的目标是在谷歌容器引擎(GKE)中删除谷歌容器注册表中未使用的图像。作为替代方法,你可以考虑让Kubernetes处理旧图像。 目前,ImageManager处理候选图像的回收。见: 垃圾收集是kubelet的一个有用功能,它将清理垃圾 未引用的图像和未使用的容器。库贝莱将表演 每分钟对容器进行垃圾收集和垃圾收集 每五分钟拍摄一次照片 配置通过以下两种方式进行控制:
可以调整高/低阈值,以强制按适合您的间隔收集图像。要获取Kubernetes群集使用的所有图像的列表,可以运行shell脚本:
for image in $(kubectl get pods --all-namespaces --output=jsonpath='{..image}')
do
echo $image
done
然而,目前似乎没有办法简单地从Google容器注册表中删除图像(请参见)我不确定是否有一种文档化的方法来进行此类维护。然而,Openshift Origin试图通过修剪docker图像和与注册表交互来删除旧的blob来解决这个问题
我们已经在上下文中实现了它。要在github上实现这一点,您可以使用在守护程序集中运行的容器。这将清理集群中每个节点上所有未使用的映像。对于最新版本的kubelet,请使用以下选项,因为--image gc high threshold和--image gc low threshold已被弃用:
--eviction-hard
--eviction-soft
更多详细信息,请访问:
--eviction-hard
--eviction-soft