Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Perguntas frequentes sobre volumes do NAS

Última atualização: Sep 22, 2026

Este tópico traz respostas para algumas perguntas frequentes sobre volumes do File Storage NAS (NAS).

Por que o sistema exibe a mensagem chown: Operation not permitted ao montar um volume do NAS?

Problema

O sistema exibe a mensagem chown: Operation not permitted ao montar um sistema de arquivos do NAS.

Causa

A função usada para executar o contêiner não tem permissões para gerenciar o volume do NAS.

Solução

  1. O usuário que inicia o processo do contêiner não tem permissões de root. Use uma conta root para executar as operações chown e chgrp. Quando o accessModes de um volume persistente (PV) está definido como ReadWriteOnce, use também securityContext.fsGroup para configurar as permissões do volume e a política de alteração de propriedade para os pods. Para mais informações, consulte Configurar permissão de volume e política de alteração de propriedade para Pods.

  2. Se o problema persistir após usar uma conta root, verifique se o grupo de permissões do ponto de montagem do NAS define as permissões do usuário como No Anonymity (no_squash). Essa configuração permite que usuários root acessem o sistema de arquivos. Para mais informações, consulte Gerenciar grupos de permissões.

O que fazer se a fila de tarefas do alicloud-nas-controller estiver cheia e não for possível criar PVs ao usar um volume do NAS provisionado dinamicamente?

Problema

Ao usar um volume do NAS provisionado dinamicamente, se a velocidade de criação de subdiretórios for maior que a velocidade de exclusão, a fila de tarefas do alicloud-nas-controller pode ficar cheia, impedindo a criação de PVs.

Causa

O parâmetro reclaimPolicy está definido como Delete e o parâmetro archiveOnDelete está definido como false na configuração da StorageClass que monta o volume do NAS provisionado dinamicamente.

Solução

Defina archiveOnDelete como true. Dessa forma, quando um PV é excluído, apenas o nome do subdiretório montado no sistema de arquivos do NAS é modificado. Os arquivos no subdiretório não são excluídos.

Você deve excluir esses arquivos manualmente. Por exemplo, configure um nó para excluir automaticamente os arquivos no diretório raiz por agendamento ou inicie vários pods para excluir simultaneamente arquivos de formatos específicos nos subdiretórios.

Por que a montagem de um volume do NAS demora muito?

Problema

A montagem de um volume do NAS demora muito tempo.

Causa

Se as condições a seguir forem atendidas, a operação chmod ou chown será executada durante a montagem dos volumes, o que aumenta o tempo de execução.

  • O parâmetro AccessModes está definido como ReadWriteOnce nos modelos de volume persistente (PV) e de declaração de volume persistente (PVC).

  • O parâmetro securityContext.fsGroup está definido no modelo do aplicativo.

Solução

  • Se o parâmetro securityContext.fsGroup estiver definido no modelo do aplicativo, exclua o parâmetro fsGroup na seção securityContext.

  • Para configurar o ID de usuário (UID) e o mode dos arquivos no diretório montado, monte o diretório manualmente em uma instância do Elastic Compute Service (ECS). Em seguida, execute os comandos chown e chmod por meio de uma CLI e provisione o volume do NAS por meio do plug-in CSI. Para mais informações sobre como usar o plug-in CSI para montar volumes do NAS, consulte Usar volumes estáticos do NAS ou Usar volumes dinâmicos do NAS.

  • Além dos métodos anteriores, para clusters do Kubernetes 1.20 ou posterior, defina o parâmetro fsGroupChangePolicy como OnRootMismatch. Assim, a operação chmod ou chown é executada apenas quando o sistema inicia o pod pela primeira vez. O problema não ocorre ao montar volumes do NAS após a conclusão da primeira inicialização. Para mais informações sobre fsGroupChangePolicy, consulte Definir o contexto de segurança para um pod ou contêiner.

O que fazer se não for possível criar ou modificar diretórios em um volume do NAS?

Problema

Não é possível criar ou modificar diretórios em um volume do NAS.

Causa

Usuários sem privilégios de root não têm permissão para criar ou modificar diretórios em um PV.

Solução

Selecione um dos métodos a seguir para executar o comando chmod ou chown e modificar as permissões no diretório de montagem:

  • Inicie um contêiner de inicialização (init container) com privilégios de root, monte um PV e execute o comando chmod ou chown para modificar as permissões no diretório de montagem. Depois disso, você poderá criar e modificar diretórios no PV.

  • Defina o parâmetro fsGroupChangePolicy como OnRootMismatch. Dessa forma, na primeira vez que o sistema iniciar o pod, ele executará o comando chmod ou chown para modificar as permissões no diretório de montagem. Em seguida, será possível criar e modificar diretórios no PV.

Por que o sistema exibe a mensagem unknown filesystem type "xxx" ao montar um volume do NAS?

Problema

O sistema exibe a mensagem unknown filesystem type "xxx" ao montar um volume do NAS.

Causa

As dependências do volume do NAS não estão instaladas no nó onde o aplicativo está implantado.

Solução

Verifique se o volume do NAS está configurado corretamente.

Por que o sistema exibe a mensagem NFS Stale File Handle quando um cliente lê ou grava dados em um volume do NAS?

Problema

O sistema exibe a mensagem NFS Stale File Handle quando um cliente lê ou grava dados em um volume do NAS.

