Can a Persistent Volume be resized?

It is possible in Kubernetes 1.9 (alpha in 1.8) for some volume types: gcePersistentDisk, awsElasticBlockStore, Cinder, glusterfs, rbd

It requires enabling the PersistentVolumeClaimResize admission plug-in and storage classes whose allowVolumeExpansion field is set to true.

See official docs at https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims


Yes, as of 1.11, persistent volumes can be resized on certain cloud providers. To increase volume size:

  1. Edit the PVC (kubectl edit pvc $your_pvc) to specify the new size. The key to edit is spec.resources.requests.storage:

enter image description here

  1. Terminate the pod using the volume.

Once the pod using the volume is terminated, the filesystem is expanded and the size of the PV is increased. See the above link for details.


Update: volume expansion is available as a beta feature starting Kubernetes v1.11 for in-tree volume plugins. It is also available as a beta feature for volumes backed by CSI drivers as of Kubernetes v1.16.

If the volume plugin or CSI driver for your volume support volume expansion, you can resize a volume via the Kubernetes API:

  1. Ensure volume expansion is enabled for the StorageClass (allowVolumeExpansion: true is set on the StorageClass) associated with your PVC.
  2. Request a change in volume capacity by editing your PVC (spec.resources.requests).

For more information, see:

  • https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims
  • https://kubernetes-csi.github.io/docs/volume-expansion.html

No, Kubernetes does not support automatic volume resizing yet.

Disk resizing is an entirely manual process at the moment.

Assuming that you created a Kubernetes PV object with a given capacity and the PV is bound to a PVC, and then attached/mounted to a node for use by a pod. If you increase the volume size, pods would continue to be able to use the disk without issue, however they would not have access to the additional space.

To enable the additional space on the volume, you must manually resize the partitions. You can do that by following the instructions here. You'd have to delete the pods referencing the volume first, wait for it to detach, than manually attach/mount the volume to some VM instance you have access to, and run through the required steps to resize it.

Opened issue #35941 to track the feature request.