Todos os produtos
Search
Central de documentação

File Storage NAS:Gerenciar sistemas de arquivos NAS com CNFS

Última atualização: Aug 26, 2026

O Container Network File System (CNFS) permite gerenciar sistemas de arquivos NAS como recursos nativos do Kubernetes. Use uma abordagem declarativa para criar, adotar e montar armazenamento NAS em cargas de trabalho, como sites e análises de dados, com suporte flexível para compartilhamento e isolamento de dados.

Pré-requisitos

  • Você possui um cluster ACK Pro executando a versão 1.20 ou posterior. Para atualizar seu cluster, consulte Manually update an ACK cluster.

    O CNFS suporta a versão 1.20 quando usado com kubectl.
  • Verifique se os componentes de armazenamento atendem aos seguintes requisitos de versão. Para atualizar os componentes, consulte Components.

    • csi-plugin e csi-provisioner: v1.24.11-5221f79-aliyun ou posterior.

    • storage-operator: v1.26.2-1de13b6-aliyun ou posterior.

  • Você ativou o Apsara File Storage NAS. Os limites a seguir se aplicam aos sistemas de arquivos NAS. Para mais informações, consulte Limits.

    • Somente os tipos de armazenamento Capacity, Performance e Extreme do NAS de uso geral são suportados. O NAS Extreme Speed não é suportado.

    • O número de sistemas de arquivos NAS que você pode criar por conta em uma única região é limited.

    • Para usar criptografia KMS em seus sistemas de arquivos NAS, ative o Key Management Service (KMS). Para mais informações, consulte Purchase a dedicated KMS instance.

Criar um sistema de arquivos NAS

Métodos para adicionar um sistema de arquivos NAS

Escolha como adicionar um sistema de arquivos NAS ao seu cluster.

image

Método

Descrição

Modo de provisionamento de volume

Casos de uso

Method 1: Automatically create and use a NAS file system

O CNFS cria e gerencia automaticamente um sistema de arquivos NAS com configuração fixa para montagem rápida.

Volume dinâmico

  • Indicado para validação rápida de funcionalidades.

  • Não é necessário gerenciar detalhes do armazenamento subjacente. No entanto, o sistema de arquivos NAS criado possui configuração fixa, o que impede a seleção do tipo de armazenamento, a personalização do método de criptografia ou o gerenciamento granular da lixeira.

Method 2: Create and use a NAS file system with custom parameters

O CNFS cria um novo sistema de arquivos NAS personalizável com base nos parâmetros especificados.

  • Volume dinâmico

  • Volume estático

Ideal para casos de uso com requisitos específicos de desempenho, criptografia ou custo, ou que exigem controle refinado de armazenamento.

Method 3: Adopt and use an existing NAS file system

O CNFS adota um sistema de arquivos NAS existente para gerenciamento unificado.

  • Volume dinâmico

  • Volume estático

Recomendado para integrar perfeitamente um sistema de arquivos NAS existente ao seu cluster.

Método 1: Criar e usar automaticamente um sistema de arquivos NAS

O CNFS cria automaticamente um sistema de arquivos NAS com configuração padrão baseada no ambiente do seu cluster. A criptografia é desativada por padrão. Se o NAS Capacity não estiver disponível na região atual, o NAS Performance será utilizado.

Após criar o recurso CNFS e a StorageClass, as cargas de trabalho podem solicitar armazenamento por meio de uma PersistentVolumeClaim (PVC), que provisiona dinamicamente um PersistentVolume (PV) no sistema de arquivos NAS e o monta em um pod.

kubectl

1. Criar um recurso CNFS

Crie um objeto ContainerNetworkFileSystem. Se você não especificar o parâmetro server ou outros parâmetros personalizados, o CNFS criará automaticamente um sistema de arquivos NAS padrão.
apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      # Only Retain is supported. Deleting the CNFS resource does not delete the backend NAS instance.
      reclaimPolicy: Retain
      parameters:
        # Specifies the server-side encryption method. SSE-KMS enables encryption with keys managed by NAS.
        encryptType: SSE-KMS
        # Enables the recycle bin feature when set to "true".
        enableTrashCan: "true"

Parâmetros

Parâmetro

Descrição

description

A descrição do recurso CNFS.

type

O tipo de volume de armazenamento a ser criado. Defina o valor como nas.

reclaimPolicy

A política de recuperação. Somente Retain é suportado. Essa política evita perda de dados garantindo que o sistema de arquivos NAS de backend não seja excluído quando você excluir o recurso CNFS.

parameters.encryptType

Opcional. Especifica se deve ativar um encryption method.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia no lado do servidor com chaves gerenciadas pelo NAS. O NAS cria e gerencia uma chave no KMS para criptografar cada sistema de arquivos.

parameters.enableTrashCan

Especifica se deve ativar o recurso de lixeira para evitar interrupções de negócios ou perda de dados causados pela exclusão acidental de arquivos.

  • true: Ativa o recurso.

  • false: Desativa o recurso.

  • Execute kubectl get cnfs para visualizar o sistema de arquivos NAS criado.

  • Execute kubectl get cnfs/cnfs-nas-filesystem -o yaml para visualizar os detalhes do sistema de arquivos NAS.

    Para mais informações sobre o arquivo YAML, consulte CNFS YAML reference.

2. Criar uma StorageClass

Crie um objeto StorageClass para servir como modelo de armazenamento. Use o parâmetro containerNetworkFileSystem para associá-lo ao recurso CNFS criado.
apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-cnfs-nas
    provisioner: nasplugin.csi.alibabacloud.com
    parameters:
      # Creates a separate subdirectory on the NAS file system for each PVC.
      volumeAs: subpath
      # Associates the StorageClass with the CNFS resource defined earlier.
      containerNetworkFileSystem: cnfs-nas-filesystem
      path: "/"
    # Set to Retain to keep the subdirectory data after the PVC is deleted.
    reclaimPolicy: Retain
    # Allows volume expansion.
    allowVolumeExpansion: true
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3

