例如,我有 50 Gib PV/PVC 并授予一个 Pod,我只想检查存储的使用情况
我正在遵循的方法是设置一个安装相同 PVC 的busybox pod,然后执行到busybox以运行df -h
以检查存储。
我只是想知道是否有一种有效的方法来做同样的事情。
例如,我有 50 Gib PV/PVC 并授予一个 Pod,我只想检查存储的使用情况
我正在遵循的方法是设置一个安装相同 PVC 的busybox pod,然后执行到busybox以运行df -h
以检查存储。
我只是想知道是否有一种有效的方法来做同样的事情。
根据您需要执行此操作的频率,您可能会查看https://github.com/yashbhutwala/kubectl-df-pvdf-pv
的插件kubectl
它完全符合您对命名空间或集群中所有 pv 的要求。安装完成后,只需运行kubectl df-pv
即可。
不幸的是,我们目前没有这个。我经常做的是在 Prometheus(因为我有一个 Prom 集群)上查询kubelet_volume_stats_used_bytes
信息的指标。
或者以更难的方式,您可以编写一个操作符来观察包装 PVC 的 CRD 并显示 PVC 的使用情况。
PV-s 有很多种类型(例如各种云存储)。他们每个人可能有不同的方式来获取这些信息。你总是可以使用kubectl describe pv <pv-name>
or kubectl get pv <pv-name> -o yaml
。这可能会为您提供有关 PV 当前状态的一些信息,但它可能缺少您需要的信息。
我假设您使用的是本地 PV-s。在这种情况下,您df -h
在容器内运行的解决方案还不错。您可以做的另一件事是在直接托管 PV 的节点上运行此命令。
您可以尝试以下命令集,我在 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