Todos os produtos
Search
Central de documentação

Container Compute Service:Use NAS volumes

Última atualização: Sep 17, 2026

Para aplicações que exigem dados compartilhados e alto desempenho de I/O, utilize o Apsara File Storage NAS como volumes persistentes (PVs). Este tópico demonstra como montar um volume NAS em uma aplicação e verificar seu acesso compartilhado e a persistência de dados.

Contexto

O NAS é um sistema de arquivos distribuído que oferece acesso compartilhado, escalabilidade elástica, alta confiabilidade e alto desempenho. Essa solução é ideal para aplicações que necessitam de dados compartilhados e alto desempenho de I/O. Para mais informações, consulte Storage overview.

Nota
  • Para detalhes sobre especificações de armazenamento, desempenho, faturamento, regiões e zonas compatíveis, consulte General-purpose NAS e Extreme NAS.

  • O NAS de uso geral e o NAS Extreme possuem limitações diferentes quanto à conectividade de montagem, quantidade de sistemas de arquivos e tipos de protocolo. Para mais informações, consulte Limitations.

Você pode montar e usar volumes NAS das seguintes formas:

Pré-requisitos

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

Nota

Acesse a página de gerenciamento de clusters 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

  • Não é possível montar sistemas de arquivos NAS com o protocolo SMB.

  • Sistemas de arquivos NAS só podem ser montados em pods na mesma VPC.

    Nota

    É possível montar sistemas de arquivos NAS entre zonas dentro da mesma VPC.

  • A montagem de sistemas de arquivos NAS é suportada exclusivamente pelo protocolo NFSv3.

Considerações

  • O NAS fornece armazenamento compartilhado. Um único volume NAS pode ser montado em vários pods. Se múltiplos pods modificarem os mesmos dados simultaneamente, sua aplicação deverá gerenciar a sincronização de dados.

  • Ao montar um volume NAS, não configure securityContext.fsgroup no arquivo YAML da aplicação. Caso contrário, a montagem do volume poderá falhar.

    Nota

    Não é permitido modificar as permissões, o proprietário ou o grupo do diretório raiz / de um sistema de arquivos NAS.

  • Após montar um volume NAS, não exclua seu destino de montagem. Essa ação pode fazer com que o sistema operacional pare de responder.

Utilizar um sistema de arquivos NAS existente

Etapa 1: Obter informações do sistema de arquivos NAS

  1. Obtenha o ID da VPC e o ID do vSwitch utilizados pelos pods do ACS.

    Nota

    Essas informações estão disponíveis no console. Alternativamente, execute o comando kubectl get cm -n kube-system acs-profile -o yaml para visualizar o arquivo YAML do ConfigMap acs-profile. O ID da VPC e o ID do vSwitch encontram-se nos campos vpcId e vSwitchIds.

    1. Faça login no console ACS.

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

    3. No painel de navegação à esquerda, escolha Configuration > ConfigMaps.

    4. No topo da página ConfigMap, altere o namespace para kube-system. Em seguida, localize acs-profile e clique em Edit YAML.

    5. Extraia o ID da VPC e o ID do vSwitch dos campos vpcId e vSwitchIds.

  2. Verifique se o sistema de arquivos NAS existente atende aos requisitos e obtenha o endereço do destino de montagem.

    1. Faça login no console NAS. No painel de navegação à esquerda, clique em File System List.

    2. Localize o sistema de arquivos NAS desejado e confirme se sua região, zona e tipo de protocolo atendem aos requisitos.

      • Como o NAS não suporta montagem entre VPCs diferentes, ele não pode ser usado entre regiões. Certifique-se de que o sistema de arquivos NAS esteja na mesma região do seu cluster ACS.

      • Dentro da mesma VPC, é possível montar um sistema de arquivos NAS entre zonas. Contudo, para obter o melhor desempenho, recomenda-se que o sistema de arquivos NAS e os pods do cluster ACS estejam na mesma zona.

      • Confirme se o tipo de protocolo do sistema de arquivos NAS é NFS. Sistemas de arquivos NAS que utilizam o protocolo SMB não podem ser montados.

    3. Valide se o destino de montagem atende aos requisitos e obtenha seu endereço.

      1. Clique em ID do sistema de arquivos.

      2. Na página de detalhes do sistema de arquivos, clique em Mount Targets no painel de navegação à esquerda.

      3. Na área Mount Target, verifique se existe um destino de montagem que atenda aos requisitos e obtenha o endereço correspondente.

        Nota
        • Um destino de montagem é criado automaticamente ao criar um sistema de arquivos NAS de uso geral. Para sistemas de arquivos NAS Extreme, a criação do destino de montagem deve ser manual.

        • Se nenhum destino de montagem existente atender aos requisitos, crie um novo. Para mais informações, consulte Manage mount targets.

        • A VPC do destino de montagem deve ser idêntica à VPC do cluster ACS. Caso contrário, a montagem falhará.

        • Para otimizar o desempenho, recomenda-se que o destino de montagem e os pods do cluster ACS utilizem o mesmo vSwitch.

        • O status do destino de montagem deve ser Available.

