Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Manage NAS file systems using CNFS

Última atualização: Oct 30, 2026

O Container Network File System (CNFS) permite gerenciar sistemas de arquivos NAS como objetos nativos do Kubernetes, possibilitando sua criação e uso de forma declarativa. Isso fornece volumes persistentes simples e eficientes para cargas de trabalho como sites e análise de dados, além de suportar diversos casos de uso, como compartilhamento e isolamento de dados.

Pré-requisitos

  • É necessário ter um cluster gerenciado ACK Pro da versão 1.20 ou posterior. Para atualizar o cluster, consulte Manually upgrade a cluster.

    O gerenciamento do CNFS via kubectl requer a versão 1.20 ou posterior.
  • As seguintes versões de add-ons de armazenamento são obrigatórias. 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.

  • O File Storage NAS service deve estar ativado. Os seguintes limites se aplicam aos sistemas de arquivos NAS. Para mais informações, acesse Limitations.

    • Há suporte apenas para sistemas de arquivos NAS de uso geral dos tipos Capacity, Performance e Premium; o Extreme NAS não é suportado.

    • Existe um limite máximo para a quantidade de sistemas de arquivos NAS que você pode criar por conta em uma única região. Para mais detalhes, consulte o upper limit.

    • Para usar a criptografia KMS em um sistema de arquivos NAS, ative o KMS service. Para mais informações, consulte Activate Key Management Service.

Criar um sistema de arquivos NAS

Criar e usar um sistema de arquivos NAS

Antes de começar, escolha como fornecer um sistema de arquivos NAS para o seu cluster.

image

Método

Descrição

Método de provisionamento de volume

Casos de uso

Método 1: Criar e usar um sistema de arquivos NAS padrão

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

volume dinâmico

  • Para validação rápida de recursos.

  • Você não precisa gerenciar os detalhes de armazenamento subjacentes. No entanto, o sistema de arquivos NAS criado possui uma configuração fixa, o que impede a seleção do tipo de armazenamento, a personalização da criptografia ou o ajuste da lixeira.

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

O CNFS cria um novo sistema de arquivos NAS personalizável com base nos parâmetros que você especificar.

  • volume dinâmico

  • volume estático

Indicado quando há requisitos específicos de performance, criptografia ou custo, ou quando é necessário um gerenciamento de armazenamento mais detalhado.

Método 3: Gerencie e use um sistema de arquivos NAS existente

O CNFS integra um sistema de arquivos NAS existente para gerenciamento centralizado.

  • volume dinâmico

  • volume estático

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

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

Você pode usar o Container Network File System (CNFS) para criar automaticamente um sistema de arquivos NAS com uma configuração padrão. O CNFS cria o sistema de arquivos com base no ambiente do seu cluster. Por padrão, o sistema de arquivos não possui criptografia. Caso a região atual não ofereça suporte ao Capacity NAS, um sistema de arquivos Performance NAS será criado em seu lugar.

Após criar um recurso CNFS e uma StorageClass, sua carga de trabalho poderá solicitar armazenamento por meio de um PersistentVolumeClaim (PVC). Isso cria dinamicamente um PersistentVolume (PV) no sistema de arquivos NAS e o monta em um Pod.

kubectl

1. Crie um CNFS

Crie um objeto ContainerNetworkFileSystem. Caso não especifique o parâmetro server nem 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. The backend NAS instance is not deleted when the CNFS is deleted.
      reclaimPolicy: Retain
      parameters:
        # Specifies whether to enable NAS-managed encryption. Set to SSE-KMS to enable this feature.
        encryptType: SSE-KMS
        # Specifies whether to enable the recycle bin feature. Set to "true" to enable it.
        enableTrashCan: "true"

Parâmetros

Parâmetro

Descrição

description

Uma descrição do CNFS.

type

O tipo de volume. Defina como nas.

reclaimPolicy

A política de recuperação. Atualmente, há suporte apenas para Retain. Essa política evita a perda de dados ao garantir que o sistema de arquivos NAS de backend não seja excluído quando o objeto CNFS for excluído.

