Todos os produtos
Search
Central de documentação

Container Compute Service:Use a disk as a dynamic volume

Última atualização: Sep 17, 2026

Monte um volume de disco dinâmico em uma aplicação e verifique a persistência dos dados.

Contexto

Discos são produtos de armazenamento em nível de bloco que utilizam mecanismo distribuído de múltiplas réplicas para oferecer baixa latência, alto desempenho, durabilidade e confiabilidade. São ideais para dados não compartilhados com requisitos exigentes de I/O e latência. Para mais informações, consulte Storage overview.

Nota

O ACS suporta apenas montagem dinâmica de volumes de disco; a montagem estática não é suportada.

Pré-requisitos

O componente managed-csiprovisioner deve estar instalado no cluster ACS.

Nota

Acesse a página de gerenciamento do cluster ACS no console ACS. No painel de navegação à esquerda, escolha Operations > Add-ons. Na aba Storage, verifique se o managed-csiprovisioner está instalado.

Limitações

  • O disco é um armazenamento não compartilhado e pode ser montado em apenas um Pod.

  • A montagem do disco só é possível em Pods na mesma zona de disponibilidade.

Observações de uso

  • Recomendamos montar o disco em um StatefulSet ou em um Pod independente, evitando seu uso em Deployments.

    Nota

    Como um disco pode ser montado em apenas um Pod, não é possível configurar volumes independentes para cada Pod em um Deployment. Além disso, a estratégia de atualização do Deployment pode impedir que um novo Pod monte o disco durante uma reinicialização.

  • Discos criados dinamicamente são cobrados com base no modelo de pagamento conforme o uso.

  • Se você configurar securityContext.fsgroup no arquivo YAML da aplicação, o ACS executará operações chmod e chown após a conclusão da montagem, aumentando o tempo total.

    Nota

    Quando securityContext.fsgroup está configurado, a propriedade dos arquivos no volume é ajustada durante a montagem. Dependendo da quantidade de arquivos, isso pode aumentar significativamente o tempo de inicialização. Defina fsGroupChangePolicy como OnRootMismatch para alterar a propriedade apenas na primeira inicialização do contêiner; atualizações ou reconstruções subsequentes do Pod não serão afetadas. Se isso não atender às suas necessidades, use um initContainer para implementar lógica de permissões personalizada.

Montar um volume de disco

kubectl

Etapa 1: Criar uma StorageClass

O ACS fornece uma StorageClass padrão chamada alicloud-disk-topology-alltype que cria um volume persistente (PV) tentando os seguintes tipos de disco nesta ordem: cloud_essd (ESSD), cloud_ssd (SSD padrão) e cloud_efficiency (disco ultra). Se esse padrão não atender aos seus requisitos, crie uma nova StorageClass conforme descrito abaixo.

  1. Conecte-se ao cluster ACS. Para mais informações, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster e Use kubectl on Cloud Shell to manage ACS clusters.

  2. Salve o conteúdo YAML a seguir como disk-sc.yaml. Modifique os parâmetros conforme descrito na tabela abaixo.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-essd
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      type: cloud_essd
      fstype: ext4
      performanceLevel: PL1
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    parameters.type

    Tipo de disco. Valores válidos:

    • cloud_essd_entry: disco ESSD Entry

    • cloud_auto: disco ESSD AutoPL

    • cloud_essd (padrão): ESSD

    • cloud_ssd: SSD padrão

    • cloud_efficiency: disco ultra

    É possível combinar esses tipos. Por exemplo: type: cloud_efficiency, cloud_ssd, cloud_essd. O sistema tenta cada tipo em ordem até criar um disco com sucesso.

    Nota

    Escolha o tipo de disco com base nas necessidades de faturamento e desempenho. Para mais informações, consulte Block Storage Pricing e Block storage performance.

    parameters.fstype

    Tipo de sistema de arquivos. Padrão: ext4. Valores válidos: ext3, ext4 e xfs.

    parameters.performanceLevel

    Nível de desempenho do ESSD. Padrão: PL1. Valores válidos: PL0, PL1, PL2 e PL3. Para mais informações, consulte ESSDs.

    provisioner

    Driver de armazenamento. Defina como diskplugin.csi.alibabacloud.com para usar o plugin CSI de disco do Alibaba Cloud.

    reclaimPolicy

    Política de recuperação do disco. Apenas Delete é suportado, o que significa que o PV e o disco subjacente são excluídos quando a solicitação de volume persistente (PVC) é excluída.

    volumeBindingMode

    Modo de vinculação do volume. Recomendamos WaitForFirstConsumer para clusters multizona.

    • WaitForFirstConsumer: Atrasa a vinculação do volume. O Pod é agendado primeiro e, em seguida, o disco é criado na zona de disponibilidade do Pod.

    • Immediate: Cria o disco antes do agendamento do Pod.

    Importante

    Se você utilizar poder computacional do ACS em um cluster ACK e o Pod do ACS precisar montar um disco, use nodeSelector ou ResourcePolicy para agendar o Pod em um nó virtual. Caso agende o Pod adicionando o rótulo (alibabacloud.com/acs: "true"), StorageClasses com o tipo WaitForFirstConsumer não são suportadas.

    allowVolumeExpansion

    Indica se a expansão automática do disco é permitida.

  3. Crie a StorageClass.

    kubectl create -f disk-sc.yaml
  4. Visualize a StorageClass.

    kubectl get sc

    Saída esperada:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-disk-essd               diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   78s
    alicloud-disk-topology-alltype   diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   23d
    ......