Etapa 2: Criar uma StorageClass

  1. Ajuste o conteúdo YAML abaixo conforme as descrições dos parâmetros e salve-o como nas-sc.yaml.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-subpath
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: subpath
      server: "*******-mw***.cn-shanghai.nas.aliyuncs.com:/csi"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    Descrição dos parâmetros:

    Parâmetro

    Descrição

    volumeAs

    Modo de provisionamento. Defina como subpath para criar cada volume persistente (PV) como um subdiretório. Cada PV corresponde a um subdiretório do sistema de arquivos NAS.

    server

    Endereço do destino de montagem do sistema de arquivos NAS, no formato mount-target-address:path, onde path representa o subdiretório do NAS que você deseja montar.

    • Se nenhum caminho for especificado, o diretório raiz será montado por padrão.

    • Caso o diretório não exista no sistema de arquivos NAS, ele será criado automaticamente antes da montagem.

    O diretório raiz é / para sistemas de arquivos NAS de uso geral e /share para sistemas de arquivos NAS Extreme.

    provisioner

    Define o tipo de provisionador. Deve ser definido como nasplugin.csi.alibabacloud.com para utilizar o plug-in CSI do Alibaba Cloud NAS.

    reclaimPolicy

    Política de recuperação do PV. Apenas Retain é suportado, o que significa que o sistema de arquivos NAS e o destino de montagem correspondentes são mantidos quando o PV é excluído.

Etapa 3: Criar um PVC

kubectl

  1. Salve o conteúdo abaixo como nas-pvc.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc
      annotations:
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 20Gi
      storageClassName: alicloud-nas-subpath

    Descrição dos parâmetros:

    Parâmetro

    Descrição

    accessModes

    Modo de acesso.

    storage

    Capacidade do volume persistente a ser criado.

    storageClassName

    Nome da StorageClass a ser utilizada.

  2. Crie o PVC.

    kubectl create -f nas-pvc.yaml
  3. Visualize o PV.

    kubectl get pv

    A saída indica que o plug-in CSI criou automaticamente um PV com base na StorageClass e o vinculou ao PVC.

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS           REASON   AGE
    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            Retain           Bound    default/nas-pvc   alicloud-nas-subpath            1m58s

Console

  1. Faça login no console ACS.

  2. Em Clusters, clique em 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 > Persistent Volume Claims.

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

  5. Na caixa de diálogo, defina os parâmetros e clique em Create.

    Parâmetro

    Descrição

    Exemplo

    PVC Type

    Selecione NAS.

    NAS

    Volume Name:

    Nome do PVC. Insira um nome personalizado. Consulte as instruções na tela para requisitos de formatação.

    nas-pvc

    Allocation Mode

    Selecione Use StorageClass.

    Provisionamento dinâmico via StorageClass

    Capacity

    Capacidade do volume persistente a ser criado.

    20Gi

    Access Mode

    Suporta ReadWriteMany e ReadWriteOnce.

    ReadWriteMany

    Após a criação, o PVC aparecerá listado na página Persistent Volume Claims. O PVC estará vinculado a um PV criado automaticamente, que corresponde a um volume persistente NAS. É possível visualizar os detalhes do PV na página Persistent Volumes.

