Is there an efficient way to check the usage for PV/PVC in Kubernetes Is there an efficient way to check the usage for PV/PVC in Kubernetes kubernetes kubernetes

Is there an efficient way to check the usage for PV/PVC in Kubernetes


Depending on how often you need to do this you might look at the df-pv plugin for kubectl https://github.com/yashbhutwala/kubectl-df-pv

It does exactly what you are asking across all the pvs in a namespace or cluster. Once you've got it installed, just run kubectl df-pv and you are set.


There are many types of PV-s (e.g. various cloud storage). Each of them might have a different way of getting this information. You could always use kubectl describe pv <pv-name> or kubectl get pv <pv-name> -o yaml. This might give you some information about the current state of the PV, but it might lack the information you need.

I assume though that you are using Local PV-s. In this case your solution to run df -h inside a container is not bad. One other thing you could do is to run this command on the node which hosts the PV directly.


Unfortunately we don't have this at the moment. What I often do is querying on Prometheus (because I have a Prom cluster there) for the metrics kubelet_volume_stats_used_bytes for the information.

Or in the harder way, you can write an operator to watch a CRD which wraps the PVC and to display the usage of the PVC.