Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Configure a shared NAS volume

Última atualização: Sep 06, 2026

Configure um sistema de arquivos NAS como PV e PVC compartilhados no cluster ACK para armazenar dados de treinamento do Arena.

Antes de começar

Verifique se você tem:

  • Um cluster ACK em execução

  • Permissões para criar sistemas de arquivos NAS e gerenciar recursos de armazenamento do ACK

  • Uma instância do Elastic Compute Service (ECS) na mesma Virtual Private Cloud (VPC) do cluster ACK, para montar e popular o sistema de arquivos NAS

Observações de uso

Observe as seguintes restrições:

  • Cobertura VPC obrigatória. O sistema de arquivos NAS, seu ponto de montagem e o cluster ACK devem residir na mesma VPC.

  • O tipo de protocolo afeta o desempenho de múltiplas escritas. O NFSv3 apresenta melhor desempenho quando várias instâncias ECS não escrevem no mesmo arquivo simultaneamente. O Extreme NAS suporta apenas NFSv3.

  • A capacidade do PV serve apenas para correspondência. Os valores de capacidade não limitam o armazenamento real. Os limites reais dependem das especificações do sistema de arquivos NAS.

  • PVs estáticos não suportam archiveOnDelete. Definir Delete em um PV estático não exclui efetivamente o PV nem os dados do NAS. Use Retain (padrão), a menos que utilize volumes NAS provisionados dinamicamente.

Informações básicas

Configurar um volume de armazenamento compartilhado para ambientes de job do Arena preserva o trabalho dos cientistas de dados (código e dados), evitando perdas quando os contêineres são excluídos, e facilita o acesso a dados de treinamento compartilhados. No desenvolvimento em equipe, alocar um pool de armazenamento compartilhado permite compartilhar dados e código entre os membros.

Ao enviar um job do Arena, use o parâmetro --data para declarar o armazenamento compartilhado e o caminho de montagem. O armazenamento compartilhado é montado no diretório especificado, permitindo que jobs subsequentes reutilizem esses dados ou código.

No Kubernetes, objetos de armazenamento são descritos por Persistent Volumes (PVs) e Persistent Volume Claims (PVCs). Como administrador do cluster, ao atribuir ambientes, crie um PVC separado para cada cientista de dados. Por exemplo, PVCs para o usuário A e o usuário B podem montar o mesmo backend NAS ou CPFS, mas devem apontar para subdiretórios diferentes para manter os ambientes de trabalho isolados.

Etapa 1: Criar uma instância NAS

Crie um sistema de arquivos NAS de uso geral na mesma região e VPC do cluster ACK.

Consulte Create a General-purpose NAS file system using the console.

Use os seguintes valores:

Parâmetro

Valor necessário

File system type

General-purpose NAS

Region

Mesma região do cluster ACK

VPC

Mesma VPC do cluster ACK

Protocol type

NFS

Etapa 2: Montar o sistema de arquivos em uma instância ECS

Monte o sistema de arquivos NAS em uma instância ECS para preenchê-lo posteriormente com dados de treinamento. Esta etapa utiliza o recurso de montagem com um clique. Consulte Scenarios for mounting a file system para outros métodos.

Montar o sistema de arquivos NAS

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

  2. Na barra de navegação superior, selecione o grupo de recursos e a região do sistema de arquivos.

    image

  3. Localize o sistema de arquivos e clique em Mount na coluna Actions.

    Na primeira utilização, o NAS solicita a atribuição da função vinculada ao service AliyunServiceRoleForNasEcsHandler. Siga as instruções na tela. Consulte Service-linked roles of NAS .
  4. No painel Mount, defina as opções de montagem:

    1. Selecione um ponto de montagem e clique em Next.

    2. Escolha uma instância ECS na mesma VPC do sistema de arquivos e clique em Next. Se a instância não estiver listada, atualize a página.

      Nota

      Esta configuração suporta anexação apenas a uma única instância ECS. Consulte Batch mount an NFS file system on multiple ECS instances para montagem em lote.

    3. Configure os parâmetros de montagem:

      Parâmetro

      Descrição

      Obrigatório

      Padrão

      Mount path

      Diretório local na instância ECS para o ponto de montagem.

      Sim

      Automatic mount

      Remonta automaticamente o sistema de arquivos ao reiniciar a instância ECS.

      Não

      Ativado

      Protocol type

      Versão do protocolo NFS. O NAS de uso geral suporta NFSv3 e NFSv4; o Extreme NAS suporta apenas NFSv3. O NFSv3 oferece melhor desempenho quando várias instâncias não escrevem no mesmo arquivo simultaneamente.

      Sim

      NAS directory

      Diretório NAS a ser montado. Insira / para a raiz ou um subdiretório como /abc. Para diretórios inexistentes, selecione Confirm New Directory e defina o UID, GID e permissões POSIX.

      Não

      / (raiz)

      Mount parameters

      Flags de montagem NFS. Consulte Mount an NFS file system on a Linux ECS instance para a referência completa.

      Não

      Parâmetros de montagem padrão

  5. Clique em Complete. A montagem leva de 1 a 2 minutos. Quando o status mostrar Mounted, o sistema de arquivos estará pronto. Se aparecer Failed, consulte Mount an NFS file system on a Linux ECS instance para solução de problemas.

    image

