Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Expand a cloud disk volume online

Dernière mise à jour :Sep 21, 2026

Le plug-in Container Storage Interface (CSI) d'ACK vous permet d'étendre un volume de disque cloud en modifiant une revendication de volume persistant (PVC), sans redémarrer ni interrompre vos pods en cours d'exécution. Cette fonctionnalité nécessite Kubernetes 1.16 ou une version ultérieure.

Prérequis

Avant de commencer, assurez-vous que :

  • La StorageClass liée au PVC possède l'attribut allowVolumeExpansion: true. Les StorageClasses fournies par ACK ont cet attribut défini par défaut. Pour les StorageClasses personnalisées, vous devez le définir manuellement. Les propriétés d'une StorageClass ne peuvent pas être modifiées après sa création ; créez-en une nouvelle si nécessaire.

  • Le pod utilisant le disque est dans l'état Running.

  • Le disque n'est pas un disque de base. Les disques de base ne prennent pas en charge l'extension en ligne.

  • Le cluster exécute Kubernetes 1.16 ou une version ultérieure. Pour effectuer la mise à niveau, consultez la rubrique Mettre à niveau des clusters.

  • Le disque prend en charge le redimensionnement. Consultez la documentation ResizeDisk pour connaître les types de disques pris en charge.

Important

Créez un snapshot avant le redimensionnement pour sauvegarder vos données. Supprimez le snapshot une fois l'extension terminée afin d'éviter des frais inutiles. Consultez la rubrique Utiliser des snapshots de disque.

Clusters dédiés ACK uniquement : Accordez l'autorisation ResizeDisk au rôle RAM du cluster. Les clusters gérés par ACK disposent déjà de cette autorisation.

  1. Connectez-vous à la console ACK et cliquez sur Clusters.

  2. Cliquez sur le nom du cluster, puis sur Cluster Information dans le volet de gauche.

  3. Dans l'onglet Basic Information , repérez Master RAM Role dans la section Cluster Resources et cliquez sur le lien.

  4. Sur la page Roles de la console RAM, ajoutez l'autorisation ResizeDisk. Consultez la rubrique Modifier le document et la description d'une politique personnalisée.

Voici un exemple de politique d'autorisation incluant l'action ResizeDisk :

"Action": [
    "ecs:AttachDisk",
    "ecs:DetachDisk",
    "ecs:DescribeDisks",
    "ecs:CreateDisk",
    "ecs:CreateSnapshot",
    "ecs:DeleteDisk",
    "ecs:ResizeDisk",
    "ecs:CreateNetworkInterface",
    "ecs:DescribeNetworkInterfaces",
    "ecs:AttachNetworkInterface",
    "ecs:DetachNetworkInterface",
    "ecs:DeleteNetworkInterface",
    "ecs:DescribeInstanceAttribute",
    "ecs:AssignPrivateIpAddresses",
    "ecs:UnassignPrivateIpAddresses",
    "ecs:DescribeInstances"
]

Étendre un volume de disque à l'aide de kubectl

