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.

Note : Vous ne pouvez développer que des volumes de blocs persistants. Actuellement, vSphere IaaS control plane ne prend pas en charge l'extension de volume pour les volumes ReadWriteMany.
Lorsque vous étendez un volume de bloc persistant, gardez à l'esprit les points suivants :
  • 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.

  1. 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
  2. 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
  3. 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
  4. 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.

  1. 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 
  2. 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"}}}}'
  3. 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
  4. 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 condition FilesystemResizePending 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
  5. 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é.

  6. 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'instruction FilesystemResizePending a été supprimée de la PVC. L'extension du volume est terminée.
  7. 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.