Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Expandir um volume de Cloud Disk online

Última atualização: Sep 21, 2026

O plug-in Container Storage Interface (CSI) no ACK permite expandir um volume de Cloud Disk ao modificar uma persistent volume claim (PVC), sem reiniciar ou interromper os pods em execução. Esse recurso requer Kubernetes 1.16 ou superior.

Pré-requisitos

Antes de começar, verifique se:

  • A StorageClass vinculada à PVC tem allowVolumeExpansion: true. As StorageClasses fornecidas pelo ACK já trazem essa configuração por padrão. Em StorageClasses personalizadas, defina-a manualmente. Não é possível alterar as propriedades de uma StorageClass após a criação; crie uma nova se necessário.

  • O pod que usa o disco está no status Running.

  • O disco não é básico. Discos básicos não aceitam expansão online.

  • O cluster roda Kubernetes 1.16 ou superior. Para atualizar, consulte Upgrade clusters.

  • O disco aceita redimensionamento. Consulte ResizeDisk para visualizar os tipos de disco compatíveis.

Importante

Crie um snapshot antes de redimensionar para fazer backup dos dados. Exclua o snapshot após concluir a expansão para evitar cobranças desnecessárias. Consulte Use disk snapshots.

Apenas para clusters dedicados do ACK: Conceda a permissão ResizeDisk à função RAM do cluster. Clusters gerenciados pelo ACK já têm essa permissão.

  1. Faça login no ACK console e clique em Clusters.

  2. Clique no nome do cluster e, depois, em Cluster Information no painel à esquerda.

  3. Na aba Basic Information, localize Master RAM Role na seção Cluster Resources e clique no link.

  4. Na página Roles do console RAM, adicione a permissão ResizeDisk. Consulte Modify the document and description of a custom policy.

Veja abaixo um exemplo de política de permissões com a ação 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"
]

Expandir um volume de disco usando kubectl

O exemplo abaixo usa um volume de disco criado em Create a dynamically provisioned disk volume. Modificar a PVC aciona o plug-in CSI para redimensionar o disco subjacente e expandir o sistema de arquivos online, mantendo o pod em execução durante todo o processo.

  1. Conecte-se ao cluster. Consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster ou Use kubectl on Workbench or Cloud Shell to connect to ACK clusters.

  2. Verifique se o pod está no status Running.

    kubectl get pod -l app=nginx

    Saída esperada:

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          23h
  3. Verifique o uso atual do disco e a PVC.

    Importante

    Em volumes provisionados estaticamente, garanta que storageClassName na PVC não esteja em branco e que exista uma StorageClass com esse nome no cluster. Se não houver StorageClass correspondente, crie uma com os atributos do disco existente e defina allowVolumeExpansion: true.

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

    Saída esperada:

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

    Saída esperada (a PVC disk-pvc está vinculada com capacidade 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. Confirme se a StorageClass tem allowVolumeExpansion: true.

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

    Saída esperada:

    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. Aplique um patch na PVC para solicitar 30 GiB.

    kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  6. Aguarde um minuto e verifique a nova capacidade.

    kubectl get pvc

    Saída esperada:

    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

    Saída esperada:

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

Expandir um volume de disco usando o ACK console

Nota

O ACK console aceita apenas volumes de disco provisionados dinamicamente. Para volumes provisionados estaticamente, use kubectl.

  1. Faça login no ACK console e clique em Clusters.

  2. Clique no nome do cluster para acessar a página de gerenciamento.

  3. Verifique o status do pod e localize a PVC.

    1. No painel de navegação à esquerda, escolha Workloads > StatefulSets.

    2. Clique no nome da aplicação. Na aba Pods, confirme se o pod está no status Running.

    3. Clique no nome do pod. Na aba Volumes, anote a PVC usada pelo pod.

  4. Confirme se a expansão está habilitada na StorageClass.

    1. No painel de navegação à esquerda, escolha Volumes > Storage Classes.

    2. Localize a StorageClass usada pelo volume de disco e clique em View in YAML.

    3. Confirme a presença de allowVolumeExpansion: true.

      Exemplo de saída:

      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. Expanda a PVC.

    1. No painel de navegação à esquerda, escolha Volumes > Persistent Volume Claims.

    2. Localize a PVC e clique em Expand.

    3. Insira a nova capacidade, selecione I understand and agree to the preceding operations. e clique em OK.

      Intervalo de expansão: mínimo de 21 GiB, máximo de 32.768 GiB. Valores decimais não são aceitos.

      Nota

      Se nenhum pod referenciar a PVC, a expansão permanecerá no status Expanding.

    4. Aguarde a conclusão da expansão e verifique se a PVC exibe a nova capacidade.

Próximos passos