Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Montar um volume NAS provisionado estaticamente

Última atualização: Jul 05, 2026

O File Storage NAS (NAS) é um sistema de arquivos distribuído que oferece acesso compartilhado, dimensionamento elástico, alta confiabilidade e alto desempenho. Este tópico descreve como montar um volume NAS provisionado estaticamente e como ative armazenamento persistente e compartilhado com esse tipo de volume.

Pré-requisitos

Cenários de uso

  • A aplicação exige alta E/S de disco.

  • Necessidade de compartilhar arquivos entre hosts. Por exemplo, utilizar um sistema de arquivos NAS como servidor de arquivos.

Considerações

  • Para montar um sistema de arquivos Extreme NAS, defina o parâmetro path do volume NAS como um subdiretório de /share. Por exemplo, especifique o subdiretório /share/path1 ao montar um sistema de arquivos Extreme NAS em um pod.

  • Quando vários pods montam o mesmo sistema de arquivos NAS, os dados são compartilhados entre eles. Nesse cenário, a aplicação deve sincronizar dados entre os pods caso múltiplos pods modifiquem o conteúdo do sistema de arquivos NAS.

    Nota

    Não é possível conceder permissões de acesso ao diretório / (diretório raiz) do sistema de arquivos NAS. Além disso, não é permitido modificar a conta de usuário e o grupo de usuários aos quais esse diretório pertence.

  • Se o parâmetro securityContext.fsgroup estiver definido no modelo da aplicação, o kubelet executa a operação chmod ou chown após a montagem do volume, o que aumenta o tempo total de montagem.

    Nota

    Para saber como acelerar o processo de montagem quando o parâmetro securityContext.fsgroup estiver configurado, consulte Perguntas frequentes sobre volumes NAS

Montar um volume NAS provisionado estaticamente no console

Step 1: Create a PV

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Cluster List, clique em no nome do cluster desejado ou em Details na coluna Actions.

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

  4. No canto superior direito da página Persistent Volumes, clique em Create.

  5. Na caixa de diálogo Create PV, configure os seguintes parâmetros.

    Parâmetro

    Descrição

    PV Type

    Selecione Cloud Disk ou NAS. Neste exemplo, NAS está selecionado.

    Name

    Nome do PV a ser criado. Deve ser único no cluster. Neste exemplo, utiliza-se pv-nas.

    Capacity

    Capacidade do PV. Um sistema de arquivos NAS oferece capacidade ilimitada. Este parâmetro não limita o uso de armazenamento do sistema de arquivos NAS, apenas define a capacidade do PV.

    Access mode

    Escolha entre ReadWriteMany ou ReadWriteOnce. Valor padrão: ReadWriteMany.

    Mount Target Domain Name

    Selecione Select Mount Target para escolher um destino de montagem existente ou Custom para insira manualmente um destino de montagem.

    Show Advanced Options

    • Subdirectory: subdiretório do sistema de arquivos NAS que será montado. Deve começar com uma barra (/). Ao definir este parâmetro, o PV é montado nesse subdiretório específico.

      • Caso o subdiretório especificado não exista, o sistema o cria automaticamente no sistema de arquivos NAS e realiza a montagem no cluster.

      • Se este parâmetro não for definido, o diretório raiz do sistema de arquivos NAS será montado.

      • Para sistemas de arquivos Extreme NAS, o subdiretório deve estar localizado sob o diretório /share.

    • Version: versão do PV.

    Label

    Adicione rótulos ao PV.

  6. Após concluir a configuração, clique em Create.

Step 2: Create a PVC

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

  2. No canto superior direito da página Persistent Volume Claims, clique em Create.

  3. Na caixa de diálogo Create PVC, configure os parâmetros necessários.

    Parâmetro

    Descrição

    PVC Type

    Selecione Cloud Disk ou NAS. Neste exemplo, NAS está selecionado.

    Name

    Nome da Persistent Volume Claim (PVC). O nome deve ser único dentro do cluster.

    Allocation Mode

    Neste exemplo, Existing Volumes está selecionado.

    Nota

    Se nenhum PV tiver sido criado previamente, defina Allocation Mode como Create Volume e configure os parâmetros necessários para criar um novo PV. Para mais detalhes, consulte Criar um PV.

    Existing Volumes

    Clique em Select PV. Localize o PV desejado e clique em Select na coluna Actions.

    Capacity

    Capacidade solicitada pela PVC.

    Nota

    A capacidade solicitada pela PVC não pode exceder a capacidade do PV vinculado a ela.

  4. Clique em Create.

    Após a criação, a PVC aparece na lista de PVCs e fica vinculada ao PV correspondente.

Step 3: Create an application

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

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

  3. Configure os parâmetros da aplicação.

    Este exemplo demonstra a configuração dos parâmetros de volume. Para detalhes sobre outros parâmetros, consulte Criar uma carga de trabalho sem estado (Deployment).

    É possível configure volumes locais e volumes em nuvem para clusters ACK Serverless.

    • Add Local Storage: Selecione ConfigMap, Secret ou EmptyDir na lista suspensa PV Type. Em seguida, defina os parâmetros Mount Source e Container Path para montar o volume em um caminho do contêiner. Para mais informações, consulte Volumes.

    • Add PVC: Adicione volumes em nuvem.

    Neste exemplo, um volume NAS é montado no caminho /tmp do contêiner.

    数据卷

  4. Defina os demais parâmetros e clique em Create.

    Depois que a aplicação for criada, utilize o volume para armazenar os dados da aplicação.

Montar um volume NAS provisionado estaticamente usando kubectl

  1. Execute o comando abaixo para criar um PV provisionado estaticamente:

    kubectl create -f pv-nas.yaml

    O modelo YAML a seguir exemplifica a criação de um PV provisionado estaticamente:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas
      labels:
        alicloud-pvname: pv-nas
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3

    Parâmetro

    Descrição

    name

    Nome do PV.

    labels

    Rótulos a serem adicionados ao PV.

    storage

    Capacidade do volume NAS.

    accessModes

    Modo de acesso do PV.

    driver

    Tipo de driver de armazenamento usado para provisionar o volume. Neste exemplo, o valor é nasplugin.csi.alibabacloud.com, indicando o uso do plug-in CSI fornecido pelo Alibaba Cloud.

    volumeHandle

    Identificador exclusivo do PV. Caso utilize múltiplos PVs, cada identificador deve ser único.

    server

    Destino de montagem do sistema de arquivos NAS.

    path

    Subdiretório do sistema de arquivos NAS a ser montado. Para sistemas Extreme NAS, o subdiretório deve estar sob o diretório /share.

    vers

    Versão do protocolo Network File System (NFS). Recomenda-se o uso do NFSv3. Sistemas de arquivos Extreme NAS suportam apenas NFSv3.

  2. Execute o comando abaixo para criar uma PVC para o PV provisionado estaticamente:

    Ao criar uma PVC do tipo NAS, defina o parâmetro selector para configure a seleção do PV e sua vinculação à PVC.

    kubectl create -f pvc-nas.yaml

    O modelo YAML a seguir exemplifica a criação de uma PVC para provisionamento estático:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas

    Parâmetro

    Descrição

    name

    Nome da PVC.

    accessModes

    Modo de acesso da PVC.

    storage

    Capacidade solicitada pela PVC. A capacidade solicitada não pode exceder a capacidade do PV vinculado à PVC.

    matchLabels

    Rótulos utilizados para selecionar um PV e vinculá-lo à PVC.

  3. Execute o comando abaixo para criar uma aplicação chamada nas-static e montar a PVC criada nela:

    kubectl create -f nas.yaml

    O modelo YAML a seguir exemplifica o arquivo nas.yaml utilizado para criar a aplicação nas-static.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-static
      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: pvc-nas

    Parâmetro

    Descrição

    mountPath

    Caminho do contêiner onde o volume NAS é montado.

    claimName

    Nome da PVC montada na aplicação.

  4. Execute o comando abaixo para consultar os pods que executam a aplicação:

    kubectl get pod

    Saída esperada:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s

Verifique se o sistema de arquivos NAS persiste dados

  1. Consulte a aplicação implantada e os arquivos no sistema de arquivos NAS montado.

    1. Execute o comando abaixo para obter o nome da aplicação implantada:

      kubectl get pod 

      Saída esperada:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Execute o comando abaixo para listar os arquivos no caminho /data de um pod. O pod nas-static-5b5cdb85f6-n**** serve como exemplo:

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Nenhuma saída é retornada, indicando que não existem arquivos no caminho /data.

  2. Execute o comando abaixo para criar um arquivo chamado nas no caminho /data do pod nas-static-5b5cdb85f6-n****:

    kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Execute o comando abaixo para listar os arquivos no caminho /data do pod nas-static-5b5cdb85f6-n****:

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Saída esperada:

    nas
  4. Execute o comando abaixo para exclua o pod:

    kubectl delete pod nas-static-5b5cdb85f6-n****
  5. Abra outro terminal cli e execute o comando abaixo para acompanhar a exclusão e recriação do pod:

    kubectl get pod -w -l app=nginx
  6. Verifique se o arquivo ainda existe após a exclusão do pod.

    1. Execute o comando abaixo para obter o nome do pod recriado:

      kubectl get pod

      Saída esperada:

      NAME                                READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Execute o comando abaixo para listar os arquivos no caminho /data do pod nas-static-5b5cdb85f6-n****:

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Saída esperada:

      nas

      O arquivo nas ainda existe no caminho /data. Isso confirma que os dados foram persistidos no sistema de arquivos NAS.

Verifique se os dados no sistema de arquivos NAS são compartilhados entre pods

  1. Consulte os pods criados para a aplicação e os arquivos no sistema de arquivos NAS montado.

    1. Execute o comando abaixo para listar os pods da aplicação:

      kubectl get pod 

      Saída esperada:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Execute o comando abaixo para listar os arquivos no caminho /data de cada pod:

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data
      kubectl exec nas-static-c5bb4746c-4**** -- ls /data
  2. Execute o comando abaixo para criar um arquivo chamado nas no caminho /data de um dos pods:

     kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Execute o comando abaixo para listar os arquivos no caminho /data de cada pod:

    1. Execute o comando abaixo para listar os arquivos no caminho /data do pod nas-static-5b5cdb85f6-n****:

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Saída esperada:

      nas
    2. Execute o comando abaixo para listar os arquivos no caminho /data do pod nas-static-c5bb4746c-4****:

      kubectl exec nas-static-c5bb4746c-4**** -- ls /data

      Saída esperada:

      nas

      Se um arquivo criado no caminho /data de um pod também aparecer no caminho /data de outro pod, isso confirma que os dados no sistema de arquivos NAS são compartilhados entre esses dois pods.