> For the complete documentation index, see [llms.txt](https://docs.openg2p.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openg2p.org/operations/deployment/deployment-guide/resizing-persistent-volume-claim-in-kubernetes-cluster.md).

# Resizing 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.

## **Prerequisites**

* 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.

## Resizing a PVC

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.

1. Identify the PVC you want to resize. Run the below command.

   ```bash
   kubectl get pvc -n <namespace>
   ```
2. Identify the pods that are using this PVC.

   ```bash
   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 Deployment**

   ```bash
   kubectl scale deployment <deployment_name> --replicas=0 -n <namespace>
   ```

   **For a StatefulSet**

   ```bash
   kubectl scale statefulset <statefulset_name> --replicas=0 -n <namespace>
   ```
3. Confirm that the pods have been scaled down.

   ```bash
   kubectl get pods -n <namespace>
   ```
4. Edit the PVC to update the `spec.resources.requests.storage` field with the new size. Run the following command.

   ```bash
   kubectl edit pvc <pvc-name> -n <namespace>
   ```
5. Edit the storage field to Increase the storage size. For example, change 10GB to 20GB.

   ```yaml
   resources:
     requests:
       storage: 10Gi
   ```
6. After updating the PVC, check the status to ensure the resize operation succeeds.

   ```shell
   kubectl get pvc <pvc-name> -n <namespace>
   ```
7. 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 Deployment**

   ```
   kubectl scale deployment <deployment-name> --replicas=<desired-count> -n <namespace>
   ```

   **For a StatefulSet**

   ```
   kubectl scale statefulset <statefulset-name> --replicas=<desired-count> -n <namespace>
   ```
8. 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.openg2p.org/operations/deployment/deployment-guide/resizing-persistent-volume-claim-in-kubernetes-cluster.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
