只显示在kubernetes中运行的docker内部的上层目录使用情况



我的项目将使用kubernetes运行客户端(docker)容器。docker容器中的df -h命令将显示主机/的使用情况,如下所示:

root@aggregator-demo-vgpovusabzqf-578f547cc5-rc8g6:/# df -h
Filesystem                         Size  Used Avail Use% Mounted on
overlay                            1.8T  227G  1.5T  14% /
tmpfs                               64M     0   64M   0% /dev
tmpfs                              252G     0  252G   0% /sys/fs/cgroup
/dev/mapper/ubuntu--vg-ubuntu--lv  1.8T  227G  1.5T  14% /etc/hosts
shm                                 64M     0   64M   0% /dev/shm
tmpfs                              504G   12K  504G   1% /run/secrets/kubernetes.io/serviceaccount
tmpfs                              252G     0  252G   0% /proc/acpi
tmpfs                              252G     0  252G   0% /proc/scsi
tmpfs                              252G     0  252G   0% /sys/firmware

对于用户了解已经使用了多少存储空间不是很有帮助。我看到一些容器平台只能显示实际的用户使用情况,像这样:

root@container-bc574b56:~# df -lh
Filesystem      Size  Used Avail Use% Mounted on
overlay          25G  574M   25G   3% /
tmpfs            64M     0   64M   0% /dev
tmpfs           378G     0  378G   0% /sys/fs/cgroup
shm              40G     0   40G   0% /dev/shm
/dev/sdb        150M  4.0K  150M   1% /init
tmpfs           378G   12K  378G   1% /proc/driver/nvidia
/dev/sda2       219G   26G  184G  13% /usr/bin/nvidia-smi
udev            378G     0  378G   0% /dev/nvidiactl
tmpfs           378G     0  378G   0% /proc/asound
tmpfs           378G     0  378G   0% /proc/acpi
tmpfs           378G     0  378G   0% /proc/scsi
tmpfs           378G     0  378G   0% /sys/firmware

/目录显示Avail25Gi,这是实际的容器限制,Used574M,这是docker上层目录的使用情况。如何实现呢?也许这不是docker的能力,它可能使用其他实现?

df只是查询文件系统的可用空间。

如果你使用的是标准的overlay2驱动程序,容器文件系统只是主机文件系统的一个视图;df没有办法提供特定于容器的值,因为没有单独的文件系统。

如果您使用的是devicemapperzfsbtrfs之类的存储驱动程序,那么每个容器都有自己独特的文件系统,因此df可以提供特定于容器的信息。

相关内容

最新更新