3. Criar uma PersistentVolumeClaim

A aplicação solicita um volume de armazenamento usando uma PersistentVolumeClaim (PVC) e referencia a StorageClass como seu modelo de configuração.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: alibabacloud-cnfs-nas
  resources:
    requests:
      # If allowVolumeExpansion is set to true, the value of storage is used as the quota for the subdirectory that corresponds to this PVC. This sets a quota of 70 GiB for the subdirectory.
      storage: 70Gi  

4. Criar uma aplicação e montar a PVC

Após a criação da PVC, implante uma aplicação de exemplo, como um Deployment ou StatefulSet, e monte o PV vinculado à PVC na aplicação.
  • Deployment: Todas as réplicas de pod referenciam a mesma PVC e montam o mesmo diretório no sistema de arquivos NAS de backend para compartilhar dados.

    Código de exemplo

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cnfs-nas-deployment
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            volumeMounts:
            - mountPath: "/data"
              name: cnfs-nas-pvc
          volumes:
          - name: cnfs-nas-pvc
            persistentVolumeClaim:
              claimName: cnfs-nas-pvc
  • StatefulSet: Uma PVC separada é criada automaticamente para cada réplica de pod com base no modelo volumeClaimTemplates. Cada réplica monta um subdiretório dedicado no sistema de arquivos NAS de backend para isolar dados.

    Código de exemplo

    apiVersion: apps/v1
        kind: StatefulSet
        metadata:
          name: cnfs-nas-sts
          labels:
            app: nginx
        spec:
          serviceName: "nginx"
          replicas: 2
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - name: nginx
                image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
                volumeMounts:
                - mountPath: "/data"
                  name: www
          volumeClaimTemplates:
          - metadata:
              name: www
            spec:
              accessModes: [ "ReadWriteOnce" ]
              storageClassName: "alibabacloud-cnfs-nas"
              resources:
                requests:
                  # If allowVolumeExpansion is set to true, the storage parameter takes effect. This sets a quota of 50 GiB for the subdirectory.
                  storage: 50Gi 

5. Verificar o resultado

Console

1. Criar um recurso CNFS

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > CNFS.

  3. Clique em Create CNFS File System e configure o recurso CNFS conforme solicitado.

    Após a criação do recurso CNFS, localize-o na lista e clique em seu nome para ver detalhes. Clique no ID do NAS para acessar a página de detalhes do sistema de arquivos NAS. Clique em Mount Targets para obter o endereço do destino de montagem na coluna Mount Target.

2. Criar uma StorageClass

  1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > StorageClasses.

  2. Na página StorageClasses, clique em Create, selecione PV Type para NAS e configure a StorageClass conforme solicitado.

    A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o destino de montagem do sistema de arquivos NAS que foi criado ou adotado usando o CNFS.

      Para mais informações sobre como visualizar um destino de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Se não especificado, o diretório raiz (/) é montado por padrão.

      Se o diretório não existir no sistema de arquivos NAS, o sistema o criará e montará automaticamente.
    • Reclaim Policy:

      • Retain (Recomendado): Após a exclusão da PVC, o PV entra no estado Released. Os dados do NAS de backend são retidos e devem ser excluídos manualmente.

      • Delete: Exclui o PV quando a PVC associada é excluída. Esta política requer archiveOnDelete. No entanto, PVs estáticos não suportam archiveOnDelete. Portanto, quando esta política é definida como Delete, a exclusão da PVC não exclui o PV nem os arquivos no sistema de arquivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.

3. Criar uma PersistentVolumeClaim

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

  2. Na página Persistent Volume Claims, clique em Create, selecione NAS para PVC Type e configure a PVC conforme solicitado.

    • Allocation Mode: O modo como o volume de armazenamento é usado.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass criada.

    • Capacity: A capacidade do volume de armazenamento. Este valor não pode exceder a capacidade disponível do sistema de arquivos NAS subjacente.

    • Access Mode: O valor padrão é ReadWriteMany. Você também pode selecionar ReadWriteOnce ou ReadOnlyMany.

4. Criar uma aplicação e montar o volume NAS

Ao create a Deployment ou create a StatefulSet, você pode montar uma PVC em um contêiner na seção Volumes da página Container.

Este exemplo mostra como montar a PVC no caminho /data em um contêiner.

Para Volume Type, selecione Cloud Volume. Para Mount Source, selecione cnfs-nas-pvc. Para Container Path, insira /data.

Método 2: Criar e usar um sistema de arquivos NAS personalizado

Use o CNFS para criar um sistema de arquivos NAS com parâmetros personalizados.

  1. Defina um recurso ContainerNetworkFileSystem para provisionar um novo sistema de arquivos NAS.

  2. Disponibilize o sistema de arquivos para aplicações no seu cluster criando um volume persistente estático ou uma classe de armazenamento.

kubectl

1. Criar um sistema de arquivos NAS personalizado

Crie um objeto ContainerNetworkFileSystem e especifique os detalhes do NAS, como tipo de armazenamento, tipo de criptografia e vSwitch.
apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      reclaimPolicy: Retain
      parameters:
        filesystemType: standard
        storageType: Capacity
        protocolType: NFS
        encryptType: SSE-KMS
        enableTrashCan: "true"
        trashCanReservedDays: "5"
        vSwitchId: vsw-2ze9l3ppwzg6bl02j****

Parâmetros

Parâmetro

Descrição

description

A descrição do recurso CNFS.

type

O tipo de volume de armazenamento a ser criado. Defina o valor como nas.

reclaimPolicy

