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 posterior.
Pré-requisitos
Antes de começar, verifique se:
A StorageClass vinculada à PVC tem
allowVolumeExpansion: true. As StorageClasses fornecidas pelo ACK já incluem essa configuração por padrão. Para 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 utiliza o disco está no estado Running.
O disco não é básico. Discos básicos não suportam expansão online.
O cluster executa Kubernetes 1.16 ou posterior. Para atualizar, consulte Atualizar clusters.
O disco suporta redimensionamento. Consulte ResizeDisk para verificar os tipos de disco compatíveis.
Crie um snapshot antes do redimensionamento para fazer backup dos dados. Exclua o snapshot após a conclusão da expansão para evitar cobranças desnecessárias. Consulte Usar snapshots de disco.
Apenas para clusters dedicados do ACK: Conceda a permissão ResizeDisk à função RAM do cluster. Clusters gerenciados pelo ACK já possuem essa permissão.
Faça login no console do ACK e clique em Clusters.
Clique no nome do cluster e, em seguida, em Cluster Information no painel à esquerda.
Na aba Basic Information, localize Master RAM Role na seção Cluster Resources e clique no link.
Na página Roles do console RAM, adicione a permissão
ResizeDisk. Consulte Modificar o documento e a descrição de uma política personalizada.

Expandir um volume de disco usando kubectl
O exemplo a seguir utiliza um volume de disco criado em Criar um volume de disco provisionado dinamicamente. 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.
Conecte-se ao cluster. Consulte Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster ou Usar kubectl no Workbench ou Cloud Shell para conectar-se a clusters ACK.
-
Verifique se o pod está no estado Running.
kubectl get pod -l app=nginxSaída esperada:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 23h -
Verifique o uso atual do disco e a PVC.
ImportantePara volumes de disco provisionados estaticamente, certifique-se de que
storageClassNamena PVC não esteja em branco e que exista uma StorageClass com esse nome no cluster. Caso não exista uma StorageClass correspondente, crie uma com os atributos do disco existente e definaallowVolumeExpansion: true.kubectl exec disk-test-0 -- df -h /dataSaída esperada:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 20G 24K 20G 1% /datakubectl get pvcSaída esperada (a PVC
disk-pvcestá 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 -
Confirme se a StorageClass tem
allowVolumeExpansion: true.kubectl get sc alicloud-disk-wait-for-first-consumer -o yamlSaí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 -
Aplique um patch na PVC para solicitar 30 GiB.
kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}' -
Aguarde um minuto e verifique a nova capacidade.
kubectl get pvcSaí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> 23hkubectl exec disk-test-0 -- df -h /dataSaída esperada:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 30G 24K 30G 1% /data
Expandir um volume de disco usando o console do ACK
O console do ACK suporta apenas volumes de disco provisionados dinamicamente. Para volumes provisionados estaticamente, use kubectl.
Faça login no console do ACK e clique em Clusters.
Clique no nome do cluster para acessar a página de gerenciamento.
-
Verifique o estado do pod e localize a PVC.
No painel de navegação à esquerda, escolha Workloads > StatefulSets.
Clique no nome da aplicação. Na aba Pods, confirme se o pod está no estado Running.

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

-
Confirme se a expansão está habilitada na StorageClass.
No painel de navegação à esquerda, escolha Volumes > Storage Classes.
Localize a StorageClass usada pelo volume de disco e clique em View in YAML.
Confirme a presença de
allowVolumeExpansion: true.
-
Expanda a PVC.
No painel de navegação à esquerda, escolha Volumes > Persistent Volume Claims.
Localize a PVC e clique em Expand.
Insira a nova capacidade, selecione I understand and agree to the preceding operations e clique em OK.

Aguarde a conclusão da expansão e verifique se a PVC exibe a nova capacidade.
Próximos passos
Para expandir automaticamente um volume de disco quando o uso ultrapassar um limiar, consulte Expandir automaticamente um volume de disco (visualização pública).
Para erros e soluções relacionados a volumes de disco, consulte Perguntas frequentes sobre volumes de disco.