L'exemple suivant utilise un volume de disque créé selon la procédure décrite dans la rubrique Créer un volume de disque approvisionné dynamiquement. La modification du PVC déclenche le plug-in CSI pour redimensionner le disque sous-jacent et étendre le système de fichiers en ligne ; le pod reste opérationnel tout au long de l'opération.

  1. Connectez-vous à votre cluster. Consultez les rubriques Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster ou Utiliser kubectl sur Workbench ou Cloud Shell pour se connecter aux clusters ACK.

  2. Vérifiez que le pod est dans l'état Running.

    kubectl get pod -l app=nginx

    Résultat attendu :

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          23h
  3. Vérifiez l'utilisation actuelle du disque et le PVC.

    Important

    Pour un volume de disque approvisionné statiquement, assurez-vous que le champ storageClassName du PVC n'est pas vide et qu'une StorageClass portant ce nom existe dans le cluster. Si aucune StorageClass correspondante n'existe, créez-en une avec les attributs du disque existant et définissez allowVolumeExpansion: true.

    kubectl exec disk-test-0 -- df -h /data

    Résultat attendu :

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vdb         20G   24K   20G   1% /data
    kubectl get pvc

    Résultat attendu (le PVC disk-pvc est lié avec une capacité de 20 GiB) :

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf6axyb1er071h6o****   20Gi       RWO            alicloud-disk-wait-for-first-consumer   <unset>                 23h
  4. Confirmez que la StorageClass possède l'attribut allowVolumeExpansion: true.

    kubectl get sc alicloud-disk-wait-for-first-consumer -o yaml

    Résultat attendu :

    allowVolumeExpansion: true
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      creationTimestamp: "2025-01-21T08:48:26Z"
      name: alicloud-disk-wait-for-first-consumer
      resourceVersion: "59936"
      uid: 5bdb798e-5888-40df-9f91-259ee8510f34
    parameters:
      type: cloud_auto,cloud_essd,cloud_ssd
    provisioner: diskplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    volumeBindingMode: WaitForFirstConsumer
  5. Appliquez un correctif au PVC pour demander 30 GiB.

    kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  6. Attendez une minute, puis vérifiez la nouvelle capacité.

    kubectl get pvc

    Résultat attendu :

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf6axyb1er071h6o****   30Gi       RWO            alicloud-disk-wait-for-first-consumer   <unset>                 23h
    kubectl exec disk-test-0 -- df -h /data

    Résultat attendu :

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vdb         30G   24K   30G   1% /data

Étendre un volume de disque à l'aide de la console ACK

Remarque

La console ACK prend en charge uniquement les volumes de disque approvisionnés dynamiquement. Pour les volumes de disque approvisionnés statiquement, utilisez kubectl.

  1. Connectez-vous à la console ACK et cliquez sur Clusters.

  2. Cliquez sur le nom du cluster pour accéder à la page de gestion du cluster.

  3. Vérifiez l'état du pod et identifiez le PVC.

    1. Dans le volet de navigation de gauche, choisissez Workloads > StatefulSets.

    2. Cliquez sur le nom de l'application. Dans l'onglet Pods , confirmez que le pod est dans l'état Running.

    3. Cliquez sur le nom du pod. Dans l'onglet Volumes , notez le PVC utilisé par le pod.

  4. Confirmez que l'extension est activée pour la StorageClass.

    1. Dans le volet de navigation de gauche, choisissez Volumes > Storage Classes.

    2. Repérez la StorageClass utilisée par le volume de disque et cliquez sur View in YAML.

    3. Confirmez la présence de l'attribut allowVolumeExpansion: true.

      Exemple de résultat :

      allowVolumeExpansion: true
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        creationTimestamp: '2025-01-21T08:48:26Z'
        managedFields:
          - apiVersion: storage.k8s.io/v1
            fieldsType: FieldsV1
            fieldsV1:
              'f:allowVolumeExpansion': {}
              'f:parameters':
                .: {}
                'f:type': {}
              'f:provisioner': {}
              'f:reclaimPolicy': {}
              'f:volumeBindingMode': {}
            manager: okhttp
            operation: Update
            time: '2025-01-21T08:48:26Z'
        name: alicloud-disk-wait-for-first-consumer
        resourceVersion: '59936'
        uid: 5bdb798e-5888-40df-9f91-259ee8510f34
      parameters:
        type: 'cloud_auto,cloud_essd,cloud_ssd'
      provisioner: diskplugin.csi.alibabacloud.com
      reclaimPolicy: Retain
      volumeBindingMode: WaitForFirstConsumer
  5. Étendez le PVC.

    1. Dans le volet de navigation de gauche, choisissez Volumes > Persistent Volume Claims.

    2. Repérez le PVC et cliquez sur Expand.

    3. Saisissez la nouvelle capacité, cochez la case I understand and agree to the preceding operations. , puis cliquez sur OK.

      Plage d'extension : minimum 21 GiB, maximum 32 768 GiB. Les nombres décimaux ne sont pas pris en charge.

      Remarque

      Si le PVC n'est référencé par aucun pod, l'extension du PVC restera dans l'état Expanding.

    4. Attendez la fin de l'extension, puis vérifiez que le PVC affiche la nouvelle capacité.

Étapes suivantes