A política de recuperação. Somente Retain é suportado. Essa política evita perda de dados garantindo que o sistema de arquivos NAS de backend não seja excluído quando você excluir o recurso CNFS.

parameters.filesystemType

O tipo de sistema de arquivos. O padrão é standard para NAS de uso geral.

parameters.storageType

O tipo de armazenamento. O NAS de uso geral suporta Performance, Capacity e Premium.

parameters.protocolType

O protocolo de transferência de arquivos. Somente NFS é suportado.

parameters.encryptType

Opcional. Especifica se deve ativar um encryption method.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia no lado do servidor com chaves gerenciadas pelo NAS. O NAS cria e gerencia uma chave no KMS para criptografar cada sistema de arquivos.

parameters.enableTrashCan

Especifica se deve ativar o recurso de lixeira para evitar interrupções de negócios ou perda de dados causados pela exclusão acidental de arquivos.

  • true: Ativa o recurso.

  • false: Desativa o recurso.

parameters.trashCanReservedDays

O período máximo de retenção para arquivos na lixeira. O padrão é 7 dias. No exemplo, trashCanReservedDays: 5 indica que os arquivos são retidos por até 5 dias.

parameters.vSwitchId

O ID do vSwitch para o sistema de arquivos NAS.

Para informações sobre as regiões e zonas que suportam NAS de uso geral, consulte Regions and zones.

  • Execute kubectl get cnfs para visualizar o sistema de arquivos NAS criado.

  • Execute kubectl get cnfs/cnfs-nas-filesystem -o yaml para visualizar os detalhes do sistema de arquivos NAS.

    Para mais informações sobre o arquivo YAML, consulte CNFS YAML reference.

2. Criar um volume persistente ou classe de armazenamento

Após criar o recurso CNFS, escolha como as aplicações acessarão o sistema de arquivos NAS.

  • Volume persistente estático: Vincule manualmente um volume persistente a um diretório existente no sistema de arquivos NAS. Adequado para cenários onde é necessário acessar dados existentes específicos.

  • Classe de armazenamento dinâmica: Crie uma classe de armazenamento para servir como modelo, permitindo que as aplicações criem automaticamente novos subdiretórios independentes sob demanda.

Provisionamento estático

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-pv
  labels:
    alicloud-pvname: cnfs-nas-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: nasplugin.csi.alibabacloud.com
    # Must be the same as the PV name.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Specify the CNFS resource to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The mount path used by the volume in CNFS.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para mais informações sobre parâmetros de volume persistente, consulte Use a static NAS volume.

Provisionamento dinâmico

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS resource to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The mount path used by the volume in CNFS.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the directory quota of the volume to be expanded.
    allowVolumeExpansion: true
Para mais informações sobre parâmetros de classe de armazenamento, consulte Use a dynamic NAS volume.

3. Criar uma persistent volume claim

Crie uma persistent volume claim que utilize o volume persistente estático ou a classe de armazenamento criada.

Provisionamento estático

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Precisely match the persistent volume created earlier by using a label.
      alicloud-pvname: cnfs-nas-pv   

Provisionamento dinâmico

apiVersion: v1
    kind: PersistentVolumeClaim
    metadata: 
      name: cnfs-nas-pvc
    spec:
      accessModes:
      - ReadWriteMany 
      storageClassName: alibabacloud-nas-cnfs
      resources: 
        requests:
          storage: 70Gi

4. Criar uma aplicação e montar o sistema de arquivos NAS

Após a criação da persistent volume claim, monte-a em sua aplicação.

Código de exemplo

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
          ports:
            - containerPort: 80
          volumeMounts:
            - name: cnfs-nas-pvc
              mountPath: "/data"
      volumes:
        - name: cnfs-nas-pvc
          persistentVolumeClaim:
            claimName: cnfs-nas-pvc

5. Verificar o resultado

Console

  1. Criar um recurso CNFS

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > CNFS.

  3. Clique em Create CNFS File System e configure o recurso CNFS conforme solicitado.

    • Selecione um sistema de arquivos NAS

    • Selecione Select Existing NAS File System e clique em Create NAS File System para criar um sistema de arquivos NAS personalizado. Após a criação do sistema de arquivos, selecione-o.

      Para mais informações sobre como criar um sistema de arquivos NAS, consulte Create a general-purpose NAS file system in the console.
    • Conforme necessário, ative End-to-end Data Acceleration para usar o recurso de aceleração elástica para montagem e otimizar o desempenho de acesso aos dados. Para mais informações, consulte Use an EFC client to mount a NAS file system through CNFS.

  1. Criar um volume persistente ou classe de armazenamento

PV

  1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > Persistent Volumes.

  2. Clique em Create, selecione PV Type para PV Type e configure o volume persistente conforme solicitado.

    Os principais parâmetros estão descritos abaixo. Para descrições detalhadas de todos os parâmetros, consulte Create a PV.

    • Capacity: A capacidade do volume persistente. O Kubernetes usa este valor para vincular o PV a uma PVC e não impõe um limite de capacidade. O armazenamento utilizável real é a capacidade total do sistema de arquivos NAS subjacente.

      O limite real de capacidade de um sistema de arquivos NAS depende de suas especificações. Para mais informações, consulte General-purpose NAS.
    • Enable CNFS: Especifica se deve usar um recurso CNFS para gerenciar o volume.

    • Select CNFS: O recurso CNFS a ser usado.

    • Advanced Options (Optional):

      • Mount Path: O subdiretório do NAS a ser montado. Se você não especificar este parâmetro, o diretório raiz será montado por padrão. O diretório raiz de um sistema de arquivos NAS de uso geral é /.

        Se o diretório não existir no sistema de arquivos NAS, o sistema o criará e montará automaticamente.
      • Reclaim Policy: O CNFS suporta apenas Retain.

      • Enable CNFS Acceleration: Especifica se deve ativar o recurso de aceleração do CNFS. Para mais informações, consulte Use an EFC client to mount a NAS file system through CNFS.

