Reputation: 627
For example, I have 50 Gib PV/PVC and grant to one Pod, I just want to check usage of the storage
The way I am just following is to set up a busybox pod with mounting the same PVC, then exec into the busybox to run df -h
to check the storage.
I just want to know if there is an efficient way to do the same thing.
Upvotes: 33
Views: 78667
Reputation: 106
Some times we need to check if the PVC is full , since pods are not starting for porblme determination :( can not use df
Upvotes: 0
Reputation: 352
You can try the below set of commands, I checked on AKS and found out it to be working fine.
kubectl get pods -n namespace1
Pick the pod_name currently using or mapped to the PV/PVC (Persistent Volume Claims) and since I used the mount directory on the PV hence I have used /mount to check its details & replace {pod_name}
with actual pod_name.
kubectl exec -it {pod_name} -n namespace1 bash
df -h
ls -l /mount
Upvotes: 2
Reputation: 336
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.
Upvotes: 32
Reputation: 265
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.
Upvotes: 7
Reputation: 11583
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.
Upvotes: 3