En la versión 1.24 y posteriores de Google Kubernetes Engine (GKE), puedes usar la función de expansión de volumen de Kubernetes para cambiar la capacidad de un volumen persistente después de su creación.
Para obtener más información sobre la expansión de volumen, consulta la documentación de Kubernetes de código abierto.
Requisitos previos
La expansión de volumen tiene los siguientes requisitos previos:
- Si el volumen al que deseas cambiarle el tamaño lo administra un controlador de CSI:
- Asegúrate de que la versión del clúster de GKE sea 1.16 o posterior. Si el clúster tiene grupos de nodos de Windows, asegúrate de que la versión del clúster de GKE sea 1.18 o posterior. Si usas el controlador de CSI de Filestore de GKE administrado, la versión del clúster debe ser 1.21 o posterior.
- Consulta la documentación de tu proveedor de almacenamiento para verificar que tu controlador de CSI admita la expansión de volumen. El controlador de CSI de Persistent Disk de Compute Engine y el controlador de CSI de Filestore admiten la expansión de volumen.
- Si el volumen al que deseas cambiarle el tamaño es administrado por un complemento de volumen de árbol:
- Asegúrate de que la versión del clúster de GKE sea 1.11 o superior. Si bien las versiones 1.11 a 1.14 del clúster de GKE admiten la expansión de volúmenes administrados por complementos de árbol, también requieren que todos los pods que usan el volumen se cierren y se vuelvan a crear para completar la expansión del volumen.
- Revisa la documentación de tu proveedor de almacenamiento para verificar que tu complemento de volumen de árbol admita la expansión de volumen (el complemento de árbol de Persistent Disk de Compute Engine lo hace).
Usa la expansión de volumen
Para usar la expansión de volumen, realiza las siguientes tareas:
Agrega
allowVolumeExpansion: true
a tu StorageClass, si tu StorageClass aún no tiene el campo. Por ejemplo:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard provisioner: my.driver ... allowVolumeExpansion: true
Edita el campo
spec.resources.requests.storage
de tu PersistentVolumeClaim para solicitar un cambio en la capacidad del volumen.kubectl edit pvc pvc-name
Por ejemplo, puedes cambiar la siguiente PVC para que pase de tener un disco de 30 gibibyte (GiB) a uno de 40 GiB.
Antes de editar, ejecuta este comando:
# pvc-demo.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-demo spec: accessModes: - ReadWriteOnce resources: requests: storage: 30Gi
Después de editar, ejecuta este comando:
# pvc-demo.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-demo spec: accessModes: - ReadWriteOnce resources: requests: storage: 40Gi
Verifica el cambio mediante la visualización de PVC. Para ver tu PVC, ejecuta el siguiente comando:
kubectl get pvc pvc-name -o yaml
Con el tiempo, deberías ver el volumen nuevo en el campo
status.capacity
. Por ejemplo:... spec: accessModes: - ReadWriteOnce resources: requests: storage: 40Gi storageClassName: standard volumeMode: Filesystem volumeName: pvc-078b7484-cc8d-4077-9bcb-2c17d8d4550c status: accessModes: - ReadWriteOnce capacity: storage: 40Gi ...
Si la capacidad de un PersistentVolume se modifica directamente, esto podría hacer que el sistema de archivos del contenedor sea incorrecto. Para solucionar estos problemas, consulta Soluciona problemas de cambios en la expansión de volumen.
Próximos pasos
- Obtén más información sobre los volúmenes.
- Obtén más información sobre cómo cambiar el tamaño de volúmenes persistentes con Kubernetes.