Etapa 2: Criar uma PVC

  1. Salve o conteúdo YAML a seguir como disk-pvc.yaml.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOncePod
      volumeMode: Filesystem
      resources:
        requests:
          storage: 20Gi
      storageClassName: alicloud-disk-essd

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    accessModes

    Modo de acesso. Apenas ReadWriteOncePod é suportado.

    volumeMode

    Modo do volume. Valores válidos:

    • Filesystem (padrão): sistema de arquivos

    • Block: dispositivo de bloco

    storage

    Capacidade de armazenamento alocada ao Pod, que determina o tamanho do disco a ser criado.

    storageClassName

    Nome da StorageClass a ser utilizada.

  2. Crie a PVC.

    kubectl create -f disk-pvc.yaml
  3. Visualize a PVC.

    kubectl get pvc

    A saída esperada mostra que a PVC ainda não está vinculada a um PV porque volumeBindingMode está definido como WaitForFirstConsumer:

    NAME       STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Pending                                      alicloud-disk-essd   <unset>                 7s

Etapa 3: Criar uma aplicação e montar o disco

  1. Salve o conteúdo YAML a seguir como disk-test.yaml.

    O YAML abaixo cria um StatefulSet com um Pod. O Pod solicita armazenamento por meio de uma PVC chamada disk-pvc e monta o volume em /data.

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: disk-test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
            - name: pvc-disk
              mountPath: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc
  2. Crie o StatefulSet e monte o disco.

    kubectl create -f disk-test.yaml
    Importante

    O sistema provisiona automaticamente um disco no modelo de pagamento conforme o uso e um PV correspondente com base nas configurações da PVC e da StorageClass.

  3. Verifique o status de implantação do Pod no StatefulSet.

    kubectl get pod | grep disk-test

    A saída esperada exibe um Pod, pois a contagem de réplicas do StatefulSet é 1.

    disk-test-0   1/1     Running   0          52s
  4. Visualize a PVC.

    kubectl get pvc

    A saída esperada indica que a PVC agora está vinculada ao PV criado automaticamente.

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf698s3h14isyj6b****   20Gi       RWOP           alicloud-disk-essd   <unset>                 111s
  5. Verifique o caminho de montagem para confirmar que o disco foi montado.

    kubectl exec disk-test-0 -- df | grep data

    Saída esperada:

    /dev/vdb        20466256      24  20449848   1% /data

Console

Etapa 1: Criar StorageClass

O ACS fornece uma StorageClass padrão chamada alicloud-disk-topology-alltype que cria um volume persistente (PV) tentando os seguintes tipos de disco nesta ordem: cloud_essd (ESSD), cloud_ssd (SSD padrão) e cloud_efficiency (disco ultra). Se esse padrão não atender aos seus requisitos, crie uma nova StorageClass conforme descrito abaixo.

  1. Faça login no console ACS.

  2. Na página Clusters, clique em no nome do cluster para acessar a página de gerenciamento do cluster.

  3. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Volumes > StorageClasses.

  4. Crie uma StorageClass.

    1. Na página StorageClasses, clique em Create.

    2. Na caixa de diálogo exibida, configure os parâmetros e clique em Create.

      Parâmetro

      Descrição

      Exemplo

      Name

      Nome da StorageClass. Siga os requisitos de formato exibidos na tela.

      alicloud-disk-essd

      PV Type

      Selecione Disk.

      Disk

      Parameter

      O parâmetro padrão é type, que especifica o tipo de disco. Valores válidos:

      • cloud_essd_entry: disco ESSD Entry

      • cloud_auto: disco ESSD AutoPL

      • cloud_essd (padrão): ESSD

      • cloud_ssd: SSD padrão

      • cloud_efficiency: disco ultra

      É possível combinar esses tipos. Por exemplo: type: cloud_efficiency, cloud_ssd, cloud_essd. O sistema tenta cada tipo em ordem até criar um disco com sucesso.

      Nota

      Escolha o tipo de disco com base nas necessidades de faturamento e desempenho. Para mais informações, consulte Block Storage Pricing e Block storage performance.

      Você pode adicionar os seguintes parâmetros:

      • fstype

        Tipo de sistema de arquivos. Padrão: ext4. Valores válidos: ext3, ext4 e xfs.

      • performanceLevel

        Nível de desempenho do ESSD. Padrão: PL1. Valores válidos: PL0, PL1, PL2 e PL3. Para mais informações, consulte ESSDs.

      type: cloud_essd

      Reclaim Policy

      Política de recuperação do disco. Apenas Delete é suportado, o que significa que o PV e o disco subjacente são excluídos quando a solicitação de volume persistente (PVC) é excluída.

      Delete

      Binding Mode

      Modo de vinculação do volume. Recomendamos WaitForFirstConsumer para clusters multizona.

      • WaitForFirstConsumer: Atrasa a vinculação do volume. O Pod é agendado primeiro e, em seguida, o disco é criado na zona de disponibilidade do Pod.

      • Immediate: Cria o disco antes do agendamento do Pod.

      Importante

      Se você utilizar poder computacional do ACS em um cluster ACK e o Pod do ACS precisar montar um disco, use nodeSelector ou ResourcePolicy para agendar o Pod em um nó virtual. Caso agende o Pod adicionando o rótulo (alibabacloud.com/acs: "true"), StorageClasses com o tipo WaitForFirstConsumer não são suportadas.

      WaitForFirstConsumer

