En tant qu’ingénieur DevOps, vous pouvez utiliser la fonctionnalité d’extension de volume Kubernetes pour développer un volume de blocs persistant après sa création. Les deux types de clusters, Superviseurs et Tanzu Kubernetes Grid, prennent en charge l'extension de volume hors ligne et en ligne.

Dans les classes de stockage qui figurent dans l'environnement vSphere with Tanzu, 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.

Lorsque vous étendez les volumes, gardez à l'esprit les points suivants :
  • Vous pouvez augmenter les volumes jusqu’aux limites spécifiées par les quotas de stockage. vSphere with Tanzu 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 Superviseur et 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 with Tanzu 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 hors ligne

Un volume est considéré comme hors ligne lorsqu'il n'est pas attaché à un nœud ou à un groupe. Les deux types de clusters, Superviseurs et Tanzu Kubernetes Grid, prennent en charge l'extension de volume hors ligne.

Conditions préalables

Assurez-vous de mettre à niveau votre environnement vSphere vers une version appropriée qui prend en charge l'extension de volume hors ligne.

Procédure

  1. Créez une réclamation de volume persistant (PVC) avec une classe de stockage.
    1. Définissez une PVC en utilisant le manifeste YAML suivant comme exemple.
      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
    2. Appliquez la PVC au cluster Kubernetes.
      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.
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    Cette action déclenche une extension dans le volume associé à la PVC.
  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
    Note : La taille de la PVC reste inchangée jusqu'à ce que la PVC soit utilisée par un espace.
    L'exemple suivant indique que la taille de la PVC n'a pas changé. Si vous décrivez la PVC, vous pouvez voir la condition FilesystemResizePending appliquée sur la PVC.
    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
  4. 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é.
  5. 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.

Que faire ensuite

Un administrateur vSphere peut voir la nouvelle taille de volume dans vSphere Client. Reportez-vous à la section Surveiller les volumes persistants dans vSphere Client.

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 deux types de clusters, Superviseurs et Tanzu Kubernetes Grid, prennent en charge l'extension de volume en ligne.

Conditions préalables

Assurez-vous de mettre à niveau votre environnement vSphere vers une version appropriée qui prend en charge l'extension de volume en ligne.

Procédure

  1. Recherchez la réclamation de volume persistant à redimensionner.
    $ 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

    Notez que la taille de stockage que le volume utilise est de 1 Gi.

  2. Corrigez la PVC pour augmenter sa taille.
    Par exemple, augmentez la taille à 2 Gi.
    $ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    persistentvolumeclaim/block-pvc edited
    Cette action déclenche une extension dans le volume associé à la PVC.
  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

Que faire ensuite

Un administrateur vSphere peut voir la nouvelle taille de volume dans vSphere Client. Reportez-vous à la section Surveiller les volumes persistants dans vSphere Client.