Etapa 4: Criar uma aplicação e montar o volume

kubectl

  1. Crie um arquivo chamado nas-test.yaml com o conteúdo a seguir.

    O arquivo YAML abaixo cria um Deployment com dois pods. Ambos os pods utilizam o PVC chamado nas-pvc e montam o volume no caminho /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      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-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc
  2. Crie o Deployment e monte o volume persistente NAS.

    kubectl create -f nas-test.yaml
  3. Verifique o status de implantação dos pods no Deployment.

    kubectl get pod | grep nas-test

    A saída abaixo mostra que dois pods foram criados.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifique o caminho de montagem.

    kubectl exec nas-test-****-***a -- df -h /data

    Saída esperada:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   1.0P     0  1.0P   0% /data

    Essa saída confirma que o sistema de arquivos foi montado com sucesso.

Console

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

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

  3. Defina os parâmetros do Deployment e clique em Create.

    A tabela a seguir descreve os principais parâmetros. Mantenha os valores padrão para os demais parâmetros. Para mais informações, consulte Create a stateless Deployment.

    Página de configuração

    Parâmetro

    Descrição

    Exemplo

    Basic Information

    Application Name

    Nome do Deployment. Insira um nome personalizado. Consulte as instruções na tela para requisitos de formatação.

    nas-test

    Replicas:

    Número de réplicas para o Deployment.

    2

    Container

    Image Name

    Insira o endereço da imagem usada para implantar a aplicação.

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

    Required Resources

    Defina os recursos necessários de vCPU e memória.

    0,25 vCPU, 0,5 GiB

    Volume

    Clique em Add PVC e defina os parâmetros.

    • Mount Source: Selecione o PVC criado anteriormente.

    • Container Path: Insira o caminho no contêiner onde o sistema de arquivos NAS será montado.

    • Mount Source: nas-pvc

    • Container Path: /data

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

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

    2. Na aba Pods, confirme se os pods estão no estado Running.

Criar um sistema de arquivos NAS como volume

