Puede utilizar la función de expansión de volúmenes de Kubernetes para expandir un volumen de bloque persistente una vez creado. Los clústeres de Servicio TKG admiten la expansión de volúmenes en línea y sin conexión.
Acerca de la expansión de volúmenes persistentes
De forma predeterminada, las clases de almacenamiento que aparecen en el entorno del clúster de TKG tienen allowVolumeExpansion
establecido como true
. Gracias a este parámetro, es posible modificar el tamaño de un volumen en línea y sin conexión.
Se considera que un volumen está sin conexión cuando no está asociado a un nodo o pod. Un volumen en línea es un volumen disponible en un nodo o pod.
El nivel de compatibilidad de la funcionalidad de expansión de volúmenes depende de la versión de vSphere. Puede expandir los volúmenes creados en las versiones anteriores de vSphere cuando actualice el entorno de vSphere a las versiones adecuadas que admitan las ampliaciones.
- Puede expandir los volúmenes hasta los límites especificados por las cuotas de almacenamiento. vSphere IaaS control plane admite solicitudes de cambio de tamaño consecutivas para un objeto de notificación de volumen persistente.
- Todos los tipos de almacenes de datos, incluidos VMFS, vSAN, vSAN Direct, vVols y NFS, admiten la expansión de volúmenes.
- Puede realizar una expansión de volúmenes para implementaciones o pods independientes.
- Puede cambiar el tamaño de los volúmenes aprovisionados estáticamente en un clúster de Tanzu Kubernetes Grid si los volúmenes tienen clases de almacenamiento asociadas.
- No puede expandir volúmenes creados como parte de StatefulSet.
- Si un disco virtual que crea una copia de seguridad de un volumen tiene instantáneas, no se puede cambiar su tamaño.
- vSphere IaaS control plane no admite la expansión de volúmenes para volúmenes en un árbol o migrados.
Expandir un volumen persistente en modo en línea
Un volumen en línea es un volumen disponible en un nodo o pod. Como ingeniero de desarrollo y operaciones, puede expandir un volumen de bloque persistente en línea. Los clústeres de Tanzu Kubernetes Grid admiten la expansión de volúmenes en línea.
- Busque la notificación de volumen persistente para cambiar su tamaño mediante el siguiente comando.
Tenga en cuenta que, en este ejemplo, el tamaño del almacenamiento que utiliza el volumen es de 1 Gi.
$ kubectl get pv,pvc,pod NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 1Gi RWO Delete Bound default/block-pvc block-sc 4m56s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/block-pvc Bound pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 1Gi RWO block-sc 5m3s NAME READY STATUS RESTARTS AGE pod/block-pod 1/1 Running 0 26s
- Aplique una revisión a la PVC para aumentar su tamaño. Por ejemplo, aumente el tamaño a 2 Gi.
Con esta acción se activa una expansión en el volumen asociado a la PVC.
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- Compruebe que el tamaño de PVC y PV haya aumentado.
$ kubectl get pvc,pv,pod NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/block-pvc Bound pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 2Gi RWO block-sc 6m18s NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 2Gi RWO Delete Bound default/block-pvc block-sc 6m11s NAME READY STATUS RESTARTS AGE pod/block-pod 1/1 Running 0 101s
- Utilice vSphere Client para comprobar el nuevo tamaño del volumen persistente.
Consulte Supervisar el estado del volumen en un clúster de Tanzu Kubernetes Grid.
Expandir un volumen persistente en modo sin conexión
Se considera que un volumen está sin conexión cuando no está asociado a un nodo o pod. Los clústeres de Tanzu Kubernetes Grid admiten la expansión de volúmenes sin conexión.
- Cree una notificación de volumen persistente (PVC) para la clase de almacenamiento existente.
En el ejemplo, el tamaño del almacenamiento solicitado es 1 Gi.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-block-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: example-block-sc
kubectl apply -f example-block-pvc.yaml
- Aplique una revisión a la PVC para aumentar su tamaño.
Si la PVC no está asociado a un nodo o no lo está usando un pod, utilice el siguiente comando para aplicar una revisión a la PVC. En este ejemplo, el aumento de almacenamiento solicitado es de 2 Gi.
Con esta acción se activa una expansión en el volumen asociado a la PVC.kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- Compruebe que el tamaño del volumen haya aumentado.
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 2Gi RWO Delete Bound default/example-block-pvc example-block-sc 6m44s
- Compruebe que el cambio de tamaño de la PVC esté pendiente.
Nota: El tamaño de la PVC no cambia hasta que un pod utiliza la PVC.El siguiente ejemplo muestra que el tamaño de la PVC no ha cambiado porque un pod no la ha utilizado. Si ejecuta
kubectl describe pvc
, verá la condiciónFilesystemResizePending
aplicada en la PVC. Una vez que un pod la utilice, cambiará de tamaño.kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE example-block-pvc Bound pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 1Gi RWO example-block-sc 6m57s
- Cree un pod para utilizar la PVC.
Cuando el pod utiliza la PVC, se expande el sistema de archivos.
- Compruebe que el tamaño de la PVC se haya modificado.
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE example-block-pvc Bound pvc-24114458-9753-428e-9c90-9f568cb25788 2Gi RWO example-block-sc 2m12s
La condiciónFilesystemResizePending
se ha eliminado de la PVC. La expansión del volumen se ha completado. - Utilice vSphere Client para comprobar el nuevo tamaño del volumen persistente.
Consulte Supervisar el estado del volumen en un clúster de Tanzu Kubernetes Grid.