Vous pouvez utiliser la fonctionnalité d'extension de volume Kubernetes pour développer un volume de blocs persistant après sa création. Les clusters Service TKG prennent en charge l'extension de volume hors ligne et en ligne.
À propos de l'extension de volume persistant
Dans les classes de stockage qui figurent dans l'environnement du cluster TKG, allowVolumeExpansion
est défini sur true
par défaut. Ce paramètre permet de modifier la taille d'un volume hors ligne ou en ligne.
Un volume est considéré comme hors ligne lorsqu'il n'est pas attaché à un nœud ou à un groupe. Un volume en ligne est un volume disponible sur un nœud ou un groupe.
Le niveau de prise en charge de la fonctionnalité d'extension de volume dépend de la version de vSphere. Vous pouvez développer les volumes créés dans les versions antérieures de vSphere lorsque vous mettre à niveau votre environnement vSphere vers des versions appropriées qui supportent les extensions.
- Vous pouvez augmenter les volumes jusqu'aux limites spécifiées par les quotas de stockage. vSphere IaaS control plane prend en charge les demandes de redimensionnement consécutives pour un objet de réclamation de volume persistant.
- Tous les types de centres de données, notamment VMFS, vSAN, vSAN Direct, vVols et NFS, prennent en charge l'extension de volume.
- Vous pouvez effectuer une extension de volume pour des déploiements ou des pods autonomes.
- Vous pouvez redimensionner des volumes provisionnés statiquement dans un cluster Tanzu Kubernetes Grid si des classes de stockage leur sont associées.
- Vous ne pouvez pas étendre des volumes créés dans le cadre d'un StatefulSet.
- Si un disque virtuel sur lequel repose un volume a des snapshots, il ne peut pas être redimensionné.
- vSphere IaaS control plane ne prend pas en charge l'extension de volume pour les volumes dans une arborescence ou les volumes migrés.
Développer un volume persistant en mode en ligne
Un volume en ligne est un volume disponible sur un nœud ou un groupe. En tant qu'ingénieur DevOps, vous pouvez développer un volume de blocs persistants en ligne. Les clusters Tanzu Kubernetes Grid prennent en charge l'extension de volume en ligne.
- Recherchez la réclamation de volume persistant à redimensionner à l'aide de la commande suivante.
Notez que la taille de stockage que le volume utilise dans cet exemple est 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
- Corrigez la PVC pour augmenter sa taille. Par exemple, augmentez la taille à 2 Gi.
Cette action déclenche une extension dans le volume associé à la PVC.
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- Vérifiez que la taille du PV et de la PVC a augmenté.
$ 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
- Utilisez vSphere Client pour vérifier la nouvelle taille de volume persistant.
Reportez-vous à la section Surveiller la santé du volume dans un cluster Tanzu Kubernetes Grid.
Développer un volume persistant en mode hors ligne
Un volume est considéré comme hors ligne lorsqu'il n'est pas attaché à un nœud ou à un groupe. Les clusters Tanzu Kubernetes Grid prennent en charge l'extension de volume hors ligne.
- Créez une réclamation de volume persistant (PVC) pour une classe de stockage existante.
Dans l'exemple, la taille du stockage demandé est 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
- Corrigez la PVC pour augmenter sa taille.
Si la PVC n'est pas attachée à un nœud ou n'est pas utilisée par un espace, utilisez la commande suivante pour le corriger la PVC. Dans cet exemple, l'augmentation du stockage demandée est de 2 Gi.
Cette action déclenche une extension dans le volume associé à la PVC.kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- Vérifiez que la taille du volume a augmenté.
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
- Vérifiez que le redimensionnement de la PVC est en attente.
Note : La taille de la PVC reste inchangée jusqu'à ce que la PVC soit utilisée par un espace.L'exemple suivant montre que la taille de PVC n'a pas changé, car elle n'a pas été utilisée par un espace. Si vous exécutez
kubectl describe pvc
, vous voyez la conditionFilesystemResizePending
appliquée à la PVC. Une fois qu'il est utilisé par un espace, sa taille change.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
- Créez un espace pour utiliser la PVC.
Lorsque la PVC est utilisée par l'espace, le système de fichiers est développé.
- Vérifiez que la taille de la PVC a été modifiée.
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
L'instructionFilesystemResizePending
a été supprimée de la PVC. L'extension du volume est terminée. - Utilisez vSphere Client pour vérifier la nouvelle taille de volume persistant.
Reportez-vous à la section Surveiller la santé du volume dans un cluster Tanzu Kubernetes Grid.