Etapa 1: Criar uma StorageClass

  1. Ajuste o conteúdo YAML abaixo conforme as descrições dos parâmetros e salve o arquivo como nas-sc.yaml.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-fs
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-shanghai
      zoneId: cn-shanghai-e
      vpcId: "vpc-2ze2fxn6popm8c2mzm****"
      vSwitchId: "vsw-2zwdg25a2b4y5juy****"
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    A tabela a seguir descreve os parâmetros.

    Importante

    O suporte a tipos de sistemas de arquivos NAS e classes de armazenamento varia conforme a região e a zona de disponibilidade. Certifique-se de que a região, zona de disponibilidade, VPC e vSwitch selecionados para o sistema de arquivos NAS e seu destino de montagem sejam compatíveis com seu cluster ACS, bem como com a VPC e o vSwitch utilizados pelos seus pods. Para mais informações, consulte os tópicos a seguir:

    • Para informações sobre classes de armazenamento, desempenho, faturamento e regiões e zonas de disponibilidade suportadas para diferentes tipos de sistemas de arquivos NAS, consulte General-purpose NAS e Extreme NAS.

    • O NAS de uso geral e o NAS Extreme possuem limitações diferentes quanto à conectividade de montagem, quantidade de sistemas de arquivos e tipos de protocolo. Para mais informações, consulte Limitations.

    • Execute o comando kubectl get cm -n kube-system acs-profile -o yaml para visualizar o YAML do acs-profile e obter os IDs da VPC e dos vSwitches usados pelos pods nos campos vpcId e vSwitchIds.

    Parâmetro

    Descrição

    volumeAs

    Define como o volume é provisionado. Configure como filesystem para criar automaticamente um novo sistema de arquivos NAS para cada volume.

    fileSystemType

    Tipo do sistema de arquivos NAS.

    • standard (padrão): NAS de uso geral. Para mais informações, consulte General-purpose NAS.

    • extreme: NAS Extreme. Para mais informações, consulte Extreme NAS.

    storageType

    Classe de armazenamento do sistema de arquivos NAS.

    • Para NAS de uso geral, os valores válidos são:

      • Performance (padrão): Performance

      • Capacity: Capacity

    • Para NAS Extreme, os valores válidos são:

      • standard (padrão): Standard

      • advanced: Advanced

    regionId

    Região onde o sistema de arquivos NAS está localizado. Deve ser a mesma região do seu cluster ACS.

    zoneId

    Zona de disponibilidade onde o sistema de arquivos NAS está localizado. Escolha uma zona de disponibilidade com base no vSwitch utilizado pelos pods do seu cluster ACS.

    Nota

    Dentro da mesma VPC, é possível montar um sistema de arquivos NAS entre zonas de disponibilidade. Para obter o melhor desempenho, recomenda-se selecionar a mesma zona de disponibilidade.

    vpcId, vSwitchId

    IDs da VPC e do vSwitch para o destino de montagem do sistema de arquivos NAS. Devem corresponder aos IDs da VPC e do vSwitch utilizados pelos pods do seu cluster ACS.

    accessGroupName

    Grupo de permissões do destino de montagem para o sistema de arquivos NAS. O valor padrão é DEFAULT_VPC_GROUP_NAME.

    provisioner

    Provisionador. Deve ser definido como nasplugin.csi.alibabacloud.com, indicando o uso do plug-in CSI do Alibaba Cloud NAS.

    reclaimPolicy

    Política de recuperação do PV. A única política suportada é Retain, o que significa que o sistema de arquivos NAS e o destino de montagem correspondentes são mantidos quando o PV é excluído.

  2. Crie a StorageClass.

    kubectl create -f nas-sc.yaml
  3. Verifique a StorageClass.

    kubectl get sc

    Saída esperada:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-nas-fs                  nasplugin.csi.alibabacloud.com    Retain          Immediate              false                  13m
    ......

Etapa 2: Criar um PersistentVolumeClaim

  1. Salve o conteúdo abaixo em um arquivo chamado nas-pvc-fs.yaml.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc-fs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-fs
      resources:
        requests:
          storage: 20Gi

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    accessModes

    Modo de acesso.

    storage

    Capacidade do volume NAS a ser criado.

    Nota

    O NAS Extreme possui capacidade mínima de 100 GiB. Se o tipo de sistema de arquivos NAS definido na StorageClass for NAS Extreme, o valor de storage deve ser igual ou superior a 100 GiB. Caso contrário, o PersistentVolume correspondente não poderá ser criado.

    storageClassName

    Nome da StorageClass a ser utilizada.

  2. Crie o PersistentVolumeClaim.

    kubectl create -f nas-pvc-fs.yaml
  3. Verifique o PersistentVolumeClaim.

    kubectl get pvc

    A saída mostra que o PersistentVolumeClaim está vinculado ao PersistentVolume criado automaticamente. Também é possível visualizar o sistema de arquivos NAS correspondente no console NAS.

    NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc-fs   Bound    nas-04a730ba-010d-4fb1-9043-476d8c38****   20Gi       RWX            alicloud-nas-fs   <unset>                14s