Classe de armazenamento

  1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > StorageClasses.

  2. Na página StorageClasses, clique em Create, selecione PV Type para NAS e configure a StorageClass conforme solicitado.

    A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o destino de montagem do sistema de arquivos NAS que foi criado ou adotado usando o CNFS.

      Para mais informações sobre como visualizar um destino de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Se não especificado, o diretório raiz (/) é montado por padrão.

      Se o diretório não existir no sistema de arquivos NAS, o sistema o criará e montará automaticamente.
    • Reclaim Policy:

      • Retain (Recomendado): Após a exclusão da PVC, o PV entra no estado Released. Os dados do NAS de backend são retidos e devem ser excluídos manualmente.

      • Delete: Exclui o PV quando a PVC associada é excluída. Esta política requer archiveOnDelete. No entanto, PVs estáticos não suportam archiveOnDelete. Portanto, quando esta política é definida como Delete, a exclusão da PVC não exclui o PV nem os arquivos no sistema de arquivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Criar uma PVC

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

  2. Na página Persistent Volume Claims, clique em Create, selecione NAS para PVC Type e configure a PVC conforme solicitado.

    • Allocation Mode: O modo como o volume de armazenamento é usado.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass criada.

    • Capacity: A capacidade do volume de armazenamento. Este valor não pode exceder a capacidade disponível do sistema de arquivos NAS subjacente.

    • Access Mode: O valor padrão é ReadWriteMany. Você também pode selecionar ReadWriteOnce ou ReadOnlyMany.

  1. Criar uma aplicação e montar o sistema de arquivos NAS

Ao create a Deployment ou create a StatefulSet, você pode montar uma PVC em um contêiner na seção Volumes da página Container.

Este exemplo mostra como montar a PVC no caminho /data em um contêiner.

Para Volume Type, selecione Cloud Volume. Para Mount Source, selecione cnfs-nas-pvc. Para Container Path, insira /data.

Método 3: Usar um sistema de arquivos NAS existente

Use o CNFS para adotar um sistema de arquivos NAS existente em seu cluster, permitindo que as aplicações o montem e acessem.

kubectl

1. Criar um recurso CNFS a partir de um sistema de arquivos NAS existente

Crie um recurso ContainerNetworkFileSystem que referencie um destino de montagem NAS.

apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerNetworkFileSystem
    metadata:
      name: cnfs-nas-filesystem
    spec:
      description: "cnfs"
      type: nas
      reclaimPolicy: Retain
      parameters:
        server: 17f7e4****-h****.cn-beijing.nas.aliyuncs.com

Parâmetros

Parâmetro

Descrição

description

Uma descrição do recurso CNFS.

type

O tipo de armazenamento a ser criado.

reclaimPolicy

A política de recuperação. Somente Retain é suportado. Essa política evita perda de dados garantindo que o sistema de arquivos NAS de backend não seja excluído quando você excluir o recurso CNFS.

parameters.server

O endereço do destino de montagem do NAS.

  • Execute kubectl get cnfs para visualizar o sistema de arquivos NAS criado.

  • Execute kubectl get cnfs/cnfs-nas-filesystem -o yaml para visualizar os detalhes do sistema de arquivos NAS.

    Para mais informações sobre o arquivo YAML, consulte CNFS YAML reference.

2. Criar um volume persistente ou classe de armazenamento

Após criar o recurso CNFS, escolha como as aplicações acessarão o sistema de arquivos NAS.

  • Volume persistente estático: Vincule manualmente um volume persistente a um diretório existente no sistema de arquivos NAS. Adequado para cenários onde é necessário acessar dados existentes específicos.

  • Classe de armazenamento dinâmica: Crie uma classe de armazenamento para servir como modelo, permitindo que as aplicações criem automaticamente novos subdiretórios independentes sob demanda.

Provisionamento estático

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-pv
  labels:
    alicloud-pvname: cnfs-nas-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  csi:
    driver: nasplugin.csi.alibabacloud.com
    # Must be the same as the PV name.
    volumeHandle: cnfs-nas-pv 
    volumeAttributes:
      # Specify the CNFS resource to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The mount path used by the volume in CNFS.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para mais informações sobre parâmetros de volume persistente, consulte Use a static NAS volume.

Provisionamento dinâmico

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS resource to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The mount path used by the volume in CNFS.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the directory quota of the volume to be expanded.
    allowVolumeExpansion: true
Para mais informações sobre parâmetros de classe de armazenamento, consulte Use a dynamic NAS volume.

3. Criar uma persistent volume claim

Crie uma persistent volume claim que utilize o volume persistente estático ou a classe de armazenamento criada.

Provisionamento estático

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      # Precisely match the persistent volume created earlier by using a label.
      alicloud-pvname: cnfs-nas-pv   

Provisionamento dinâmico

apiVersion: v1
    kind: PersistentVolumeClaim
    metadata: 
      name: cnfs-nas-pvc
    spec:
      accessModes:
      - ReadWriteMany 
      storageClassName: alibabacloud-nas-cnfs
      resources: 
        requests:
          storage: 70Gi

4. Criar uma aplicação e montar o sistema de arquivos NAS

Após a criação da persistent volume claim, monte-a em sua aplicação.

Código de exemplo

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
          ports:
            - containerPort: 80
          volumeMounts:
            - name: cnfs-nas-pvc
              mountPath: "/data"
      volumes:
        - name: cnfs-nas-pvc
          persistentVolumeClaim:
            claimName: cnfs-nas-pvc

5. Verificar o resultado

Console

  1. Criar um recurso CNFS a partir de um sistema de arquivos NAS existente

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

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > CNFS.

  3. Clique em Create CNFS File System e configure o recurso CNFS conforme solicitado.

  4. No painel Create CNFS File System, configure os parâmetros e clique em OK.

    • Selecione um sistema de arquivos NAS.

    • Selecione Select Existing NAS File System e escolha um destino de montagem NAS existente na lista suspensa.

    • Se necessário, ative End-to-end Data Acceleration para acelerar a montagem e otimizar o desempenho de acesso aos dados. Para mais informações, consulte Mount a NAS file system by using an EFC client with CNFS.

  1. Criar um volume persistente ou classe de armazenamento

PV

  1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > Persistent Volumes.

  2. Clique em Create, selecione PV Type para PV Type e configure o volume persistente conforme solicitado.

    Os principais parâmetros estão descritos abaixo. Para descrições detalhadas de todos os parâmetros, consulte Create a PV.

    • Capacity: A capacidade do volume persistente. O Kubernetes usa este valor para vincular o PV a uma PVC e não impõe um limite de capacidade. O armazenamento utilizável real é a capacidade total do sistema de arquivos NAS subjacente.

      O limite real de capacidade de um sistema de arquivos NAS depende de suas especificações. Para mais informações, consulte General-purpose NAS.
    • Enable CNFS: Especifica se deve usar um recurso CNFS para gerenciar o volume.

    • Select CNFS: O recurso CNFS a ser usado.

    • Advanced Options (Optional):

      • Mount Path: O subdiretório do NAS a ser montado. Se você não especificar este parâmetro, o diretório raiz será montado por padrão. O diretório raiz de um sistema de arquivos NAS de uso geral é /.

        Se o diretório não existir no sistema de arquivos NAS, o sistema o criará e montará automaticamente.
      • Reclaim Policy: O CNFS suporta apenas Retain.

      • Enable CNFS Acceleration: Especifica se deve ativar o recurso de aceleração do CNFS. Para mais informações, consulte Use an EFC client to mount a NAS file system through CNFS.

Classe de armazenamento

  1. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Volumes > StorageClasses.

  2. Na página StorageClasses, clique em Create, selecione PV Type para NAS e configure a StorageClass conforme solicitado.

    A tabela a seguir descreve os principais parâmetros. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o destino de montagem do sistema de arquivos NAS que foi criado ou adotado usando o CNFS.

      Para mais informações sobre como visualizar um destino de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Se não especificado, o diretório raiz (/) é montado por padrão.

      Se o diretório não existir no sistema de arquivos NAS, o sistema o criará e montará automaticamente.
    • Reclaim Policy:

      • Retain (Recomendado): Após a exclusão da PVC, o PV entra no estado Released. Os dados do NAS de backend são retidos e devem ser excluídos manualmente.

      • Delete: Exclui o PV quando a PVC associada é excluída. Esta política requer archiveOnDelete. No entanto, PVs estáticos não suportam archiveOnDelete. Portanto, quando esta política é definida como Delete, a exclusão da PVC não exclui o PV nem os arquivos no sistema de arquivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Criar uma PVC

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

  2. Na página Persistent Volume Claims, clique em Create, selecione NAS para PVC Type e configure a PVC conforme solicitado.

    • Allocation Mode: O modo como o volume de armazenamento é usado.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass criada.

    • Capacity: A capacidade do volume de armazenamento. Este valor não pode exceder a capacidade disponível do sistema de arquivos NAS subjacente.

    • Access Mode: O valor padrão é ReadWriteMany. Você também pode selecionar ReadWriteOnce ou ReadOnlyMany.

  1. Criar uma aplicação e montar o sistema de arquivos NAS

Ao create a Deployment ou create a StatefulSet, você pode montar uma PVC em um contêiner na seção Volumes da página Container.

Este exemplo mostra como montar a PVC no caminho /data em um contêiner.

Para Volume Type, selecione Cloud Volume. Para Mount Source, selecione cnfs-nas-pvc. Para Container Path, insira /data.

Configurar armazenamento compartilhado e isolado

Após criar ou integrar um sistema de arquivos NAS, configure-o para compartilhamento ou isolamento de dados, de acordo com os requisitos da sua carga de trabalho.

Configurar um volume NAS compartilhado

Para compartilhar dados entre pods, monte o mesmo diretório de um sistema de arquivos NAS em vários pods.

  • Mecanismo principal: Este método utiliza um volume de armazenamento estático. Em um volume persistente (PV), o path declarado é idêntico ao caminho final montado pela Container Storage Interface (CSI). Portanto, quando vários pods montam este PV estático usando a mesma persistent volume claim (PVC), todos acessam o mesmo diretório de armazenamento, possibilitando o compartilhamento de dados.

  • Configuração chave: No modelo de pod (.spec.template) da sua carga de trabalho, defina o parâmetro persistentVolumeClaim.claimName no campo volumes com o mesmo nome da PVC.

1. Criar um PV e uma PVC apontando para um diretório específico

Visualizar código de exemplo

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cnfs-nas-static-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi
  csi:
    driver: nasplugin.csi.alibabacloud.com
    fsType: nfs
    volumeAttributes:
      # Specify the CNFS resource.
      containerNetworkFileSystem: cnfs-nas-filesystem
      mountProtocol: nfs
      path: /
      volumeAs: subpath
      volumeCapacity: "true"
    volumeHandle: cnfs-nas-static-pv
  mountOptions:
  - nolock,tcp,noresvport
  - vers=3
  persistentVolumeReclaimPolicy: Retain
  storageClassName: cnfs-nas-sc
  volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cnfs-nas-static-pvc
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 50Gi
  storageClassName: cnfs-nas-sc
  volumeMode: Filesystem
  # Reference the PV.
  volumeName: cnfs-nas-static-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 50Gi

2. Criar um deployment de exemplo

Visualizar código de exemplo

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cnfs-nas-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        volumeMounts:
        - mountPath: "/data"
          # Reference the volume defined under volumes.
          name: cnfs-nas-pvc
      volumes:
      # Define a volume named cnfs-nas-pvc.
      - name: cnfs-nas-pvc
        # All pod replicas reference the same PVC through this configuration to enable shared storage.
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc

3. Verificar o resultado

  1. Verificar o status da montagem

    Verifique o status de montagem do pod.

    kubectl exec cnfs-nas-deployment-*****a -- mount | grep nfs

    A saída esperada inclui o ponto de montagem, o que confirma uma montagem bem-sucedida.

    66bd9493d6-*****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.XX.XX.199,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=10.XX.XX.199)
  2. Verify the shared and persistent storage of the deployment.

Configurar um volume NAS isolado

Para obter isolamento de dados em cenários como multitenancy, forneça um diretório de armazenamento independente e isolado para cada pod ou grupo de pods.

  • Mecanismo principal: Este método utiliza um volume de armazenamento dinâmico. Na classe de armazenamento, o driver CSI cria automaticamente um subdiretório separado com o mesmo nome do PV sob o path declarado. Esse subdiretório serve como ponto de montagem. Como resultado, cada PVC se vincula a um diretório de armazenamento separado, possibilitando o isolamento de dados.

  • Configuração chave:

    • Na classe de armazenamento associada ao statefulset, use o parâmetro volumeAs: subpath (valor padrão) em parameters para criar um subdiretório isolado para cada PVC.

    • No statefulset, defina volumeClaimTemplates para criar e vincular automaticamente uma PVC separada para cada pod.

1. Criar uma classe de armazenamento que suporte subdiretórios dinâmicos

Visualizar código de exemplo

Esta classe de armazenamento referencia o CNFS especificado, e volumeAs: subpath instrui o driver CSI a criar dinamicamente um subdiretório isolado para cada solicitação de PVC.

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: cnfs-nas-sc
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      # The core parameter for implementing isolated storage volumes.
      volumeAs: subpath
      # Reference the created CNFS resource.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Specify the root path for creating subdirectories on the NAS file system.
      # The CSI driver creates a subdirectory under this path. The directory name is the same as the automatically generated PV name.
      path: "/"
      archiveOnDelete: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    # Automatically deletes the corresponding NAS subdirectory when the PVC is deleted.
    reclaimPolicy: Delete
    allowVolumeExpansion: true

2. Criar um statefulset de exemplo

Visualizar código de exemplo

Cria e monta dinamicamente um volume de armazenamento isolado para cada pod com base nos volumeClaimTemplates.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cnfs-nas-sts
  labels:
    app: nginx
spec:
  serviceName: "nginx"
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        command: ["/bin/sh"]
        args: ["-c", "sleep 3600;"]
        volumeMounts:
        - mountPath: "/data"
          name: pvc
  # The volumeClaimTemplates section automatically creates a PVC for each pod based on the following template.
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes: [ "ReadWriteOnce" ]
      # Reference the previously created storage class.
      storageClassName: "cnfs-nas-sc" 
      resources:
        requests:
          # This is used only for scheduling decisions and does not represent a real quota limit. The actual available capacity is the total capacity of the NAS file system.
          storage: 50Gi  

3. Verificar o resultado

  1. Verificar o status da montagem

    Verifique as informações de montagem de um pod, como cnfs-nas-sts-0.

    kubectl exec cnfs-nas-sts-0 -- mount |grep nfs

    A saída esperada mostra que um subdiretório do sistema de arquivos NAS foi montado com sucesso no caminho /data do pod.

    66bd9493d6-*****.cn-zhangjiakou.nas.aliyuncs.com:/nas-e7242ba0-47ec-4410-9107-b0e247a***** on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.XX.XX.199,mountvers=3,mountport=2049,mountproto=tcp,local_lock=all,addr=10.XX.XX.199)
  2. Verify the data isolation and persistent storage of the statefulset.

Recomendações para ambientes de produção

  • Segurança de dados

    • Criptografia de dados: Ao criar um novo sistema de arquivos NAS, defina parameters como encryptType: SSE-KMS no CNFS para ativar a criptografia de dados em repouso no servidor NAS e melhorar a segurança dos dados.

    • Proteção de dados e política de recuperação: A reclaimPolicy do CNFS é fixa como Retain. Excluir um objeto CNFS no Kubernetes não exclui a instância NAS de backend. No entanto, a política de recuperação de um PV é definida por sua StorageClass. Em ambiente de produção, recomendamos definir a política como Retain para evitar exclusões acidentais.

    • Recurso de lixeira: Ao criar um NAS, recomendamos ativar o recurso de lixeira com o parâmetro enableTrashCan: "true" para prevenir exclusões acidentais.

    • Escritas concorrentes: Quando vários Pods montam o mesmo volume de armazenamento compartilhado, projete sua aplicação para evitar escritas concorrentes no mesmo arquivo, o que pode causar corrupção de dados.

  • Operações e gerenciamento

    • Isolamento de desempenho: Embora volumes de armazenamento isolados forneçam isolamento no nível de dados, todos compartilham a IOPS e o throughput da mesma instância NAS de backend. Para aplicações críticas que exigem desempenho de I/O rigoroso e latência estável, provisione um sistema de arquivos NAS dedicado.

    • Gerenciamento de capacidade: Defina allowVolumeExpansion: true na StorageClass para expandir a cota de diretório do volume de armazenamento.

      O valor requests.storage em uma PVC é usado principalmente para decisões de agendamento e não representa o limite de cota para todo o sistema de arquivos NAS.
    • Monitoramento e alertas: Use container storage monitoring para configurar alertas para métricas chave, como utilização de capacidade, IOPS e throughput, a fim de identificar proativamente gargalos de capacidade ou desempenho.

  • Otimização de custos

    • Escolha o tipo de armazenamento adequado: Selecione um tipo de NAS com base nos seus requisitos de custo e desempenho. Para orientação, consulte Select a NAS type. Por exemplo, o NAS Capacity oferece um preço mais baixo e é adequado para cargas de trabalho de compartilhamento de arquivos ou arquivamento que não exigem baixa latência.

    • Libere recursos prontamente: Quando uma aplicação for descontinuada, limpe os recursos não utilizados. Confirme se você precisa delete o sistema de arquivos NAS de backend para evitar custos desnecessários.

