今天发现宿主kubernetes(v1.21.3)文件夹io.containerd.snapshotter.v1.overlayfs
占用空间太大:
[root@k8smasterone kubernetes.io~nfs]# pwd
/var/lib/kubelet/pods/8aafe99f-53c1-4bec-8cb8-abd09af1448f/volumes/kubernetes.io~nfs
[root@k8smasterone kubernetes.io~nfs]# duc ls -Fg /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/
13.5G snapshots/ [++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++]
2.2M metadata.db [
它需要13.5GB的磁盘空间。能把这个文件夹缩小吗?
2条答案
按热度按时间knsnq2tg1#
目录
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs
是containerd持久化各种容器和图像层的地方。根据节点上运行的容器下载这些层。如果我们开始耗尽空间,kubelet可以垃圾收集未使用的图像-这将减少这个目录的大小。如果需要,客户还可以为节点池配置 Boot 磁盘的大小。预计这将从创建节点时起增长。但是,当节点磁盘使用率高于85%时,垃圾收集将尝试识别可以删除的映像。它可能无法删除图像,但如果它们当前正在由运行在节点上的现有容器使用,或者它们最近被拉取。
如果你想用containerd删除未使用的容器映像,你可以使用下面的命令:
$
crictl rmi --prune
您也可以使用**
$ docker image prune
**命令清理未使用的镜像。默认情况下,docker image prune只清理悬挂的图像。悬空图像是未标记且未被任何容器引用的图像。要删除现有容器未使用的所有镜像,请使用-a标志:
$ docker image prune -a
a14dhokn2#
您可以通过将
ImageGCHighThresholdPercent
减少到小于驱动器上已有的数据量来触发Kubernetes的内置垃圾收集。默认情况下,它在85%时触发。在k3s上,它没有独立的kubelet,你可以在
/etc/rancher/k3s/config.yaml
中使用命令行标志来设置: