Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Mount a statically provisioned NAS volume

Última atualização: Oct 09, 2026

Este tópico explica como montar um volume do Alibaba Cloud Network Attached Storage (NAS) em pods de um cluster do Container Service for Kubernetes (ACK) usando provisionamento estático. O provisionamento estático permite conectar pods a um sistema de arquivos NAS existente e oferece armazenamento persistente e compartilhado para vários pods ao mesmo tempo.

Pré-requisitos

Casos de uso

  • Aplicações com altos requisitos de E/S de disco.

  • Suporta compartilhamento de arquivos entre hosts, por exemplo, como servidor de arquivos.

Observações

  • Ao usar um sistema de arquivos Extreme NAS, o path configurado para o PersistentVolume (PV) deve usar /share como diretório pai. Por exemplo, o subdiretório do sistema de arquivos NAS montado pelo Pod pode ser definido como /share/path1.

  • O NAS permite que vários Pods o montem simultaneamente. Nesse caso, como vários Pods podem modifique os mesmos dados ao mesmo tempo, a aplicação deve implementar a sincronização de dados por conta própria.

    Nota

    O diretório / no armazenamento NAS não permite modifique permissões, proprietário ou grupo.

  • Ao configurar o parâmetro securityContext.fsgroup no modelo da aplicação, o Kubelet executa operações chmod ou chown após a montagem do PersistentVolume (PV). Isso aumenta o tempo de montagem.

    Nota

    Se o parâmetro securityContext.fsgroup já estiver configurado e você precisar reduzir o tempo de montagem, consulte NAS volume FAQ.

Montar um volume NAS pelo console

Passo 1: Criar um PV

  1. acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Cluster List, clique em o nome do cluster de destino ou clique em Details na coluna Actions.

  3. No painel de navegação à esquerda da página onde você gerencie o cluster, escolha Storage > Persistent Volume.

  4. Na página Persistent Volumes, clique em Create no canto superior direito.

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

    Parâmetro

    Observação

    PV Type

    Neste exemplo, NAS está selecionado.

    Name

    O nome do PersistentVolume (PV) a ser criado. O nome do PV deve ser exclusivo no cluster. Neste exemplo, o nome é pv-nas.

    Capacity

    A capacidade do PersistentVolume (PV) a ser criado. O sistema de arquivos NAS em si não impõe limites de uso. Isso não é uma cota no sistema de arquivos NAS, mas uma declaração de capacidade do PV em criação.

    Access Mode

    Selecione ReadWriteMany e ReadWriteOnce. O valor padrão é ReadWriteMany.

    Mount Target Domain Name:

    defina o endereço de montagem do cluster no ponto de montagem do NAS usando Select Mount Target ou Custom.

    Advanced Options (Optional)

    Mount Path

    O subdiretório do NAS a ser montado. Se este parâmetro não for especificado, o diretório raiz é montado por padrão.

    Se o diretório não existir no sistema de arquivos NAS, ele é criado e montado automaticamente.
    • NAS de uso geral: O diretório raiz é /.

    • Extreme NAS: O diretório raiz é /share. Ao montar um subdiretório, o path deve começar com /share, como /share/data.

    Reclaim Policy

    Retain (padrão): ao exclua o PVC, o PV e os arquivos do NAS não são excluídos. Exclua-os manualmente.

    Mount Options

    As opções de montagem para o NAS, incluindo a versão do protocolo NFS. Por padrão, a montagem usa NFSv3. Especifique uma versão diferente com uma opção como vers=4.0. Para obter informações sobre os protocolos NFS suportados por diferentes tipos de NAS, consulte protocolos NFS.

    Labels

    Adicione rótulos a este PersistentVolume (PV).

  6. Após configurar os parâmetros, clique em Create.

Passo 2: Criar um PVC

  1. No painel de navegação à esquerda da página onde você gerencie o cluster, escolha Storage > PVCs.

  2. Na página Persistent Volume Claims, clique em Create no canto superior direito.

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

    Parâmetro

    Observação

    PVC Type

    Neste exemplo, NAS está selecionado.

    Name

    O nome do PersistentVolumeClaim (PVC) a ser criado deve ser exclusivo no cluster.

    Allocation Mode

    Selecione um PersistentVolume (PV) existente.

    Nota

    Se nenhum PV tiver sido criado, defina Allocation Mode como Create PV para configurar os parâmetros de criação de um PV. Para mais informações, consulte Criar um PV.

    Existing Volumes

    Clique em Select PV e, na coluna Actions à direita do PV de destino, clique em Select Node para selecionar o PV.

    Capacity

    A capacidade do PersistentVolume (PV) a ser criado.

    Nota

    A capacidade do PersistentVolumeClaim (PVC) a ser criado não pode exceder a capacidade do PersistentVolume (PV) a ser montado.

  4. Clique em Create.

    Depois de criar o PersistentVolumeClaim (PVC), ele aparecerá na lista já vinculado ao PersistentVolume (PV) correspondente.

Passo 3: Criar uma aplicação

