【发布时间】:2019-12-12 07:18:34
【问题描述】:
例如,我有 50 Gib PV/PVC 并授予一个 Pod,我只想检查存储的使用情况
我刚才遵循的方法是设置一个 busybox pod 并安装相同的 PVC,然后执行到 busybox 以运行 df -h 以检查存储.
我只是想知道是否有一种有效的方法来做同样的事情。
【问题讨论】:
标签: kubernetes persistent-volumes kubernetes-pvc
例如,我有 50 Gib PV/PVC 并授予一个 Pod,我只想检查存储的使用情况
我刚才遵循的方法是设置一个 busybox pod 并安装相同的 PVC,然后执行到 busybox 以运行 df -h 以检查存储.
我只是想知道是否有一种有效的方法来做同样的事情。
【问题讨论】:
标签: kubernetes persistent-volumes kubernetes-pvc
根据您需要执行此操作的频率,您可以查看df-pv 插件kubectl https://github.com/yashbhutwala/kubectl-df-pv
它完全按照您对命名空间或集群中所有 pv 的要求。安装完成后,只需运行 kubectl df-pv 即可完成设置。
【讨论】:
很遗憾,我们目前没有这个。我经常做的是在 Prometheus(因为我有一个 Prom 集群)上查询指标 kubelet_volume_stats_used_bytes 以获取信息。
或者以更难的方式,您可以编写一个操作符来观察包装 PVC 的 CRD 并显示 PVC 的使用情况。
【讨论】:
PV-s 有很多种类型(例如各种云存储)。他们每个人可能有不同的方式来获取这些信息。你总是可以使用kubectl describe pv <pv-name> 或kubectl get pv <pv-name> -o yaml。这可能会为您提供有关 PV 当前状态的一些信息,但可能缺少您需要的信息。
我假设您使用的是本地 PV-s。在这种情况下,您在容器内运行df -h 的解决方案还不错。您可以做的另一件事是在直接托管 PV 的节点上运行此命令。
【讨论】:
df -h可以根据我的知识检查busybox中的挂载文件夹
您可以尝试以下命令集,我检查了 AKS 并发现它工作正常。
kubectl get pods -n namespace1
选择当前使用或映射到 PV/PVC(持久卷声明)的 pod_name,由于我使用了 PV 上的挂载目录,因此我使用 /mount 检查其详细信息并将{pod_name} 替换为实际的 pod_name。
kubectl exec -it {pod_name} -n namespace1 bash
df -h
ls -l /mount
【讨论】: