Usa la expansión de volumen

En Google Kubernetes Engine (GKE), puedes usar la función de expansión de volumen de Kubernetes para cambiar fácilmente la capacidad de un volumen persistente después de su creación.

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 superior.
    • 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 disco persistente de Compute Engine lo hace).
  • 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 disco persistente de Compute Engine lo hace).

Usa la expansión de volumen

Para usar la expansión de volumen, realiza las siguientes tareas:

  1. 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
    
  2. Edita el campo spec.resources.requests.storage de tu PersistentVolumeClaim para solicitar un cambio en la capacidad del volumen. 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
    
  3. 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
    ...
    

¿Qué sigue?