Etapa 2: Criar uma PVC

  1. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Volumes > Persistent Volume Claims.

  2. Na página Persistent Volume Claims, clique em Create.

  3. Na caixa de diálogo exibida, configure os parâmetros e clique em Create.

    Parâmetro

    Descrição

    Exemplo

    PVC Type

    Selecione Disk.

    Disk

    Name

    Nome da PVC. Siga os requisitos de formato exibidos na tela.

    disk-pvc

    Allocation Mode

    Por padrão, Use StorageClass vem selecionado.

    Use StorageClass

    Existing Storage Class

    Selecione a StorageClass a ser utilizada.

    alicloud-disk-essd

    Capacity

    Capacidade de armazenamento alocada ao Pod, que determina o tamanho do disco a ser criado.

    20Gi

    Access Mode

    Apenas ReadWriteOncePod é suportado, o que significa que o volume pode ser montado como leitura e escrita por um único Pod.

    ReadWriteOncePod

    Após a criação, a PVC aparece na página Persistent Volume Claims. Como o modo de vinculação na StorageClass é WaitForFirstConsumer, a PVC ainda não está vinculada a um PV e seu status é Pending.

Etapa 3: Criar uma aplicação e montar o disco

  1. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Workloads > StatefulSets.

  2. Na página StatefulSets, clique em Create from Image.

  3. Configure os parâmetros do StatefulSet e clique em Create.

    Defina os parâmetros abaixo e mantenha os padrões para os demais. Para mais informações, consulte Create a StatefulSet workload.

    Seção de configuração

    Parâmetro

    Descrição

    Exemplo

    Basic Information

    Application Name

    Nome do StatefulSet. Siga os requisitos de formato exibidos na tela.

    disk-test

    Replicas:

    Número de réplicas para o StatefulSet.

    1

    Container

    Image Name

    Endereço da imagem do contêiner para a aplicação.

    registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest

    Required Resources

    Recursos de vCPU e memória solicitados.

    0,25 vCPU, 0,5 GiB

    Volume

    Clique em Add PVC e configure os parâmetros.

    • Mount Source: Selecione a PVC criada.

    • Container Path: Insira o caminho no contêiner onde o disco será montado.

    • Mount Source: disk-pvc

    • Container Path: /data

  4. Verifique o status de implantação da aplicação.

    1. Na página StatefulSets, clique em no nome da aplicação.

    2. Na aba Pods, confirme se o Pod está em execução normal (status Running).

  5. Verifique o volume e a solicitação.

    • Na página Persistent Volumes, localize o PV criado automaticamente. O nome do PV corresponde ao ID do disco.

    • Na página Persistent Volume Claims, confirme que a PVC está vinculada ao PV e com status Bound.

Verificar a persistência de dados do disco

O StatefulSet criado acima contém um Pod com um disco montado. Quando o Pod é excluído, um novo Pod é criado automaticamente e remonta o mesmo disco, preservando os dados. Siga estas etapas para verificar a persistência dos dados.

  1. Visualize os dados no disco no caminho de montagem.

    kubectl exec disk-test-0 -- ls /data

    Saída esperada:

    lost+found
  2. Grave um arquivo de teste no disco.

    kubectl exec disk-test-0 -- touch /data/test
  3. Exclua o Pod.

    kubectl delete pod disk-test-0
    Nota

    Após excluir um Pod em um StatefulSet, o sistema cria automaticamente um novo Pod.

  4. Visualize o Pod recém-criado.

    kubectl get pod

    A saída mostra que o novo Pod tem o mesmo nome do Pod excluído, comportamento padrão de um StatefulSet.

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          27s
  5. Verifique se o novo Pod remontou o disco e se os dados persistiram.

    kubectl exec disk-test-0 -- ls /data

    A saída indica que o arquivo test gravado anteriormente ainda está presente no disco.

    lost+found  test