我的项目将使用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
/
目录显示Avail
是25Gi
,这是实际的容器限制,Used
是574M
,这是docker上层目录的使用情况。如何实现呢?也许这不是docker的能力,它可能使用其他实现?
df
只是查询文件系统的可用空间。
如果你使用的是标准的overlay2
驱动程序,容器文件系统只是主机文件系统的一个视图;df
没有办法提供特定于容器的值,因为没有单独的文件系统。
如果您使用的是devicemapper
、zfs
或btrfs
之类的存储驱动程序,那么每个容器都有自己独特的文件系统,因此df
可以提供特定于容器的信息。