Causa

O NAS não garante a consistência dos dados após a montagem de um volume do NAS em um contêiner. Suponha que um volume do NAS esteja montado em dois clientes. O Cliente 1 abre um arquivo no volume do NAS para obter o descritor de arquivo (FD) do arquivo. Se o Cliente 2 excluir o arquivo, o Cliente 1 não poderá ler ou gravar o arquivo e o sistema exibirá a mensagem NFS Stale File Handle.

Solução

Resolva os problemas de consistência de dados de acordo com os cenários do seu negócio.

O que fazer se um pod que usa dois PVCs para montar dois volumes do NAS diferentes permanecer no estado ContainerCreating?

Problema

A inicialização de um pod que usa dois PVCs para montar volumes do NAS falhou e o pod permanece no estado ContainerCreating. O pod pode ser iniciado se você configurá-lo para usar apenas um dos PVCs.

Causa

Os dois PVs associados aos dois PVCs usam o mesmo valor de spec.csi.volumeHandle. Como resultado, o kubelet não consegue diferenciar os dois PVs ao processar a lógica de montagem do PV.

Solução

Defina o parâmetro spec.csi.volumeHandle de cada PV com o nome real do PV.

Como usar o CSI para montar um sistema de arquivos do NAS com TLS ativado?

O NAS usa o TLS para garantir a segurança da transmissão de dados entre o cliente NAS e o serviço NAS, evitando roubo e adulteração de dados. O CSI permite usar o cliente NAS (aliNAS) da Alibaba Cloud para montar volumes e ativar o TLS.

Precauções

  • O cliente NAS usa o processo stunnel como um wrapper de criptografia TLS. Para aplicativos de alto throughput, o processo stunnel consome uma grande quantidade de recursos de CPU para realizar criptografia e descriptografia. Em casos extremos, cada operação de montagem ocupa um núcleo. Para mais informações, consulte Criptografia em trânsito para sistemas de arquivos NFS.

Procedimento

  1. Instale o cliente NAS.

    Modifique o ConfigMap do componente csi-plugin para reiniciar o csi-plugin.

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: csi-plugin
      namespace: kube-system
    data:
      cnfs-client-properties: |
        alinas-utils=true
    EOF
    
    kubectl rollout restart ds -n kube-system csi-plugin
  2. Monte um volume do NAS provisionado estaticamente ou um volume do NAS provisionado dinamicamente com base no código de exemplo a seguir:

    Montar um volume do NAS provisionado dinamicamente

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-tls
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    - tls   # Add a TLS mount option. 
    parameters:
      volumeAs: subpath
      server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s/"
      mountProtocol: alinas  # Declare to use the aliNAS client to mount the volume. 
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-tls
      resources:
        requests:
          storage: 20Gi

    Parâmetro

    Descrição

    parameters.mountProtocol

    Defina o parâmetro como alinas para usar o cliente aliNAS para montar o volume. Por padrão, esse parâmetro é deixado vazio e o NFS é usado para montar o volume.

    mountOptions

    Adicione a opção tls para ativar o TLS. Adicione esta opção apenas quando mountProtocol estiver definido como alinas. Por padrão, o TLS é desativado.

    Montar um volume do NAS provisionado estaticamente

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas-tls
      labels:
        alicloud-pvname: pv-nas-tls
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas   # Enter the name of the PV. 
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
          mountProtocol: alinas # Declare to use the aliNAS client to mount the volume. 
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3
      - tls # Add a TLS mount option.
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas-tls
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas-tls

    Parâmetro

    Descrição

    spec.csi.volumeAttributes.mountProtocol

    Defina o parâmetro como alinas para usar o cliente aliNAS para montar o volume. Por padrão, esse parâmetro é deixado vazio e o NFS é usado para montar o volume.

    spec.mountOptions

    Adicione a opção tls para ativar o TLS. Adicione esta opção apenas quando mountProtocol estiver definido como alinas. Por padrão, o TLS é desativado.

O que fazer se a desmontagem do volume do NAS expirar e o pod permanecer no estado Terminating?

Problema

Ao excluir um pod com um volume do NAS montado, o volume do NAS não pode ser desmontado e o pod permanece no estado Terminating.

Causa

O componente csi-plugin monta diretamente o diretório /var/run. Execute o comando a seguir. Se a saída não estiver vazia, o componente csi-plugin está montando diretamente o diretório /var/run.

kubectl get ds -n kube-system csi-plugin -ojsonpath='{.spec.template.spec.volumes[?(@.hostPath.path=="/var/run/")]}'

Solução

Execute o comando a seguir para corrigir manualmente o arquivo YAML do csi-plugin e resolver o problema:

kubectl patch -n kube-system daemonset csi-plugin -p '
spec:
  template:
    spec:
      containers:
        - name: csi-plugin
          volumeMounts:
            - mountPath: /host/var/run/efc
              name: efc-metrics-dir
            - mountPath: /host/var/run/ossfs
              name: ossfs-metrics-dir
            - mountPath: /host/var/run/
              $patch: delete
      volumes:
        - name: ossfs-metrics-dir
          hostPath:
            path: /var/run/ossfs
            type: DirectoryOrCreate
        - name: efc-metrics-dir
          hostPath:
            path: /var/run/efc
            type: DirectoryOrCreate
        - name: fuse-metrics-dir
          $patch: delete'