È possibile utilizzare la funzionalità di espansione dei volumi Kubernetes per espandere un volume di blocco persistente dopo la sua creazione. I cluster Servizio TKG supportano l'espansione dei volumi offline e online.
Informazioni sull'espansione del volume persistente
Nelle classi di storage presenti nell'ambiente del cluster TKG, l'opzione allowVolumeExpansion
è true
per impostazione predefinita. Questo parametro consente di modificare le dimensioni di un volume offline o online.
Un volume viene considerato offline quando non è collegato a un nodo o pod. Un volume online è un volume disponibile in un nodo o un pod.
Il livello di supporto della funzionalità di espansione del volume dipende dalla versione vSphere. È possibile espandere i volumi creati nelle versioni precedenti di vSphere quando si aggiorna l'ambiente di vSphere alle versioni appropriate che supportano le espansioni.
- È possibile espandere i volumi fino ai limiti specificati dalle quote di storage. vSphere IaaS control plane supporta richieste di ridimensionamento consecutive per un oggetto richiesta volume persistente.
- Tutti i tipi di datastore, inclusi VMFS, vSAN, vSAN Direct, vVols e NFS, supportano l'espansione dei volumi.
- È possibile eseguire l'espansione del volume per distribuzioni o pod autonomi.
- È possibile ridimensionare i volumi di cui è stato eseguito il provisioning statico in un cluster Tanzu Kubernetes Grid se ai volumi sono associate classi di storage.
- Non è possibile espandere volumi creati come parte di uno StatefulSet.
- Se un disco virtuale che supporta un volume include snapshot, non può essere ridimensionato.
- vSphere IaaS control plane non supporta l'espansione del volume per i volumi nella struttura o migrati.
Espansione di un volume persistente in modalità online
Un volume online è un volume disponibile in un nodo o un pod. Un tecnico di DevOps può espandere un volume di blocchi persistenti online. I cluster Tanzu Kubernetes Grid supportano l'espansione dei volumi online.
- Individuare la richiesta di volume persistente da ridimensionare utilizzando il comando seguente.
In questo esempio, si noti che la dimensione dello storage utilizzato dal volume è 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
- Applicare patch al PVC per aumentarne le dimensioni. Ad esempio, aumentare le dimensioni a 2 Gi.
Questa azione attiva un'espansione del volume associato al PVC.
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- Verificare che le dimensioni del PVC e del PV siano aumentate.
$ 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
- Utilizzare il vSphere Client per verificare le nuove dimensioni del volume persistente.
Vedere Monitoraggio dell'integrità dei volumi in un cluster Tanzu Kubernetes Grid.
Espansione di un volume persistente in modalità offline
Un volume viene considerato offline quando non è collegato a un nodo o pod. I cluster Tanzu Kubernetes Grid supportano l'espansione del volume offline.
- Creare una richiesta di volume persistente (PVC) per una classe di storage esistente.
Nell'esempio, la dimensione dello storage richiesto è 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
- Applicare patch al PVC per aumentarne le dimensioni.
Se il PVC non è collegato a un nodo o è utilizzato da un pod, utilizzare il comando seguente per applicare una patch al PVC. In questo esempio, l'aumento dello storage richiesto è 2 Gi.
Questa azione attiva un'espansione del volume associato al PVC.kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- Verificare che la dimensione del volume sia aumentata.
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
- Verificare che il ridimensionamento della PVC sia in sospeso.
Nota: La dimensione del PVC rimane invariata finché il PVC non viene utilizzato da un pod.L'esempio seguente mostra che le dimensioni della PVC non sono state modificate perché non sono state utilizzate da un pod. Se si esegue
kubectl describe pvc
, viene visualizzata la condizioneFilesystemResizePending
applicata alla PVC. Una volta utilizzata da un pod, le sue dimensioni cambiano.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
- Creare un pod per utilizzare il PVC.
Quando il PVC viene utilizzato dal pod, il file system viene espanso.
- Verificare che le dimensioni del PVC siano state modificate.
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 condizioneFilesystemResizePending
è stata rimossa dal PVC. L'espansione del volume è stata completata. - Utilizzare il vSphere Client per verificare le nuove dimensioni del volume persistente.
Vedere Monitoraggio dell'integrità dei volumi in un cluster Tanzu Kubernetes Grid.