Referências

Verificar armazenamento compartilhado, isolamento de dados e armazenamento persistente

Após montar o sistema de arquivos NAS, siga estas etapas para verificar se o armazenamento funciona conforme o esperado.

  • Verificar armazenamento compartilhado e persistente para um deployment

    Etapas

    Armazenamento compartilhado

    Armazenamento persistente

    Crie um arquivo em um pod e visualize-o em outro para verificar o armazenamento compartilhado.

    1. Liste os pods para obter seus nomes.

      kubectl get pod | grep cnfs-nas-deployment

      Saída esperada:

      cnfs-nas-deployment-*****a 1/1 Running 0 40s
          cnfs-nas-deployment-*****b 1/1 Running 0 40s
    2. Crie um arquivo em um dos pods. Este exemplo usa o pod chamado cnfs-nas-deployment-*a:

      kubectl exec cnfs-nas-deployment-*****a -- touch /data/test.txt
    3. Verifique se o arquivo existe no outro pod. Este exemplo usa o pod chamado cnfs-nas-deployment-*b:

      kubectl exec cnfs-nas-deployment-*****b -- ls /data

      Saída esperada:

      test.txt

      Esta saída confirma que os dados são compartilhados entre os pods.

      Importante

      O CNFS não garante consistência de dados quando vários pods escrevem no armazenamento compartilhado. Para evitar corrupção de arquivos, evite escritas concorrentes no mesmo arquivo.

    Recrie o deployment e verifique se os dados existem nos novos pods para validar o armazenamento persistente.

    1. Reinicie o deployment para acionar a recriação dos pods.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Liste os pods e aguarde até que os novos pods iniciem e entrem no estado Running.

      kubectl get pod | grep cnfs-nas-deployment

      Saída esperada:

      cnfs-nas-deployment-*****c 1/1 Running 0 67s
          cnfs-nas-deployment-*****d 1/1 Running 0 49s
    3. Em um novo pod, verifique se o arquivo criado anteriormente existe. Este exemplo usa o pod chamado cnfs-nas-deployment-*c:

      kubectl exec cnfs-nas-deployment-*****c -- ls /data

      Saída esperada:

      test.txt

      Esta saída confirma que o armazenamento é persistente.

  • Verificar isolamento de dados e armazenamento persistente para um StatefulSet

    Etapas

    Cada pod em um StatefulSet possui sua própria PVC, portanto, seus dados permanecem isolados.

    Isolamento de dados

    Armazenamento persistente

    Crie um arquivo em um pod e confirme que ele não existe em outro. Isso verifica o isolamento de dados entre os volumes de armazenamento dos pods.

    1. Liste os pods para obter seus nomes.

      kubectl get pod | grep cnfs-nas-sts

      Saída esperada:

      cnfs-nas-sts-0 1/1 Running 0 5m
          cnfs-nas-sts-1 1/1 Running 0 5m
    2. Crie um arquivo em um dos pods. O exemplo a seguir usa o pod chamado cnfs-nas-sts-0 para criar um arquivo com um nome distinto:

      kubectl exec cnfs-nas-sts-0 -- touch /data/sts-0-data.txt
    3. Verifique se o arquivo existe no outro pod. Este exemplo usa o pod chamado cnfs-nas-sts-1:

      kubectl exec cnfs-nas-sts-1 -- ls /data

      A saída esperada não mostra o arquivo criado em cnfs-nas-sts-0. Isso confirma que cada pod do StatefulSet usa um volume de armazenamento independente e os dados estão isolados.

    Exclua um pod específico, aguarde sua recriação e verifique se os dados ainda existem no novo pod.

    1. Exclua um pod para acionar sua recriação. Este exemplo exclui cnfs-nas-sts-0:

      kubectl delete pod cnfs-nas-sts-0
    2. Liste os pods e aguarde até que o pod com o mesmo nome atinja o estado Running. Um StatefulSet recria um pod com o mesmo nome e identidade.

      kubectl get pod | grep cnfs-nas-sts

      Saída esperada:

      cnfs-nas-sts-0                        1/1     Running   0          19s
          cnfs-nas-sts-1                        1/1     Running   0          102s
    3. No novo pod, verifique se o arquivo criado anteriormente existe.

      kubectl exec cnfs-nas-sts-0 -- ls /data

      Esta saída confirma que o armazenamento é persistente.

      sts-0-data.txt

YAML do CNFS

Execute o comando kubectl get cnfs/<cnfsName> -o yaml para visualizar a configuração completa e o status em tempo real de um objeto CNFS.

Esta seção fornece um exemplo da saída da execução do comando kubectl get cnfs/cnfs-nas-filesystem -o yaml para o cenário descrito em Method 2.

YAML de exemplo

YAML

apiVersion: storage.alibabacloud.com/v1beta1
kind: ContainerNetworkFileSystem
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"storage.alibabacloud.com/v1beta1","kind":"ContainerNetworkFileSystem","metadata":{"annotations":{},"name":"cnfs-nas-filesystem"},"spec":{"description":"cnfs","parameters":{"encryptType":"SSE-KMS","enableTrashCan":"true","filesystemType":"standard","protocolType":"NFS","storageType":"Capacity","trashCanReservedDays":"5","vSwitchId":"vsw-2ze9l3ppwzg6bl02j****"},"reclaimPolicy":"Retain","type":"nas"}}
  creationTimestamp: "20**-05-14T08:20:09Z"
  finalizers:
  - protection.alibabacloud.com/cnfs
  generation: 6
  name: cnfs-nas-filesystem
  resourceVersion: "122342382"
  uid: a9e9650c-68b2-405b-8274-0f5b6063****
