description | layout | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Guide on Resizing PVC (Persistent Volume Claim) in Kubernetes Cluster |
|
When you require additional storage for your application, you may need to resize a Persistent Volume Claim (PVC) in the Kubernetes cluster. This document provides step-by-step instructions to resize a PVC in a Kubernetes cluster.
- Your PVC's StorageClass has to support volume expansion. Verify that your StorgeClass has
allowVolumeExpansion: true
- Ensure you have the necessary permissions to edit PVCs and resize volumes.
There may be downtime when resizing a PVC in Kubernetes, especially when transferring data or resizing file systems. To securely resize a PVC, turn off the related service and follow the instructions below.
-
Identify the PVC you want to resize. Run the below command.
kubectl get pvc -n <namespace>
-
Identify the pods that are using this PVC.
kubectl get pods -n <namespace> --field-selector=spec.volumes.persistentVolumeClaim.claimName=<pvc-name>
You must end the running application in order to safely resize the PVC. If the PVC is attached to a Deployment, StatefulSet, or another workload, scale it down to zero replicas.
For a Deploymentkubectl scale deployment <deployment_name> --replicas=0 -n <namespace>
For a StatefulSet
kubectl scale statefulset <statefulset_name> --replicas=0 -n <namespace>
-
Confirm that the pods have been scaled down.
kubectl get pods -n <namespace>
-
Edit the PVC to update the
spec.resources.requests.storage
field with the new size. Run the following command.kubectl edit pvc <pvc-name> -n <namespace>
-
Edit the storage field to Increase the storage size. For example, change 10GB to 20GB.
resources: requests: storage: 10Gi
-
After updating the PVC, check the status to ensure the resize operation succeeds.
kubectl get pvc <pvc-name> -n <namespace>
-
After resizing the PVC and verifying that everything is in order, scale the deployment or stateful set back to its initial number of replicas.
For a Deploymentkubectl scale deployment <deployment-name> --replicas=<desired-count> -n <namespace>
For a StatefulSet
kubectl scale statefulset <statefulset-name> --replicas=<desired-count> -n <namespace>
-
Verify that the pods are running
kubectl get pods -n <namespace>
Note:
You can use the Rancher UI to resize the PVC by following the procedures listed above.