如何识别持久卷声明中剩余的存储空间?
Posted
技术标签:
【中文标题】如何识别持久卷声明中剩余的存储空间?【英文标题】:How to identify the storage space left in a persistent volume claim? 【发布时间】:2019-04-11 13:17:11 【问题描述】:我在 Google Cloud Platform 上有一个 Kubernetes 集群。它具有容量为 1GB 的持久卷声明。持久卷声明绑定到许多部署。
我想确定持久卷声明中剩余的空间,以了解 1GB 是否足以满足我的应用程序。
我已经使用了命令“kubectl get pv”,但这并没有显示剩余的存储空间。
【问题讨论】:
这是什么类型的光伏? 如果你指的是 storageClassName 是 networkvolume 是 NFS 吗?还是别的什么? 它不是 NFS。这是一个持久的卷声明 一个 PV 有一个类型:link。这就是@Rico 的要求。 【参考方案1】:如果有一个正在运行的 pod 已安装来自 PVC 的 PV,
kubectl -n <namespace> exec <pod-name> df
...将列出所有文件系统,包括已安装的卷及其可用磁盘空间。
【讨论】:
仅供参考 - 如果容器没有安装df
命令(就像许多产品容器一样),这将不起作用。还有其他方法吗?
kubectl exec 您可以使用 kubelet prometheus 指标监控它们:
kubelet_volume_stats_available_bytespersistentvolumeclaim="your-pvc"
kubelet_volume_stats_capacity_bytespersistentvolumeclaim="your-pvc"
【讨论】:
不幸的是,截至今天,它不适用于 GP3 卷:/ 请参阅 github.com/kubernetes-sigs/aws-ebs-csi-driver/issues/816 'kubelet_volume_stats_used_bytes' 见***.com/a/47117776/1747983【参考方案3】:如果您添加 -h 参数,则添加到@apisim 的答案,然后您可以获得人类可读格式的详细信息。像这样的,
kubectl -n <namespace> exec <pod-name> -- df -h
【讨论】:
查看伪文件系统应该是df -ah
【参考方案4】:
我写了一个script,它以类似于df
的格式列出了集群中的所有PVC。
您可以通过以下方式运行它:
./kubedf
或:
./kubedf -h
用于人类可读的输出。
编辑:脚本不再需要 kubectl proxy
来运行
【讨论】:
【参考方案5】:如果您使用的是 NFS:
sudo apt update
sudo apt install ncdu
cd /your_nfs/kubernetes/
sudo ncdu .
ncdu 1.12 ~ Use the arrow keys to navigate, press ? for help
--- /your_nfs/kubernetes/ ----------------------------------------------------------------------------------
34.1 GiB [##########] /backups
2.1 GiB [ ] /redis
1.9 GiB [ ] /XXX
785.5 MiB [ ] /postgresql
435.7 MiB [ ] /XXX
391.2 MiB [ ] /XXX
按C
查看文件数量/数量。
【讨论】:
以上是关于如何识别持久卷声明中剩余的存储空间?的主要内容,如果未能解决你的问题,请参考以下文章
k8sk8s存储之持久卷(pv)持久卷声明(pvc)nfs持久化存储示例
k8sk8s存储之持久卷(pv)持久卷声明(pvc)nfs持久化存储示例