<!--@ol {"id":"28b5fbd4f473m","data-node="1605442"}-->

  • Na página Clusters, clique em o nome do cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

  • Na página Deployments, clique em Create from Image e configure os parâmetros da aplicação.

    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 workload (Deployment).

    Categoria

    Parâmetro

    Descrição

    Basic Information

    Application Name

    O nome do Deployment.

    Replicas:

    O número de réplicas para o Deployment.

    Essa configuração permite verifique o recurso de armazenamento compartilhado do NAS.

    Container

    Image Name

    O endereço da imagem da aplicação.

    Required Resources

    Os recursos de vCPU e memória necessários.

    Volume

    Clique em Add PVC e configure os parâmetros.

    • Mount Source: Selecione o PVC criado anteriormente.

    • Container Path: O caminho dentro do contêiner para montar o sistema de arquivos NAS, como /data.

    Quando a implantação terminar, acesse a página Deployments e clique em o nome da aplicação. Na aba Pods, verifique se os Pods estão no estado Running.

  • Montar um volume NAS usando o kubectl

    1. execute o comando a seguir para criar um PV estático.

      kubectl create -f pv-nas.yaml

      Veja a seguir um exemplo de arquivo YAML para a criação de um PV estático.

      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

      Observação

      name

      O nome do PV.

      labels

      defina rótulos para o PV.

      storage

      A capacidade disponível do NAS.

      accessModes

      Configure o modo de acesso.

      driver

      O tipo de driver. Neste exemplo, o valor é nasplugin.csi.alibabacloud.com, que indica o uso do plugin CSI do Alibaba Cloud NAS.

      volumeHandle

      defina um identificador exclusivo para o PV. Se vários PVs forem usados simultaneamente, esse valor deve ser diferente para cada PV.

      server

      Ponto de montagem do NAS.

      path

      Subdiretório de montagem. Para o Extreme NAS, use /share como diretório pai.

      vers

      A versão do protocolo NFS para montar o PersistentVolume (PV) do NAS. Recomenda-se a versão v3. O Extreme NAS suporta apenas a v3.

    2. Use o comando abaixo para criar um PVC estático.

      Crie um PersistentVolumeClaim (PVC) do NAS e use selector para filtrar PVs. Isso configura com precisão o vínculo entre o PVC e o PV.

      kubectl create -f pvc-nas.yaml

      Veja a seguir um exemplo de arquivo YAML para criar um PVC 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

      Observação

      name

      O nome do PVC.

      accessModes

      Configure o modo de acesso.

      storage

      Declare o uso da aplicação, que não pode exceder a capacidade total do PersistentVolume (PV).

      matchLabels

      Insira o rótulo do PV para associá-lo ao PV.

    3. execute o seguinte comando para criar uma aplicação chamada nas-static e montar o PVC.

      kubectl create -f nas.yaml

      Veja a seguir um exemplo do arquivo nas.yaml 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

      Observação

      mountPath

      O caminho de montagem do NAS no contêiner.

      claimName

      O nome do PVC, usado para vinculá-lo.

    4. Para visualize as informações do Pod, execute o comando:

      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 o armazenamento persistente do NAS

    1. visualize a aplicação implantada e os arquivos do NAS.

      1. execute o comando a seguir para visualize 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. Para listar os arquivos no caminho /data de qualquer aplicação, execute o comando abaixo. Neste exemplo, use o Pod chamado nas-static-5b5cdb85f6-n****.

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

        O comando não retorna saída, indicando que não há arquivos no caminho /data.

    2. execute o seguinte comando para criar um arquivo nas no caminho /data do Pod chamado nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
    3. Para verifique os arquivos no caminho /data do Pod chamado nas-static-5b5cdb85f6-n****, execute:

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

      Saída esperada:

      nas
    4. execute o comando a seguir para exclua o Pod.

      kubectl delete pod nas-static-5b5cdb85f6-n****
    5. Ao mesmo tempo, em outra janela, execute o comando abaixo para acompanhar o processo de exclua o Pod e a recriação dele pelo Kubernetes.

      kubectl get pod -w -l app=nginx
    6. Verifique se os arquivos criados no NAS ainda existem após a exclusão do Pod.

      1. execute o seguinte comando para visualize o nome do Pod recriado pelo Kubernetes.

        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. Para listar os arquivos no caminho /data do Pod chamado nas-static-5b5cdb85f6-n****, execute:

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

        Saída esperada:

        nas

        O arquivo nas ainda existe, o que indica a persistência dos dados no NAS.

    verifique o armazenamento compartilhado

    1. visualize os Pods que executam a aplicação implantada e os arquivos do NAS.

      1. execute o comando a seguir para visualize os nomes dos 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
      2. Para listar os arquivos no caminho /data dos dois Pods, execute:

        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 nas no caminho /data de qualquer Pod.

       kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
    3. execute o comando a seguir para visualize os arquivos no caminho /data dos dois Pods.

      1. Para verifique os arquivos no caminho /data do Pod chamado nas-static-5b5cdb85f6-n****, execute:

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

        Saída esperada:

        nas
      2. Para listar os arquivos no caminho /data do Pod chamado nas-static-c5bb4746c-4****, execute:

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

        Saída esperada:

        nas

        Se o arquivo criado no caminho /data de um Pod estiver presente no caminho /data de ambos, isso indica que os dois Pods compartilham o mesmo NAS.