Verificar a montagem

Connect to the ECS instance e execute estes comandos para verificar o acesso:

mkdir /mnt/dir1
mkdir /mnt/dir2
touch /mnt/file1
echo 'some file content' > /mnt/file2
ls /mnt

A saída lista dir1, dir2, file1 e file2:

dir1  dir2  file1  file2

Para visualizar detalhes da montagem ou verificar a capacidade, execute mount -l ou df -h.

Cada sistema de arquivos NAS requer um ponto de montagem. Consulte Manage mount targets para adicionar ou consultar pontos de montagem. Defina Mount target type como VPC e selecione a mesma VPC e vSwitch do cluster ACK.

Etapa 3: Criar um PV e um PVC

Registre o sistema de arquivos NAS como um PV no cluster ACK e crie um PVC para acesso pelos pods.

Criar um PV

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

  2. Na página Clusters, clique no cluster desejado. No painel de navegação à esquerda, escolha Volumes > Persistent Volumes.

  3. Na página Persistent Volumes, clique em Create. Defina os seguintes parâmetros e clique em OK.

    Parâmetro

    Descrição

    Obrigatório

    Padrão

    Exemplo

    PV type

    Selecione NAS.

    Sim

    NAS

    Name

    Nome do PV. Deve ser único dentro do cluster.

    Sim

    pv-nas

    Capacity

    Usado apenas para correspondência com PVC. Não limita o armazenamento real. Consulte General-purpose NAS file systems e Extreme NAS file systems para limites de capacidade.

    Sim

    5 Gi

    Access mode

    ReadWriteMany: vários nós montam como leitura e escrita. ReadWriteOnce: apenas um nó.

    Sim

    ReadWriteMany

    Enable CNFS

    Ativa o Container Network File System (CNFS) para O&M automatizado, aceleração de cache e monitoramento de desempenho. Consulte Create a CNFS to manage a NAS file system (Recommended) para gerenciar sistemas de arquivos existentes.

    Não

    Desativado

    Desativado

    Mount target domain name

    Disponível quando o CNFS está desativado. Endereço do ponto de montagem do NAS. Selecione um destino existente ou insira um domínio personalizado. Consulte Manage mount targets para consultar endereços.

    Sim (quando o CNFS está desativado)

    0c47****-mpk25.cn-shenzhen.nas.aliyuncs.co

    Mount path (Avançado)

    Subdiretório NAS a ser montado. Para Extreme NAS, deve começar com /share (ex.: /share/data). Diretórios inexistentes são criados automaticamente.

    Não

    / (raiz)

    /data

    Reclaim policy

    Retain (padrão): o PV e os dados do NAS são preservados quando o PVC é excluído; limpeza manual necessária. Delete: requer archiveOnDelete. PVs estáticos não suportam archiveOnDelete, portanto o PV e os dados persistem independentemente disso. Consulte Use dynamically provisioned NAS volumes para configuração de archiveOnDelete.

    Não

    Retain

    Retain

    Mount options

    Versão do NFS protocol e flags de montagem. O NFSv3 apresenta melhor desempenho para leituras de treinamento de ML sem escritas simultâneas.

    Não

    nolock,tcp,noresvport vers=3

    Label

    Rótulos para o PV.

    Não

    pv-nas

O PV aparece na página Persistent Volumes.

Criar um PVC

  1. No painel de navegação, escolha Storage > Persistent Volume Claims.

  2. Na página Persistent Volume Claims, clique em Create. Defina os seguintes parâmetros e clique em OK.

    Parâmetro

    Descrição

    Obrigatório

    Padrão

    Exemplo

    PVC type

    Selecione NAS.

    Sim

    NAS

    Name

    Nome do PVC. Deve ser único dentro do cluster.

    Sim

    pvc-nas

    Allocation mode

    Use Existing Persistent Volume: vincula ao PV acima. Create Volume: provisiona um novo PV inline.

    Sim

    Use Existing Persistent Volume

    Existing volumes

    O PV criado acima.

    Sim (ao usar PV existente)

    pv-nas

    Capacity

    Capacidade de armazenamento reivindicada. Usada apenas para correspondência PVC-PV.

    Sim

    5