parameters.encryptType

Opcional. Especifica o método de criptografia.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia gerenciada pelo NAS. Uma chave totalmente gerenciada pelo NAS é usada para criptografar cada sistema de arquivos. O NAS cria e gerencia essa chave no Key Management Service (KMS).

parameters.enableTrashCan

Ativa a lixeira para evitar interrupções nos negócios e perda de dados por exclusão acidental de arquivos.

  • true: Ativa o recurso.

  • false: Desativa o recurso.

  • Para isso, execute kubectl get cnfs e visualize o sistema de arquivos NAS criado.

  • Para isso, execute kubectl get cnfs/cnfs-nas-filesystem -o yaml e visualize os detalhes do sistema de arquivos NAS.

    Para mais informações sobre os parâmetros YAML, consulte a Referência de YAML do CNFS.

2. Crie uma StorageClass

Crie um objeto StorageClass para servir como modelo de armazenamento. Use o parâmetro containerNetworkFileSystem para associá-lo ao CNFS criado anteriormente.
apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-cnfs-nas
    provisioner: nasplugin.csi.alibabacloud.com
    parameters:
      # A separate subdirectory is created under the NAS root directory for each PVC.
      volumeAs: subpath
      # Associates with the CNFS defined above.
      containerNetworkFileSystem: cnfs-nas-filesystem
      path: "/"
    # We recommend setting this to Retain to preserve the backend subdirectory data when the PVC is deleted.
    reclaimPolicy: Retain
    # Allows volume expansion.
    allowVolumeExpansion: true
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3

3. Crie um PVC

A aplicação solicita um volume usando um PVC e referencia a StorageClass como 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 true, the value of storage is used as the quota for the subdirectory corresponding to this PVC. The maximum amount of data that can be written to the dynamically created directory is 70 GiB.
      storage: 70Gi  

4. Crie uma aplicação e monte o PVC

Após criar o PVC, implante uma aplicação de exemplo, como um Deployment ou um StatefulSet, e monte o PV vinculado ao PVC na aplicação.
  • Deployment: Todas as réplicas do Pod referenciam o mesmo 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: Ao usar o modelo volumeClaimTemplates, o sistema cria automaticamente um PVC exclusivo para cada réplica de Pod. Cada PVC é montado em um subdiretório dedicado no sistema de arquivos NAS de backend para isolamento de 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 true, the storage parameter takes effect. The maximum amount of data that can be written to the dynamically created directory is 50 GiB.
                  storage: 50Gi 

5. Verifique os resultados

Console

1. Crie um 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 CNFS seguindo as instruções na tela.

    • Selecione o sistema de arquivos NAS.

    • Selecione Create Default NAS File System.

    Após criar o CNFS, clique em seu nome na lista de CNFS para visualizar seus detalhes. Em seguida, clique no ID do NAS para acessar a página de detalhes do sistema de arquivos NAS criado. Clique na aba Mount Targets. Você pode encontrar o endereço do ponto de montagem na coluna Mount Target.

2. Crie 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. Defina PV Type como NAS e configure a StorageClass seguindo as instruções na tela.

    Os principais parâmetros estão descritos abaixo. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o endereço do ponto de montagem do sistema de arquivos NAS criado ou gerenciado pelo CNFS.

      Para mais informações sobre como visualizar um endereço de ponto de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Caso não especifique 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 o montará automaticamente.
    • Reclaim Policy:

      • Retain (padrão): Quando o PVC é excluído, o PV e os arquivos do NAS não são excluídos. Você deve excluí-los manualmente.

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

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.

3. Crie um 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. Defina PVC Type como NAS e configure o PVC seguindo as instruções na tela.

    • Allocation Mode: O método de provisionamento para o volume.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass que você criou.

    • Capacity: A capacidade do volume a ser criado. Esse valor não pode exceder a capacidade total do sistema de arquivos NAS.

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