Etapa 3: Criar uma aplicação e montar o volume NAS

  1. Crie um arquivo chamado nas-test-fs.yaml com o conteúdo a seguir.

    O YAML abaixo cria um Deployment com dois pods. Ambos os pods solicitam armazenamento do PersistentVolumeClaim chamado nas-pvc-fs e montam o volume no caminho de montagem /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      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-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc-fs
  2. Crie o Deployment e monte o volume NAS.

    kubectl create -f nas-test-fs.yaml
  3. Verifique o status de implantação dos pods no Deployment.

    kubectl get pod | grep nas-test

    A saída abaixo mostra que dois pods foram criados.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifique o caminho de montagem.

    kubectl exec nas-test-****-***a -- df -h /data

    Saída esperada:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   1.0P     0  1.0P   0% /data

    Essa saída confirma que o sistema de arquivos foi montado com sucesso.

Montar um sistema de arquivos NAS existente via volume NFS

Etapa 1: Obter informações do sistema de arquivos NAS

Para mais informações sobre como obter o endereço do destino de montagem do NAS, consulte Obtain NAS file system information.

Etapa 2: Criar uma aplicação e montar o NAS

  1. Crie um arquivo chamado nas-test-nfs.yaml com o conteúdo a seguir.

    Este YAML define um Deployment com dois pods. Cada pod monta o sistema de arquivos NAS no caminho /data utilizando um volume chamado nfs-nas.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      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: nfs-nas
                mountPath: /data
          volumes:
          - name: nfs-nas
            nfs:
              server: file-system-id.region.nas.aliyuncs.com    # The mount target address of the Alibaba Cloud NAS file system. Replace this with your actual value. Example: 7bexxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com.
              path: /    # The directory path in the NAS file system. The directory must be an existing directory or the root directory. The root directory of a General-purpose NAS file system is "/", and the root directory of an Extreme NAS file system is "/share".
  2. Crie o Deployment e monte o volume NAS.

    kubectl create -f nas-test-nfs.yaml
  3. Verifique o status de implantação dos pods no Deployment.

    kubectl get pod | grep nas-test

    A saída abaixo mostra que dois pods foram criados.

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifique o caminho de montagem.

    kubectl exec nas-test-****-***a -- df -h /data

    Saída esperada:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   1.0P     0  1.0P   0% /data

    Essa saída confirma que o sistema de arquivos foi montado com sucesso.

Verificar armazenamento compartilhado e persistente

O Deployment criado no exemplo anterior contém dois pods que montam o mesmo sistema de arquivos NAS. Valide essa configuração da seguinte forma:

  • Crie um arquivo em um pod e visualize-o no outro pod para confirmar o armazenamento compartilhado.

  • Reinicie o Deployment e verifique se os dados persistem em um novo pod para validar o armazenamento persistente.

  1. Verifique as informações dos pods.

    kubectl get pod | grep nas-test

    Saída de exemplo:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  2. Valide o armazenamento compartilhado.

    1. Crie um arquivo em um dos pods.

      Este exemplo utiliza o pod chamado nas-test-****-***a:

      kubectl exec nas-test-****-***a -- touch /data/test.txt
    2. Visualize o arquivo no outro pod.

      Este exemplo utiliza o pod chamado nas-test-****-***b:

      kubectl exec nas-test-****-***b -- ls /data

      A saída esperada mostra o novo arquivo test.txt, confirmando que o arquivo é compartilhado entre os pods.

      test.txt
  3. Valide o armazenamento persistente.

    1. Reinicie o Deployment.

      kubectl rollout restart deploy nas-test
    2. Verifique os pods e aguarde o início dos novos pods.

      kubectl get pod | grep nas-test

      Saída de exemplo:

      nas-test-****-***c   1/1     Running   0          67s
      nas-test-****-***d   1/1     Running   0          49s
    3. Em um dos novos pods, confirme se os dados persistiram no sistema de arquivos.

      Este exemplo utiliza o pod chamado nas-test-****-***c:

      kubectl exec nas-test-****-***c -- ls /data

      A saída confirma que os dados no sistema de arquivos NAS persistiram e estão acessíveis no diretório de montagem do novo pod.

      test.txt