Verificar o PV e o PVC

Confirme se o PVC está vinculado ao PV. Connect to any node in the ACK cluster e execute:

kubectl get pvc pvc-nas

A saída mostra o PVC no estado Bound:

NAME       STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-nas    Bound    pv-nas   5Gi        RWX                           1m

Se o status for Pending, verifique se o nome do PV e os modos de acesso correspondem.

Etapa 4: Popular o PVC com dados

O cluster Kubernetes acessa dados compartilhados por meio de PVCs (que apontam para a instância NAS criada na Etapa 1), portanto, basta popular o NAS que sustenta o PVC. O procedimento a seguir cria dois Jobs do Kubernetes que copiam os conjuntos de dados MNIST do PyTorch e TensorFlow de imagens de contêiner de exemplo para o NAS nos diretórios especificados. O exemplo usa o PVC pvc-nas da Etapa 3.

  1. Crie um arquivo chamado prepare-pytorch-mnist-data.yaml com o seguinte conteúdo:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: prepare-pytorch-mnist-data
      namespace: default
    spec:
      completions: 1
      parallelism: 1
      backoffLimit: 3
      ttlSecondsAfterFinished: 3600
      template:
        spec:
          containers:
          - name: pytorch-mnist-example
            image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/pytorch-mnist-example:2.5.1-cuda12.4-cudnn9-runtime
            imagePullPolicy: Always
            command:
            - /bin/bash
            - -c
            args:
            - |
              set -eux
              mkdir -p /mnt/pytorch_data/MNIST/raw
              cp -r /data/MNIST/raw/* /mnt/pytorch_data/MNIST/raw || { echo "Copy failed"; exit 1; }
              echo "MNIST data prepared successfully at /mnt/pytorch_data/MNIST/raw."
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 100m
                memory: 128Mi
            volumeMounts:
            - name: training-data
              mountPath: /mnt
          volumes:
          - name: training-data
            persistentVolumeClaim:
              claimName: pvc-nas
          restartPolicy: Never
  2. Crie o Job para copiar o conjunto de dados MNIST do PyTorch para /pytorch_data no NAS:

    # Create the Job
    kubectl create -f prepare-pytorch-mnist-data.yaml
    
    # Wait for the Job to complete
    kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-pytorch-mnist-data

    Quando o Job terminar com sucesso, a saída será:

    job.batch/prepare-pytorch-mnist-data condition met
  3. Crie um arquivo chamado prepare-tensorflow-mnist-data.yaml com o seguinte conteúdo:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: prepare-tensorflow-mnist-data
      namespace: default
    spec:
      completions: 1
      parallelism: 1
      backoffLimit: 3
      ttlSecondsAfterFinished: 3600
      template:
        spec:
          containers:
          - name: tensorflow-mnist-example
            image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/tensorflow-mnist-example:2.15.0-gpu
            imagePullPolicy: Always
            command:
            - /bin/bash
            - -c
            args:
            - |
              set -eux
              mkdir -p /mnt/tf_data
              cp -r /data/mnist.npz /mnt/tf_data/mnist.npz || { echo "Copy failed"; exit 1; }
              echo "MNIST data prepared successfully at /mnt/tf_data/mnist.npz."
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 100m
                memory: 128Mi
            volumeMounts:
            - name: training-data
              mountPath: /mnt
          volumes:
          - name: training-data
            persistentVolumeClaim:
              claimName: pvc-nas
          restartPolicy: Never
  4. Crie o Job para copiar o conjunto de dados MNIST do TensorFlow para /tf_data no NAS:

    # Create the Job
    kubectl create -f prepare-tensorflow-mnist-data.yaml
    
    # Wait for the Job to complete
    kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-tensorflow-mnist-data

    Quando o Job terminar com sucesso, a saída será:

    job.batch/prepare-tensorflow-mnist-data condition met
Este exemplo usa o PVC chamado pvc-nas no namespace default . Se o PVC tiver um nome diferente ou estiver em outro namespace, ajuste os manifests adequadamente.

O diretório /tf_data contém os dados MNIST do TensorFlow e /pytorch_data contém os dados MNIST do PyTorch. Ambos estão acessíveis para qualquer pod que monte pvc-nas.

Próximas etapas

  • Envie um job de treinamento do Arena com --data para montar pvc-nas.

  • Para isolar ambientes de usuários, crie PVCs separados apontando para subdiretórios diferentes do mesmo sistema de arquivos NAS.

  • Para cargas de trabalho de produção, considere enabling CNFS.