spec:
  description: "cnfs"
  reclaimPolicy: Retain
  type: nas
  parameters:
    encryptType: SSE-KMS
    enableTrashCan: "true"
    filesystemType: standard
    protocolType: NFS
    storageType: Capacity
    trashCanReservedDays: "5"
    vSwitchId: vsw-2ze9l3ppwzg6bl02j****
status:
  conditions:
  - lastProbeTime: "20**-05-14 16:20:15"
    reason: The nas filesystem and mount target complete initialization.
    status: Ready
  fsAttributes:
    accessGroupName: DEFAULT_VPC_GROUP_NAME
    encryptType: SSE-KMS
    enableTrashCan: "true"
    filesystemId: 17f7e*****
    filesystemType: standard
    protocolType: NFS
    regionId: cn-beijing
    server: 17f7e48ece-h****.cn-beijing.nas.aliyuncs.com
    storageType: Capacity
    vSwitchId: vsw-2ze9l3ppwzg6bl02j****
    vpcId: vpc-2ze9sgmehjvwv5x74****
    zoneId: cn-beijing-h
  status: Available

Parâmetros

Parâmetros

Parâmetro

Descrição

status

O status atual do objeto CNFS. Os valores possíveis incluem Pending, Creating, Initialization (o sistema de arquivos está sendo criado), Available, Unavailable (pode ser restaurado), Fatal (não pode ser restaurado) e Terminating.

conditions.lastProbeTime

O timestamp da última sonda de integridade.

conditions.reason

O motivo do status atual.

conditions.status

Ready indica que o recurso está disponível; NotReady indica que está indisponível.

fsAttributes.accessGroupName

O nome do grupo de permissões aplicado ao destino de montagem. Atualmente, apenas DEFAULT_VPC_GROUP_NAME (o grupo de permissões padrão da VPC) é suportado.

fsAttributes.encryptType

Opcional. Especifica se deve ativar um encryption method.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia no lado do servidor com chaves gerenciadas pelo NAS. O NAS cria e gerencia uma chave no KMS para criptografar cada sistema de arquivos.

fsAttributes.enableTrashCan

Especifica se deve ativar o recurso de lixeira para evitar interrupções de negócios ou perda de dados causados pela exclusão acidental de arquivos.

  • true: Ativa o recurso.

  • false: Desativa o recurso.

fsAttributes.filesystemId

O ID do sistema de arquivos.

fsAttributes.filesystemType

O tipo de sistema de arquivos. O padrão é NAS de uso geral, especificado como standard.

fsAttributes.protocolType

O tipo de protocolo de transferência de arquivos. Atualmente, apenas o NFS protocol é suportado.

fsAttributes.regionId

A região onde o objeto CNFS está localizado.

fsAttributes.server

O endereço do destino de montagem do NAS.

fsAttributes.storageType

O tipo de armazenamento. O NAS de uso geral suporta os tipos Performance, Capacity e Premium.

fsAttributes.vSwitchId

O vSwitch usado pelo objeto CNFS.

fsAttributes.vpcId

A VPC onde o objeto CNFS está localizado.

fsAttributes.zoneId

A zona de disponibilidade onde o objeto CNFS está localizado.

Limpeza de recursos

Para evitar cobranças inesperadas e garantir a segurança dos dados, siga estas etapas para liberar recursos que você não precisa mais.

  1. Excluir a carga de trabalho

    • Ação: Exclua todas as aplicações que usam a PVC relevante, como deployments e StatefulSets. Esta ação interrompe os pods e desmonta os volumes de armazenamento.

    • Comando de exemplo: kubectl delete deployment <your-deployment-name>

  2. Excluir a PVC

    • Ação: Exclua a PVC associada à aplicação. O resultado da exclusão do PV depende da reclaimPolicy.

      • Retain (recomendado): Após excluir a PVC, os dados e o diretório no NAS de backend são preservados.

      • Delete: Após excluir a PVC, o PV vinculado também é excluído. A forma como o NAS de backend lida com os dados e o diretório depende do parâmetro archiveOnDelete na StorageClass.

        • "true" (padrão): Em vez de serem excluídos, o diretório e os arquivos são renomeados para archived-{pvName}.{timestamp}.

        • "false" : Os dados são excluídos permanentemente. Esta ação é irreversível. Use esta configuração com cautela.

    • Comando de exemplo: kubectl delete pvc <your-pvc-name>

  3. Excluir o PV

    • Ação: Exclua o PV. Esta etapa aplica-se principalmente a PVs provisionados estaticamente ou PVs que estão no estado Released porque sua política de recuperação está definida como Retain.

      Esta ação remove apenas a definição do recurso do Kubernetes e não exclui os dados do NAS de backend.
    • Comando de exemplo: kubectl delete pv <your-pv-name>

  4. Excluir definições de armazenamento do Kubernetes (Opcional)

    • Ação: Exclua os objetos StorageClass e CNFS se eles não forem mais necessários.

      Esta ação remove apenas as definições de recursos do Kubernetes e não exclui os dados do NAS de backend.
    • Comandos de exemplo: kubectl delete sc <your-storageclass-name>, kubectl delete cnfs <your-cnfs-name>

  5. Excluir o sistema de arquivos NAS de backend

    • Ação: Consulte Delete a file system. Esta ação exclui permanentemente todos os dados no NAS e é irreversível. Proceda com cautela. Antes de executar esta ação, certifique-se de que nenhuma carga de trabalho dependa deste NAS.