4. Crie uma aplicação e monte o sistema de arquivos NAS

Ao criar um Deployment ou um StatefulSet, monte um PVC em um contêiner na seção Volume da página Container.

O exemplo a seguir mostra como montar o sistema de arquivos NAS criado usando o CNFS no caminho /data em um contêiner.

Detalhes da configuração: Defina Volume Type como Cloud Storage, selecione o PVC do CNFS NAS correspondente (por exemplo, cnfs-nas-pvc) para Mount Source e insira /data para Container Path.

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

Use o Container Network File System (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 as aplicações no cluster ao criar um volume persistente estático (PV) ou uma StorageClass dinâmica.

kubectl

1. Crie 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

Uma descrição do CNFS.

type

O tipo de volume. Defina como nas.

reclaimPolicy

A política de recuperação. Atualmente, há suporte apenas para Retain. Essa política evita a perda de dados ao garantir que o sistema de arquivos NAS de backend não seja excluído quando o objeto CNFS for excluído.

parameters.filesystemType

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

parameters.storageType

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

parameters.protocolType

O protocolo de transferência de arquivos. Há suporte apenas para o protocolo NFS (o protocolo HTTP não é suportado).

parameters.encryptType

Opcional. Especifica o método de criptografia.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia gerenciada pelo NAS. Uma chave totalmente gerenciada pelo NAS é usada para criptografar cada sistema de arquivos. O NAS cria e gerencia essa chave no Key Management Service (KMS).

parameters.enableTrashCan

Ativa a lixeira para evitar interrupções nos negócios e perda de dados por exclusão acidental de arquivos.

  • true: Ativa o recurso.

  • false: Desativa o recurso.

parameters.trashCanReservedDays

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

parameters.vSwitchId

O ID do vSwitch para o sistema de arquivos NAS.

Para obter informações sobre as regiões e zonas de disponibilidade que oferecem suporte ao NAS de uso geral, consulte Regions and availability zones.

  • Para isso, execute kubectl get cnfs e visualize o sistema de arquivos NAS criado.

  • Para isso, execute kubectl get cnfs/cnfs-nas-filesystem -o yaml e visualize os detalhes do sistema de arquivos NAS.

    Para mais informações sobre os parâmetros YAML, consulte a Referência de YAML do CNFS.

2. Crie um PV ou StorageClass

Após criar o CNFS, escolha como sua aplicação se conectará e usará o sistema de arquivos NAS.

  • Volume persistente estático: Vincule manualmente um volume persistente (PV) a um diretório existente no sistema de arquivos NAS. Este método é adequado para cenários em que você precisa acessar dados específicos já existentes.

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

Static PV

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 to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para mais informações sobre os parâmetros do PV, consulte Use static NAS volumes.

Dynamic StorageClass

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the expansion of the directory quota for the volume.
    allowVolumeExpansion: true
Para mais informações sobre os parâmetros da StorageClass, consulte Use dynamic NAS volumes.

3. Crie um PVC

Crie uma solicitação de volume persistente (PVC) que referencie o sistema de arquivos NAS com base no volume persistente estático ou na StorageClass dinâmica que você criou anteriormente.

Static PV

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

Dynamic StorageClass

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

4. Crie uma aplicação e monte o sistema de arquivos NAS

Após criar a solicitação de volume persistente (PVC), monte o PV vinculado à 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. Verifique o resultado

Console

  1. Crie um 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 os parâmetros do CNFS conforme solicitado.

    • Selecione um sistema de arquivos NAS.

    • Escolha Select Existing NAS File System e, em seguida, clique em Create NAS File System para criar um sistema de arquivos NAS personalizado. Após criar o 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 by using the console.
  1. Crie um PV ou StorageClass

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, defina PV Type como NAS e configure os parâmetros do PV conforme solicitado.

    A lista a seguir descreve os principais parâmetros. Para descrições detalhadas dos parâmetros, consulte Create a PV.

    • Capacity: Especifica a capacidade do PV. Esse valor é usado para corresponder o PV a um PVC e não limita o tamanho real de armazenamento. Sua aplicação pode usar a capacidade total do sistema de arquivos NAS subjacente.

      A capacidade real de um sistema de arquivos NAS é determinada por suas especificações. Para mais informações, consulte General-purpose NAS.
    • Enable CNFS: Especifica se o CNFS deve ser ativado.

    • Select CNFS: Se você ativar o CNFS, selecione o CNFS criado anteriormente.

    • Advanced Options (Optional):

      • Mount Path: O subdiretório do NAS a ser montado. Caso não especifique 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 o montará automaticamente.
      • Reclaim Policy: O CNFS suporta apenas Retain.

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. Defina PV Type como NAS e configure a StorageClass seguindo as instruções na tela.

    Os principais parâmetros estão descritos abaixo. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o endereço do ponto de montagem do sistema de arquivos NAS criado ou gerenciado pelo CNFS.

      Para mais informações sobre como visualizar um endereço de ponto de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Caso não especifique 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 o montará automaticamente.
    • Reclaim Policy:

      • Retain (padrão): Quando o PVC é excluído, o PV e os arquivos do NAS não são excluídos. Você deve excluí-los manualmente.

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

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Crie um 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. Defina PVC Type como NAS e configure o PVC seguindo as instruções na tela.

    • Allocation Mode: O método de provisionamento para o volume.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass que você criou.

    • Capacity: A capacidade do volume a ser criado. Esse valor não pode exceder a capacidade total do sistema de arquivos NAS.

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

  1. Crie uma aplicação e monte o sistema de arquivos NAS

Ao criar um Deployment ou um StatefulSet, monte um PVC em um contêiner na seção Volume da página Container.

O exemplo a seguir mostra como montar o sistema de arquivos NAS criado usando o CNFS no caminho /data em um contêiner.

Detalhes da configuração: Defina Volume Type como Cloud Storage, selecione o PVC do CNFS NAS correspondente (por exemplo, cnfs-nas-pvc) para Mount Source e insira /data para Container Path.

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

Use o CNFS para conectar um sistema de arquivos NAS existente ao seu cluster, tornando-o disponível para as aplicações.

kubectl

1. Crie um CNFS para um sistema de arquivos NAS existente

Crie um recurso ContainerNetworkFileSystem que referencie um ponto de montagem do 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 breve descrição do sistema de arquivos.

type

O tipo de armazenamento. Defina este valor como nas.

reclaimPolicy

A política de recuperação. Atualmente, há suporte apenas para Retain. Essa política evita a perda de dados ao garantir que o sistema de arquivos NAS de backend não seja excluído quando o objeto CNFS for excluído.

parameters.server

O endereço do ponto de montagem do NAS.

  • Para isso, execute kubectl get cnfs e visualize o sistema de arquivos NAS criado.

  • Para isso, execute kubectl get cnfs/cnfs-nas-filesystem -o yaml e visualize os detalhes do sistema de arquivos NAS.

    Para mais informações sobre os parâmetros YAML, consulte a Referência de YAML do CNFS.

2. Crie um PV ou StorageClass

Após criar o CNFS, escolha como sua aplicação se conectará e usará o sistema de arquivos NAS.

  • Volume persistente estático: Vincule manualmente um volume persistente (PV) a um diretório existente no sistema de arquivos NAS. Este método é adequado para cenários em que você precisa acessar dados específicos já existentes.

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

Static PV

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 to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para mais informações sobre os parâmetros do PV, consulte Use static NAS volumes.

Dynamic StorageClass

apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alibabacloud-nas-cnfs
    mountOptions:
      - nolock,tcp,noresvport
      - vers=3
    parameters:
      volumeAs: subpath
      # Specify the CNFS to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    # Set to true to allow the expansion of the directory quota for the volume.
    allowVolumeExpansion: true
Para mais informações sobre os parâmetros da StorageClass, consulte Use dynamic NAS volumes.

3. Crie um PVC

Crie uma solicitação de volume persistente (PVC) que referencie o sistema de arquivos NAS com base no volume persistente estático ou na StorageClass dinâmica que você criou anteriormente.

Static PV

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

Dynamic StorageClass

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

4. Crie uma aplicação e monte o sistema de arquivos NAS

Após criar a solicitação de volume persistente (PVC), monte o PV vinculado à 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. Verifique o resultado

Console

  1. Crie um CNFS que use 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 siga as instruções na tela para configurar o CNFS.

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

    • Selecione o tipo de sistema de arquivos NAS.

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

    • Opcional. Ative a End-to-end Data Acceleration para usar aceleração elástica na montagem e otimizar a performance de acesso aos dados.

  1. Crie um PV ou StorageClass

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, defina PV Type como NAS e configure os parâmetros do PV conforme solicitado.

    A lista a seguir descreve os principais parâmetros. Para descrições detalhadas dos parâmetros, consulte Create a PV.

    • Capacity: Especifica a capacidade do PV. Esse valor é usado para corresponder o PV a um PVC e não limita o tamanho real de armazenamento. Sua aplicação pode usar a capacidade total do sistema de arquivos NAS subjacente.

      A capacidade real de um sistema de arquivos NAS é determinada por suas especificações. Para mais informações, consulte General-purpose NAS.
    • Enable CNFS: Especifica se o CNFS deve ser ativado.

    • Select CNFS: Se você ativar o CNFS, selecione o CNFS criado anteriormente.

    • Advanced Options (Optional):

      • Mount Path: O subdiretório do NAS a ser montado. Caso não especifique 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 o montará automaticamente.
      • Reclaim Policy: O CNFS suporta apenas Retain.

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. Defina PV Type como NAS e configure a StorageClass seguindo as instruções na tela.

    Os principais parâmetros estão descritos abaixo. Para mais informações, consulte Create a StorageClass.

    • Select Mount Target: Selecione o endereço do ponto de montagem do sistema de arquivos NAS criado ou gerenciado pelo CNFS.

      Para mais informações sobre como visualizar um endereço de ponto de montagem, consulte Manage mount targets.
    • Mount Path: O subdiretório do NAS a ser montado. Caso não especifique 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 o montará automaticamente.
    • Reclaim Policy:

      • Retain (padrão): Quando o PVC é excluído, o PV e os arquivos do NAS não são excluídos. Você deve excluí-los manualmente.

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

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Crie um 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. Defina PVC Type como NAS e configure o PVC seguindo as instruções na tela.

    • Allocation Mode: O método de provisionamento para o volume.

    • Existing StorageClass: Clique em Select Storage Class e selecione a StorageClass que você criou.

    • Capacity: A capacidade do volume a ser criado. Esse valor não pode exceder a capacidade total do sistema de arquivos NAS.

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

  1. Crie uma aplicação e monte o sistema de arquivos NAS

Ao criar um Deployment ou um StatefulSet, monte um PVC em um contêiner na seção Volume da página Container.

O exemplo a seguir mostra como montar o sistema de arquivos NAS criado usando o CNFS no caminho /data em um contêiner.

Detalhes da configuração: Defina Volume Type como Cloud Storage, selecione o PVC do CNFS NAS correspondente (por exemplo, cnfs-nas-pvc) para Mount Source e insira /data para Container Path.

Configurar armazenamento compartilhado e isolado

Após criar um sistema de arquivos NAS, configure-o para armazenamento compartilhado ou isolado para atender aos requisitos da sua aplicação.

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 como um volume compartilhado.

  • Como funciona: Este método usa um volume estático. O path especificado no PersistentVolume (PV) é o diretório exato que o driver CSI monta. Quando vários Pods montam esse PV usando o mesmo PersistentVolumeClaim (PVC), todos acessam o mesmo diretório, o que possibilita o compartilhamento de dados.

  • Configuração principal: Na seção volumes do modelo de Pod da sua carga de trabalho (.spec.template), defina o parâmetro persistentVolumeClaim.claimName com o mesmo nome do PVC.

1. Crie um PV e um PVC que apontem para um diretório específico

Mostrar 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.
      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. Crie um Deployment de exemplo

Mostrar 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 in the volumes section below.
          name: cnfs-nas-pvc
      volumes:
      # Define a volume named cnfs-nas-pvc.
      - name: cnfs-nas-pvc
        # All Pod replicas reference the same PVC to enable shared storage.
        persistentVolumeClaim:
          claimName: cnfs-nas-static-pvc

3. Verifique o resultado

  1. Verificar o status de montagem

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

    A saída inclui o ponto de montagem, confirmando 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. Verifique o armazenamento compartilhado e persistente do Deployment.

Configurar um volume NAS isolado

Para casos de uso que exigem isolamento de dados, como multitenancy, forneça a cada Pod ou grupo de Pods um diretório de armazenamento dedicado.

  • Como funciona: Este método usa um volume dinâmico. O driver CSI cria automaticamente um subdiretório dedicado com o mesmo nome do PV sob o path especificado para servir como ponto de montagem. Como cada PVC se vincula a um subdiretório separado, isso garante o isolamento dos dados.

  • Configuração principal:

    • Na seção parameters da sua StorageClass, certifique-se de que volumeAs: subpath esteja definido. Essa configuração (que é o padrão) cria um subdiretório dedicado para cada PVC.

    • Na definição do StatefulSet, use a seção volumeClaimTemplates para criar e vincular automaticamente um PVC exclusivo para cada Pod.

1. Crie uma StorageClass para criação dinâmica de subdiretórios

Mostrar código de exemplo

Referencie o CNFS especificado na StorageClass e use volumeAs: subpath para que o driver CSI crie 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 enabling isolated volumes.
      volumeAs: subpath
      # Reference the created CNFS.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # Specify the root path on the NAS file system for creating subdirectories.
      # The CSI driver creates a subdirectory under this path with the same name as the auto-generated PV.
      path: "/"
      archiveOnDelete: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    # Automatically delete the corresponding NAS subdirectory when the PVC is deleted.
    reclaimPolicy: Delete
    allowVolumeExpansion: true

2. Crie um StatefulSet de exemplo

Mostrar código de exemplo

Cria e monta dinamicamente um volume de armazenamento isolado para cada Pod com base em um modelo definido pela StorageClass.

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 StorageClass.
      storageClassName: "cnfs-nas-sc" 
      resources:
        requests:
          # This value is for scheduling purposes only and does not represent a real quota. 
          # The actual available capacity is the total capacity of the NAS file system.
          storage: 50Gi  

3. Verifique o resultado

  1. Verificar o status de montagem

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

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

    A saída confirma que um subdiretório no sistema de arquivos NAS está montado 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. Verifique o isolamento de dados e o armazenamento persistente do StatefulSet.

Recomendações para produção

  • Segurança de dados

    • Criptografia de dados: Ao criar um novo sistema de arquivos NAS, defina encryptType: SSE-KMS nos parameters do objeto CNFS. Isso ativa a criptografia no lado do servidor e melhora a segurança dos dados.

    • Proteção de dados e política de recuperação: O reclaimPolicy para um objeto CNFS é sempre Retain, o que significa que exclua o objeto CNFS no Kubernetes não exclui a instância do NAS de backend. No entanto, a política de recuperação para um PV é definida por sua StorageClass. Para ambientes de produção, defina a política de recuperação como Retain para evitar perda acidental de dados.

    • Lixeira: Ao criar um sistema de arquivos NAS, ative a lixeira definindo enableTrashCan: "true" para evitar a exclusão acidental de dados.

    • Gravações simultâneas: Quando vários Pods montam o mesmo volume de armazenamento compartilhado, evite que várias instâncias da aplicação gravem no mesmo arquivo no nível da aplicação. Isso evita a corrupção de arquivos por gravações simultâneas.

  • Operações e gerenciamento

    • Isolamento de performance: Os volumes de armazenamento isolados fornecem apenas isolamento no nível de dados. Todos os volumes isolados compartilham o IOPS e o throughput da mesma instância de NAS de backend. Para aplicações principais com requisitos rigorosos de performance de I/O e necessidade de latência estável, provisione um sistema de arquivos NAS dedicado.

    • Gerenciamento de capacidade: Defina allowVolumeExpansion: true na sua StorageClass para permitir a expansão da cota de diretório do volume de armazenamento.

      O valor de requests.storage em um PVC é usado principalmente para decisões de agendamento e não define uma cota rígida em todo o sistema de arquivos NAS.
    • Monitoramento e alertas: Use o Container Storage Monitoring para configurar alertas para métricas principais, como utilização de capacidade, IOPS e throughput do seu sistema de arquivos NAS. Isso ajuda a identificar prontamente gargalos de capacidade ou performance.

  • Otimização de custos

    • Escolha o tipo de armazenamento correto: Selecione um tipo de NAS com base nos seus requisitos de custo e performance. Para obter orientações, consulte Select a NAS type. Por exemplo, o Capacity NAS é uma opção de custo mais baixo, adequada para tarefas insensíveis à latência, como compartilhamento de arquivos ou arquivamento.

    • Libere recursos prontamente: Após desativar uma aplicação, libere todos os recursos não utilizados. Além disso, exclua o sistema de arquivos NAS de backend se ele não for mais necessário, para evitar custos inesperados.

Referências

Verificar armazenamento compartilhado, isolamento de dados e armazenamento persistente

Após a montagem do sistema de arquivos NAS, verifique se o armazenamento se comporta conforme o esperado.

  • Verificar o armazenamento compartilhado e persistente para um Deployment

    Passos

    Armazenamento compartilhado

    Armazenamento persistente

    Para verificar o armazenamento compartilhado, crie um arquivo em um Pod e, em seguida, verifique sua existência em outro.

    1. visualize as informações do Pod para obter os nomes dos Pods.

      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 um 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 um Pod chamado cnfs-nas-deployment-*b.

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

      Saída esperada:

      test.txt

      O arquivo aparece na saída, o que confirma que os dados são compartilhados entre os Pods.

      Importante

      Quando vários Pods gravam no armazenamento compartilhado, o CNFS não pode garantir a consistência dos dados. Para evitar a corrupção de arquivos, evite gravações simultâneas no mesmo arquivo.

    Para verificar o armazenamento persistente, recrie o Deployment e verifique se os dados existem nos novos Pods.

    1. Acione uma reinicialização contínua (rolling restart) do Deployment para recriar seus Pods.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. visualize 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 um Pod chamado cnfs-nas-deployment-*c.

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

      Saída esperada:

      test.txt

      O arquivo gravado anteriormente aparece na saída, confirmando que o armazenamento é persistente.

  • Verificar o isolamento de dados e o armazenamento persistente para um StatefulSet

    Passos

    Cada Pod em um StatefulSet possui um PVC independente, o que garante o isolamento dos dados.

    Isolamento de dados

    Armazenamento persistente

    Para verificar o isolamento de dados, crie um arquivo em um Pod e confirme sua ausência em outro.

    1. visualize as informações do Pod para obter os nomes dos Pods.

      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 identificável em um dos Pods. Este exemplo usa um Pod chamado cnfs-nas-sts-0:

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

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

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

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

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

      kubectl delete pod cnfs-nas-sts-0
    2. visualize os Pods e aguarde até que um Pod com o mesmo nome inicie e entre no estado Running. O 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

      O arquivo gravado anteriormente aparece na saída, confirmando que o armazenamento persistente funciona corretamente.

      sts-0-data.txt

YAML do CNFS

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

Esta seção fornece um exemplo de execução do comando kubectl get cnfs/cnfs-nas-filesystem -o yaml no Método 2 para visualizar o YAML do cnfs-nas-filesystem.

Exemplo de YAML

Detalhes

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

Detalhes

Parâmetro

Descrição

status

O status atual do CNFS. Os valores possíveis são Pending, Creating, Initialization (criando o sistema de arquivos), Available, Unavailable (temporariamente indisponível, mas pode se recuperar), Fatal (indisponível e não pode se recuperar) e Terminating.

conditions.lastProbeTime

O carimbo de data/hora da última sonda de atividade (liveness probe).

conditions.reason

O motivo do status atual.

conditions.status

O status atual. O status é Ready se o recurso estiver disponível e NotReady se o recurso estiver indisponível.

fsAttributes.accessGroupName

O nome do grupo de permissões aplicado ao ponto de montagem. Atualmente, há suporte apenas para DEFAULT_VPC_GROUP_NAME (o grupo de permissões padrão para a VPC).

fsAttributes.encryptType

Opcional. Especifica o método de criptografia.

  • None: Desativa a criptografia.

  • SSE-KMS: Ativa a criptografia gerenciada pelo NAS. Uma chave totalmente gerenciada pelo NAS é usada para criptografar cada sistema de arquivos. O NAS cria e gerencia essa chave no Key Management Service (KMS).

fsAttributes.enableTrashCan

Ativa a lixeira para evitar interrupções nos negócios e perda de dados por 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 é o NAS de uso geral, especificado como standard.

fsAttributes.protocolType

O protocolo de transferência de arquivos. Atualmente, há suporte apenas para o protocolo NFS.

fsAttributes.regionId

A região onde o CNFS está localizado.

fsAttributes.server

O endereço do ponto 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 CNFS.

fsAttributes.vpcId

A VPC onde o CNFS está localizado.

fsAttributes.zoneId

A zona de disponibilidade onde o 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 não estão mais em uso.

  1. Exclua a carga de trabalho

    • Ação: Exclua todas as aplicações que usam os PVCs relevantes, como Deployments e StatefulSets. Essa ação para os Pods e desmonta os volumes.

    • Comando de exemplo: kubectl delete deployment <YOUR-DEPLOYMENT-NAME>

  2. Exclua os PVCs

    • Ação: Exclua o PVC associado à aplicação. O resultado da exclusão do PV depende da política de recuperação (reclaimPolicy).

      • Retain (Recomendado): Após excluir o PVC, os dados e diretórios no NAS de backend são totalmente retidos.

      • Delete: Quando um PVC é excluído, seu PV vinculado também é excluído. Os dados e diretórios no NAS de backend serão tratados com base na configuração do parâmetro archiveOnDelete na StorageClass.

        • "true" (padrão): O diretório ou arquivo não é realmente excluído. Em vez disso, é renomeado para archived-{pvName}.{timestamp}.

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

    • Comando de exemplo: kubectl delete pvc <YOUR-PVC-NAME>

    • Exclua o PV

      • Operação: Exclua o PV. Esta operação é voltada principalmente para PVs estáticos ou para PVs que estão no estado Released após o uso da política Retain na etapa anterior.

        Esta ação apenas remove a definição do recurso do Kubernetes. Ela não exclui os dados no NAS de backend.
      • Comando de exemplo: kubectl delete pv <YOUR-PV-NAME>

    • Exclua definições de armazenamento do Kubernetes (Opcional)

      • Ação: Exclua os objetos StorageClass e CNFS que não são mais necessários.

        Esta ação apenas remove as definições de recursos do Kubernetes. Ela não exclui os dados no NAS de backend.
      • Comandos de exemplo: kubectl delete sc <YOUR-STORAGECLASS-NAME> e kubectl delete cnfs <YOUR-CNFS-NAME>

    • Exclua o sistema de arquivos NAS de backend

      • Ação: Consulte Delete a file system. Esta ação irreversível exclui permanentemente todos os dados no NAS. Use com extrema cautela. Antes de prosseguir, certifique-se de que nenhum outro service dependa deste sistema de arquivos NAS.