Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Manage NAS file systems using CNFS

Última actualización: Sep 04, 2026

Container Network File System (CNFS) permite gestionar los sistemas de archivos NAS como objetos nativos de Kubernetes que se pueden crear y utilizar de forma declarativa. Esto proporciona volúmenes persistentes sencillos y eficientes para cargas de trabajo como sitios web y análisis de datos, además de admitir diversos casos de uso, como el aislamiento y la compartición de datos.

Requisitos previos

  • Se requiere un clúster administrado ACK Pro con la versión 1.20 o posterior. Para actualizar el clúster, consulte Manually upgrade a cluster.

    La gestión de CNFS con kubectl requiere la versión 1.20 o posterior.
  • Es obligatorio contar con las siguientes versiones de complementos de almacenamiento. Para actualizar los componentes, consulte Components.

    • csi-plugin y csi-provisioner: v1.24.11-5221f79-aliyun o posterior.

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

  • El servicio File Storage NAS debe estar activado. A continuación se detallan los límites aplicables a los sistemas de archivos NAS. Para obtener más información, consulte Limitations.

    • Solo son compatibles los sistemas de archivos NAS de propósito general de los tipos Capacity, Performance y Premium; Extreme NAS no es compatible.

    • Existe un upper limit en la cantidad de sistemas de archivos NAS que se pueden crear por cuenta en una sola región.

    • Para usar el cifrado KMS en un sistema de archivos NAS, active el servicio KMS. Para obtener más información, consulte Activate Key Management Service.

Crear un sistema de archivos NAS

Crear y usar un sistema de archivos NAS

Antes de empezar, elija cómo proporcionar un sistema de archivos NAS a su clúster.

image

Método

Descripción

Método de aprovisionamiento de volúmenes

Casos de uso

Method 1: Create and use a default NAS file system

CNFS crea y gestiona automáticamente un sistema de archivos NAS con una configuración fija para montajes rápidos.

volumen dinámico

  • Para validación rápida de funciones.

  • No necesita gestionar los detalles del almacenamiento subyacente. Sin embargo, el sistema de archivos NAS creado tiene una configuración fija. No puede seleccionar el tipo de almacenamiento, personalizar el cifrado ni hacer fine-tune de la papelera de reciclaje.

Method 2: Create and use a custom NAS file system

CNFS crea un nuevo sistema de archivos NAS personalizable según los parámetros que especifique.

  • volumen dinámico

  • volumen estático

Cuando tiene requisitos específicos de rendimiento, cifrado o costo, o necesita una gestión detallada del almacenamiento.

Method 3: Manage and use an existing NAS file system

CNFS integra un sistema de archivos NAS existente para su gestión centralizada.

  • volumen dinámico

  • volumen estático

Para integrar un sistema de archivos NAS existente en su clúster.

Método 1: Crear automáticamente un sistema de archivos NAS

Puede usar Container Network File System (CNFS) para crear automáticamente un sistema de archivos NAS con una configuración predeterminada. CNFS crea el sistema de archivos según el entorno de su clúster. De forma predeterminada, el sistema de archivos no está cifrado. Si Capacity NAS no es compatible con la región actual, se crea un sistema de archivos Performance NAS en su lugar.

Después de crear un recurso CNFS y una StorageClass, su carga de trabajo puede solicitar almacenamiento mediante un PersistentVolumeClaim (PVC). Esto crea dinámicamente un PersistentVolume (PV) en el sistema de archivos NAS y lo monta en un Pod.

kubectl

1. Crear un CNFS

Cree un objeto ContainerNetworkFileSystem. Si no especifica el parámetro server u otros parámetros personalizados, CNFS crea automáticamente un sistema de archivos NAS predeterminado.
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

Descripción

description

Una descripción del CNFS.

type

El tipo de volumen. Establézcalo en nas.

reclaimPolicy

La directiva de recuperación. Actualmente, solo se admite Retain. Esta directiva evita la pérdida de datos al garantizar que el sistema de archivos NAS del backend no se elimine cuando se elimina el objeto CNFS.

parameters.encryptType

Opcional. Especifica el encryption method.

  • None: Deshabilita el cifrado.

  • SSE-KMS: Habilita el cifrado gestionado por NAS. Se utiliza una clave totalmente gestionada por NAS para cifrar cada sistema de archivos. Esta clave se crea y gestiona en Key Management Service (KMS).

parameters.enableTrashCan

Habilita la papelera de reciclaje para evitar interrupciones del servicio y pérdida de datos por eliminación accidental de archivos.

  • true: Habilita la función.

  • false: Deshabilita la función.

  • Ejecute kubectl get cnfs para consultar el sistema de archivos NAS creado.

  • Ejecute kubectl get cnfs/cnfs-nas-filesystem -o yaml para consultar los detalles del sistema de archivos NAS.

    Para obtener más información sobre los parámetros YAML, consulte CNFS YAML reference.

2. Crear una StorageClass

Cree un objeto StorageClass para usarlo como plantilla de almacenamiento. Utilice el parámetro containerNetworkFileSystem para asociarlo con el CNFS que creó 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. Crear un PVC

La aplicación solicita un volumen mediante un PVC y hace referencia a la StorageClass como su plantilla de configuración.
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. Crear una aplicación y montar el PVC

Una vez creado el PVC, despliegue una aplicación de ejemplo, como un Deployment o un StatefulSet, y monte el PV vinculado al PVC en la aplicación.
  • Deployment: Todas las réplicas de Pod hacen referencia al mismo PVC y montan el mismo directorio en el sistema de archivos NAS del backend para compartir datos.

    Código de ejemplo

    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: Mediante la plantilla volumeClaimTemplates, se crea automáticamente un PVC único para cada réplica de Pod. Cada PVC se monta en un subdirectorio dedicado del sistema de archivos NAS del backend para aislar los datos.

    Código de ejemplo

    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. Comprobar los resultados

Console

1. Crear un CNFS

  1. Inicie sesión en la ACK console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > CNFS.

  3. Haga clic en Create CNFS File System y configure el CNFS siguiendo las instrucciones en pantalla.

    • Seleccione NAS File System

    • Seleccione Create Default NAS File System

    Una vez creado el CNFS, puede hacer clic en su nombre en la lista de CNFS para consultar sus detalles. Luego, haga clic en el ID de NAS para ir a la página de detalles del sistema de archivos NAS creado. Haga clic en la pestaña Mount Targets. Encontrará la dirección del destino de montaje en la columna Mount Target.

2. Crear una StorageClass

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > StorageClasses.

  2. En la página StorageClasses, haga clic en Create. Establezca PV Type en NAS y configure la StorageClass siguiendo las instrucciones en pantalla.

    Los parámetros clave se describen a continuación. Para obtener más información, consulte Create a StorageClass.

    • Select Mount Target: Seleccione la dirección del destino de montaje del sistema de archivos NAS creado o gestionado por CNFS.

      Para obtener más información sobre cómo consultar una dirección de destino de montaje, consulte Manage mount targets.
    • Mount Path: El subdirectorio NAS que se va a montar. Si no especifica este parámetro, se monta el directorio raíz de forma predeterminada. El directorio raíz de un sistema de archivos NAS de propósito general es /.

      Si el directorio no existe en el sistema de archivos NAS, el sistema lo crea y lo monta automáticamente.
    • Reclaim Policy:

      • Retain (predeterminado): Cuando se elimina el PVC, el PV y los archivos NAS no se eliminan. Debe eliminarlos manualmente.

      • Delete: Elimina el PV cuando se elimina el PVC asociado. Esta directiva requiere archiveOnDelete. Sin embargo, los PV estáticos no admiten archiveOnDelete. Por lo tanto, cuando esta directiva se establece en Delete, eliminar el PVC no elimina el PV ni los archivos del sistema de archivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.

3. Crear un PVC

  1. En el panel de navegación izquierdo de la página de gestión del clúster, seleccione Storage > PVCs.

  2. En la página Persistent Volume Claims, haga clic en Create. Establezca PVC Type en NAS y configure el PVC siguiendo las instrucciones en pantalla.

    • Allocation Mode: El método de aprovisionamiento del volumen.

    • Existing StorageClass: Haga clic en Select Storage Class y seleccione la StorageClass que creó.

    • Capacity: La capacidad del volumen que se va a crear. Este valor no puede superar la capacidad total del sistema de archivos NAS.

    • Access Mode: El valor predeterminado es ReadWriteMany. También puede seleccionar ReadWriteOnce o ReadOnlyMany.

4. Crear una aplicación y montar el sistema de archivos NAS

Al crear un Deployment o un StatefulSet, puede montar un PVC en un contenedor desde la sección Volumes de la página Container.

El siguiente ejemplo muestra cómo montar el sistema de archivos NAS creado con CNFS en la ruta /data de un contenedor.

Detalles de configuración: Establezca Volume Type en Cloud Storage, seleccione el PVC de CNFS NAS correspondiente (por ejemplo, cnfs-nas-pvc) en Mount Source e introduzca /data en Container Path.

Método 2: Crear un sistema de archivos NAS personalizado

Utilice Container Network File System (CNFS) para crear un sistema de archivos NAS con parámetros personalizados.

  1. Defina un recurso ContainerNetworkFileSystem para aprovisionar un nuevo sistema de archivos NAS.

  2. Ponga el sistema de archivos a disposición de las aplicaciones del clúster mediante la creación de un volumen persistente (PV) estático o una StorageClass dinámica.

kubectl

1. Crear un sistema de archivos NAS personalizado

Cree un objeto ContainerNetworkFileSystem y especifique los detalles de NAS, como el tipo de almacenamiento, el tipo de cifrado y el 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

Descripción

description

Descripción del CNFS.

type

Tipo de volumen. Establezca este valor en nas.

reclaimPolicy

Directiva de recuperación. Actualmente, solo se admite Retain. Esta directiva evita la pérdida de datos al garantizar que el sistema de archivos NAS del backend no se elimine cuando se elimina el objeto CNFS.

parameters.filesystemType

Tipo de sistema de archivos. El valor predeterminado es NAS de propósito general, especificado como standard.

parameters.storageType

Tipo de almacenamiento. NAS de propósito general admite los tipos Performance, Capacity y Premium.

parameters.protocolType

Protocolo de transferencia de archivos. Solo se admite el protocolo NFS.

parameters.encryptType

Opcional. Especifica encryption method.

  • None: Deshabilita el cifrado.

  • SSE-KMS: Habilita el cifrado administrado por NAS. Se utiliza una clave totalmente administrada por NAS para cifrar cada sistema de archivos. Esta clave se crea y gestiona mediante NAS en Key Management Service (KMS).

parameters.enableTrashCan

Habilita la papelera de reciclaje para evitar interrupciones en el servicio y pérdida de datos por eliminación accidental de archivos.

  • true: Habilita la función.

  • false: Deshabilita la función.

parameters.trashCanReservedDays

Especifica el período máximo de retención de archivos en la papelera de reciclaje. El valor predeterminado es 7 días. Por ejemplo, trashCanReservedDays: 5 indica que los archivos se conservan durante un máximo de 5 días.

parameters.vSwitchId

ID del vSwitch para el sistema de archivos NAS.

Para obtener información sobre las regiones y zonas de disponibilidad compatibles con NAS de propósito general, consulte Regions and availability zones.

  • Ejecute kubectl get cnfs para consultar el sistema de archivos NAS creado.

  • Ejecute kubectl get cnfs/cnfs-nas-filesystem -o yaml para consultar los detalles del sistema de archivos NAS.

    Para obtener más información sobre los parámetros YAML, consulte CNFS YAML reference.

2. Crear un PV o una StorageClass

Una vez creado el CNFS, elija cómo se conectará y utilizará su aplicación el sistema de archivos NAS.

  • Volumen persistente estático: Vincule manualmente un volumen persistente (PV) a un directorio existente en el sistema de archivos NAS. Este método es adecuado para escenarios en los que necesita acceder a datos existentes específicos.

  • StorageClass dinámica: Cree una StorageClass que funcione como plantilla para permitir que las aplicaciones creen automáticamente nuevos subdirectorios independientes bajo demanda.

PV 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 to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para obtener más información sobre los parámetros de PV, consulte Use static NAS volumes.

StorageClass dinámica

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 obtener más información sobre los parámetros de StorageClass, consulte Use dynamic NAS volumes.

3. Crear una PVC

Cree una solicitud de volumen persistente (PVC) que haga referencia al sistema de archivos NAS basándose en el volumen persistente estático o la StorageClass dinámica que creó anteriormente.

PV estático

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   

StorageClass dinámica

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

4. Crear una aplicación y montar el sistema de archivos NAS

Una vez creada la solicitud de volumen persistente (PVC), monte el PV vinculado en su aplicación.

Código de ejemplo

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. Comprobar el resultado

Consola

  1. Crear un CNFS

  1. Inicie sesión en la ACK console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > CNFS.

  3. Haga clic en Create CNFS File System y configure los parámetros de CNFS según las indicaciones.

    • Seleccione un sistema de archivos NAS.

    • Elija Select Existing NAS File System y luego haga clic en Create NAS File System para crear un sistema de archivos NAS personalizado. Una vez creado el sistema de archivos, selecciónelo.

      Para obtener más información sobre cómo crear un sistema de archivos NAS, consulte Create a General-purpose NAS file system by using the console.
  1. Crear un PV o una StorageClass

PV

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > Persistent Volumes.

  2. Haga clic en Create, establezca PV Type en NAS y configure los parámetros del PV según las indicaciones.

    La siguiente lista describe los parámetros clave. Para obtener descripciones detalladas de los parámetros, consulte Create a PV.

    • Capacity: Especifica la capacidad del PV. Este valor se utiliza para asociar el PV con una PVC y no limita el tamaño real de almacenamiento. Su aplicación puede utilizar toda la capacidad del sistema de archivos NAS subyacente.

      La capacidad real de un sistema de archivos NAS depende de sus especificaciones. Para obtener más información, consulte General-purpose NAS.
    • Enable CNFS: Especifica si se debe habilitar CNFS.

    • Select CNFS: Si habilita CNFS, seleccione el CNFS que creó anteriormente.

    • Advanced Options (Optional):

      • Mount Path: Subdirectorio de NAS que se va a montar. Si no especifica este parámetro, se monta el directorio raíz de forma predeterminada. El directorio raíz de un sistema de archivos NAS de propósito general es /.

        Si el directorio no existe en el sistema de archivos NAS, el sistema lo crea y lo monta automáticamente.
      • Reclaim Policy: CNFS solo admite Retain.

StorageClass

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > StorageClasses.

  2. En la página StorageClasses, haga clic en Create. Establezca PV Type en NAS y configure la StorageClass siguiendo las instrucciones en pantalla.

    Los parámetros clave se describen a continuación. Para obtener más información, consulte Create a StorageClass.

    • Select Mount Target: Seleccione la dirección del destino de montaje del sistema de archivos NAS creado o gestionado por CNFS.

      Para obtener más información sobre cómo consultar una dirección de destino de montaje, consulte Manage mount targets.
    • Mount Path: Subdirectorio de NAS que se va a montar. Si no especifica este parámetro, se monta el directorio raíz de forma predeterminada. El directorio raíz de un sistema de archivos NAS de propósito general es /.

      Si el directorio no existe en el sistema de archivos NAS, el sistema lo crea y lo monta automáticamente.
    • Reclaim Policy:

      • Retain (predeterminado): Cuando se elimina la PVC, no se eliminan el PV ni los archivos de NAS. Debe eliminarlos manualmente.

      • Delete: Elimina el PV cuando se elimina la PVC asociada. Esta directiva requiere archiveOnDelete. Sin embargo, los PV estáticos no admiten archiveOnDelete. Por lo tanto, cuando esta directiva se establece en Delete, la eliminación de la PVC no borra el PV ni los archivos del sistema de archivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Crear una PVC

  1. En el panel de navegación izquierdo de la página de gestión del clúster, seleccione Storage > PVCs.

  2. En la página Persistent Volume Claims, haga clic en Create. Establezca PVC Type en NAS y configure la PVC siguiendo las instrucciones en pantalla.

    • Allocation Mode: Método de aprovisionamiento del volumen.

    • Existing StorageClass: Haga clic en Select Storage Class y seleccione la StorageClass que creó.

    • Capacity: Capacidad del volumen que se va a crear. Este valor no puede superar la capacidad total del sistema de archivos NAS.

    • Access Mode: El valor predeterminado es ReadWriteMany. También puede seleccionar ReadWriteOnce o ReadOnlyMany.

  1. Crear una aplicación y montar el sistema de archivos NAS

Al crear un Deployment o un StatefulSet, puede montar una PVC en un contenedor desde la sección Volumes de la página Container.

El siguiente ejemplo muestra cómo montar el sistema de archivos NAS creado con CNFS en la ruta /data dentro de un contenedor.

Detalles de configuración: Establezca Volume Type en Cloud Storage, seleccione la PVC de NAS CNFS correspondiente (por ejemplo, cnfs-nas-pvc) en Mount Source e introduzca /data en Container Path.

Método 3: Uso de un sistema de archivos NAS existente

Utilice CNFS para conectar un sistema de archivos NAS existente a su clúster y ponerlo a disposición de las aplicaciones.

kubectl

1. Creación de un CNFS para un sistema de archivos NAS existente

Cree un recurso ContainerNetworkFileSystem que haga referencia a un destino de montaje 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

Descripción

description

Breve descripción del sistema de archivos.

type

Tipo de almacenamiento. Establezca este valor en nas.

reclaimPolicy

Directiva de recuperación. Actualmente, solo se admite Retain. Esta directiva evita la pérdida de datos al garantizar que el sistema de archivos NAS del backend no se elimine cuando se elimina el objeto CNFS.

parameters.server

Dirección del destino de montaje NAS.

  • Ejecute kubectl get cnfs para consultar el sistema de archivos NAS creado.

  • Ejecute kubectl get cnfs/cnfs-nas-filesystem -o yaml para consultar los detalles del sistema de archivos NAS.

    Para obtener más información sobre los parámetros YAML, consulte CNFS YAML reference.

2. Creación de un PV o StorageClass

Una vez creado el CNFS, elija cómo se conectará y utilizará su aplicación el sistema de archivos NAS.

  • Volumen persistente estático: Vincule manualmente un volumen persistente (PV) a un directorio existente en el sistema de archivos NAS. Este método es adecuado para escenarios en los que necesita acceder a datos existentes específicos.

  • StorageClass dinámica: Cree una StorageClass que funcione como plantilla para permitir que las aplicaciones creen automáticamente subdirectorios nuevos e independientes bajo demanda.

PV 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 to use.
      containerNetworkFileSystem: cnfs-nas-filesystem
      # The path in the CNFS where the volume is mounted.
      path: "/"
  mountOptions:
    - nolock,tcp,noresvport
    - vers=3
Para obtener más información sobre los parámetros de PV, consulte Use static NAS volumes.

StorageClass dinámica

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 obtener más información sobre los parámetros de StorageClass, consulte Use dynamic NAS volumes.

3. Creación de un PVC

Cree una solicitud de volumen persistente (PVC) que haga referencia al sistema de archivos NAS según el volumen persistente estático o la StorageClass dinámica que creó anteriormente.

PV estático

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   

StorageClass dinámica

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

4. Creación de una aplicación y montaje del sistema de archivos NAS

Una vez creada la solicitud de volumen persistente (PVC), monte el PV vinculado en su aplicación.

Código de ejemplo

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. Comprobación del resultado

Console

  1. Creación de un CNFS que utiliza un sistema de archivos NAS existente

  1. Inicie sesión en la ACK console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > CNFS.

  3. Haga clic en Create CNFS File System y siga las instrucciones en pantalla para configurar CNFS.

  4. En el panel Create CNFS File System, configure los parámetros y haga clic en OK.

    • Seleccione el tipo de sistema de archivos NAS.

    • Seleccione Select Existing NAS File System y elija un destino de montaje NAS existente en la lista desplegable.

    • Opcional. Habilite End-to-end Data Acceleration para usar la aceleración elástica en el montaje y optimizar el rendimiento de acceso a los datos.

  1. Creación de un PV o StorageClass

PV

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > Persistent Volumes.

  2. Haga clic en Create, establezca PV Type en NAS y luego configure los parámetros del PV según las indicaciones.

    La siguiente lista describe los parámetros clave. Para obtener descripciones detalladas de los parámetros, consulte Create a PV.

    • Capacity: Especifica la capacidad del PV. Este valor se utiliza para asociar el PV con un PVC y no limita el tamaño real de almacenamiento. Su aplicación puede utilizar la capacidad total del sistema de archivos NAS subyacente.

      La capacidad real de un sistema de archivos NAS depende de sus especificaciones. Para obtener más información, consulte General-purpose NAS.
    • Enable CNFS: Especifica si se habilita CNFS.

    • Select CNFS: Si habilita CNFS, seleccione el CNFS que creó anteriormente.

    • Advanced Options (Optional):

      • Mount Path: Subdirectorio NAS que se montará. Si no especifica este parámetro, se monta el directorio raíz de forma predeterminada. El directorio raíz de un sistema de archivos NAS de uso general es /.

        Si el directorio no existe en el sistema de archivos NAS, el sistema lo crea y lo monta automáticamente.
      • Reclaim Policy: CNFS solo admite Retain.

StorageClass

  1. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Volumes > StorageClasses.

  2. En la página StorageClasses, haga clic en Create. Establezca PV Type en NAS y configure la StorageClass siguiendo las instrucciones en pantalla.

    Los parámetros clave se describen a continuación. Para obtener más información, consulte Create a StorageClass.

    • Select Mount Target: Seleccione la dirección del destino de montaje del sistema de archivos NAS creado o gestionado por CNFS.

      Para obtener más información sobre cómo consultar una dirección de destino de montaje, consulte Manage mount targets.
    • Mount Path: Subdirectorio NAS que se montará. Si no especifica este parámetro, se monta el directorio raíz de forma predeterminada. El directorio raíz de un sistema de archivos NAS de uso general es /.

      Si el directorio no existe en el sistema de archivos NAS, el sistema lo crea y lo monta automáticamente.
    • Reclaim Policy:

      • Retain (predeterminado): Cuando se elimina el PVC, no se eliminan el PV ni los archivos NAS. Debe eliminarlos manualmente.

      • Delete: Elimina el PV cuando se elimina el PVC asociado. Esta directiva requiere archiveOnDelete. Sin embargo, los PV estáticos no admiten archiveOnDelete. Por lo tanto, cuando esta directiva se establece en Delete, la eliminación del PVC no borra el PV ni los archivos del sistema de archivos NAS.

        Para configurar archiveOnDelete, consulte Use dynamically provisioned NAS volumes.
  1. Creación de un PVC

  1. En el panel de navegación izquierdo de la página de gestión del clúster, seleccione Storage > PVCs.

  2. En la página Persistent Volume Claims, haga clic en Create. Establezca PVC Type en NAS y configure el PVC siguiendo las instrucciones en pantalla.

    • Allocation Mode: Método de aprovisionamiento del volumen.

    • Existing StorageClass: Haga clic en Select Storage Class y seleccione la StorageClass que creó.

    • Capacity: Capacidad del volumen que se creará. Este valor no puede superar la capacidad total del sistema de archivos NAS.

    • Access Mode: El valor predeterminado es ReadWriteMany. También puede seleccionar ReadWriteOnce o ReadOnlyMany.

  1. Creación de una aplicación y montaje del sistema de archivos NAS

Al crear un Deployment o un StatefulSet, puede montar un PVC en un contenedor desde la sección Volumes de la página Container.

El siguiente ejemplo muestra cómo montar el sistema de archivos NAS creado con CNFS en la ruta /data de un contenedor.

Detalles de configuración: Establezca Volume Type en Cloud Storage, seleccione el PVC de CNFS NAS correspondiente (por ejemplo, cnfs-nas-pvc) en Mount Source e introduzca /data en Container Path.

Configuración de almacenamiento compartido y aislado

Una vez creado un sistema de archivos NAS, puede configurarlo como almacenamiento compartido o aislado para cumplir con los requisitos de su aplicación.

Configuración de un volumen NAS compartido

Para compartir datos entre pods, monte el mismo directorio de un sistema de archivos NAS en varios pods como un volumen compartido.

  • Funcionamiento: Este método utiliza un volumen estático. La path especificada en el PersistentVolume (PV) es exactamente el directorio que monta el controlador CSI. Cuando varios pods montan este PV mediante el mismo PersistentVolumeClaim (PVC), todos acceden al mismo directorio, lo que permite compartir datos.

  • Configuración clave: En la sección volumes de la plantilla de pod de su carga de trabajo (.spec.template), establezca el parámetro persistentVolumeClaim.claimName con el mismo nombre de PVC.

1. Crear un PV y un PVC que apunten a un directorio específico

Show sample code

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. Crear un Deployment de ejemplo

Show sample code

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. Comprobar el resultado

  1. Check the mount status

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

    La salida incluye el punto de montaje, lo que confirma que se montó correctamente.

    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 shared and persistent storage for the Deployment.

Configuración de un volumen NAS aislado

Para casos de uso que requieren aislamiento de datos, como entornos multiinquilino, puede asignar a cada pod o grupo de pods un directorio de almacenamiento dedicado.

  • Funcionamiento: Este método utiliza un volumen dinámico. El controlador CSI crea automáticamente un subdirectorio dedicado con el mismo nombre que el PV dentro de la path especificada para usarlo como punto de montaje. Dado que cada PVC se vincula a un subdirectorio independiente, se garantiza el aislamiento de los datos.

  • Configuración clave:

    • En la sección parameters de su StorageClass, asegúrese de que volumeAs: subpath esté configurado. Esta opción (que es el valor predeterminado) crea un subdirectorio dedicado para cada PVC.

    • En la definición del StatefulSet, utilice la sección volumeClaimTemplates para crear y vincular automáticamente un PVC único para cada pod.

1. Crear una StorageClass para la creación dinámica de subdirectorios

Show sample code

Haga referencia al CNFS especificado en la StorageClass y use volumeAs: subpath para que el controlador CSI cree dinámicamente un subdirectorio aislado para cada solicitud 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. Crear un StatefulSet de ejemplo

Show sample code

Crea y monta dinámicamente un volumen de almacenamiento aislado para cada pod según una plantilla definida por la 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. Comprobar el resultado

  1. Check the mount status

    Consulte la información de montaje de un pod, por ejemplo, cnfs-nas-sts-0.

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

    La salida confirma que un subdirectorio del sistema de archivos NAS está montado en la ruta /data del 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 data isolation and persistent storage for the StatefulSet.

Recomendaciones para producción

  • Seguridad de los datos

    • Cifrado de datos: Al crear un nuevo sistema de archivos NAS, configure encryptType: SSE-KMS en los parameters del objeto CNFS. Esto habilita el cifrado del lado del servidor y mejora la seguridad de los datos.

    • Protección de datos y directiva de recuperación: La reclaimPolicy de un objeto CNFS siempre es Retain, lo que significa que eliminar el objeto CNFS en Kubernetes no elimina la instancia NAS del backend. Sin embargo, la directiva de recuperación de un PV se define en su StorageClass. Para entornos de producción, establezca la directiva de recuperación en Retain para evitar la pérdida accidental de datos.

    • Papelera de reciclaje: Al crear un sistema de archivos NAS, habilite la papelera de reciclaje mediante enableTrashCan: "true" para prevenir la eliminación accidental de datos.

    • Escrituras simultáneas: Cuando varios pods montan el mismo volumen de almacenamiento compartido, evite que múltiples instancias de la aplicación escriban en el mismo archivo a nivel de aplicación. Esto previene la corrupción de archivos por escrituras concurrentes.

  • Operaciones y gestión

    • Aislamiento de rendimiento: Los volúmenes de almacenamiento aislados solo proporcionan aislamiento a nivel de datos. Todos los volúmenes aislados comparten las IOPS y el throughput de la misma instancia NAS del backend. Para aplicaciones críticas con requisitos estrictos de rendimiento de E/S y necesidad de latencia estable, aprovisione un sistema de archivos NAS dedicado.

    • Gestión de capacidad: Configure allowVolumeExpansion: true en su StorageClass para permitir la expansión de la cuota de directorio del volumen de almacenamiento.

      El valor de requests.storage en un PVC se usa principalmente para decisiones de programación y no establece una cuota estricta en todo el sistema de archivos NAS.
    • Monitoreo y alertas: Utilice Container Storage Monitoring para configurar alertas sobre métricas clave como la utilización de capacidad, IOPS y throughput de su sistema de archivos NAS. Esto le ayuda a identificar rápidamente cuellos de botella de capacidad o rendimiento.

  • Optimización de costos

    • Elección del tipo de almacenamiento adecuado: Seleccione un tipo de NAS según sus requisitos de costo y rendimiento. Para obtener orientación, consulte Select a NAS type. Por ejemplo, Capacity NAS es una opción de menor costo adecuada para tareas no sensibles a la latencia, como compartir archivos o archivado.

    • Liberación oportuna de recursos: Tras dar de baja una aplicación, libere todos los recursos no utilizados. Además, delete el sistema de archivos NAS del backend si ya no es necesario para evitar costos inesperados.

Referencias

Verificación de almacenamiento compartido, aislamiento de datos y almacenamiento persistente

Después de montar el sistema de archivos NAS, compruebe que el almacenamiento se comporta como se espera.

  • Verificación de almacenamiento compartido y persistente para un deployment

    Steps

    Almacenamiento compartido

    Almacenamiento persistente

    Para verificar el almacenamiento compartido, cree un archivo en un pod y luego búsquelo en otro.

    1. Consulte la información de los pods para obtener sus nombres.

      kubectl get pod | grep cnfs-nas-deployment

      Salida esperada:

      cnfs-nas-deployment-*****a 1/1 Running 0 40s
          cnfs-nas-deployment-*****b 1/1 Running 0 40s
    2. Cree un archivo en uno de los pods. Este ejemplo usa un pod llamado cnfs-nas-deployment-*a.

      kubectl exec cnfs-nas-deployment-*****a -- touch /data/test.txt
    3. Compruebe si el archivo existe en el otro pod. Este ejemplo usa un pod llamado cnfs-nas-deployment-*b.

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

      Salida esperada:

      test.txt

      El archivo aparece en la salida, lo que confirma que los datos se comparten entre los pods.

      Importante

      Cuando varios pods escriben en un almacenamiento compartido, CNFS no puede garantizar la consistencia de los datos. Para evitar la corrupción de archivos, evite escrituras simultáneas en el mismo archivo.

    Para verificar el almacenamiento persistente, vuelva a crear el deployment y compruebe si los datos existen en los nuevos pods.

    1. Inicie un reinicio progresivo del deployment para volver a crear sus pods.

      kubectl rollout restart deploy cnfs-nas-deployment
    2. Consulte los pods y espere a que los nuevos pods se inicien y entren en estado Running.

      kubectl get pod | grep cnfs-nas-deployment

      Salida esperada:

      cnfs-nas-deployment-*****c 1/1 Running 0 67s
          cnfs-nas-deployment-*****d 1/1 Running 0 49s
    3. En un nuevo pod, compruebe si existe el archivo creado anteriormente. Este ejemplo usa un pod llamado cnfs-nas-deployment-*c.

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

      Salida esperada:

      test.txt

      El archivo escrito previamente aparece en la salida, lo que confirma que el almacenamiento es persistente.

  • Verificación de aislamiento de datos y almacenamiento persistente para un StatefulSet

    Steps

    Cada pod en un StatefulSet tiene un PVC independiente, lo que garantiza el aislamiento de datos.

    Aislamiento de datos

    Almacenamiento persistente

    Para verificar el aislamiento de datos, cree un archivo en un pod y confirme su ausencia en otro.

    1. Consulte la información de los pods para obtener sus nombres.

      kubectl get pod | grep cnfs-nas-sts

      Salida esperada:

      cnfs-nas-sts-0 1/1 Running 0 5m
          cnfs-nas-sts-1 1/1 Running 0 5m
    2. Cree un archivo identificable en uno de los pods. Este ejemplo usa un pod llamado cnfs-nas-sts-0:

      kubectl exec cnfs-nas-sts-0 -- touch /data/sts-0-data.txt
    3. Compruebe si el archivo existe en el otro pod. Este ejemplo usa un pod llamado cnfs-nas-sts-1.

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

      La salida no muestra el archivo creado en cnfs-nas-sts-0. Esto confirma que cada pod del StatefulSet usa un volumen independiente y que sus datos están aislados.

    Elimine un pod específico, espere a que se vuelva a crear y luego compruebe si los datos existen en el nuevo pod.

    1. Elimine un pod para activar su recreación. Este ejemplo usa cnfs-nas-sts-0:

      kubectl delete pod cnfs-nas-sts-0
    2. Consulte los pods y espere a que un pod con el mismo nombre se inicie y entre en estado Running. El StatefulSet recrea un pod con el mismo nombre e identidad.

      kubectl get pod | grep cnfs-nas-sts

      Salida esperada:

      cnfs-nas-sts-0                        1/1     Running   0          19s
          cnfs-nas-sts-1                        1/1     Running   0          102s
    3. En el nuevo pod, compruebe si existe el archivo creado anteriormente.

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

      El archivo escrito previamente aparece en la salida, lo que confirma que el almacenamiento persistente funciona correctamente.

      sts-0-data.txt

YAML de CNFS

Ejecute kubectl get cnfs/<cnfsName> -o yaml para ver la configuración completa y el estado en tiempo real del objeto CNFS.

Esta sección proporciona un ejemplo de ejecución del comando kubectl get cnfs/cnfs-nas-filesystem -o yaml en Method 2 para ver el YAML de cnfs-nas-filesystem.

Ejemplo de YAML

Details

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

Details

Parámetro

Descripción

status

El estado actual del CNFS. Los valores posibles son Pending, Creating, Initialization (creando el sistema de archivos), Available, Unavailable (temporalmente no disponible pero recuperable), Fatal (no disponible y sin posibilidad de recuperación) y Terminating.

conditions.lastProbeTime

La marca de tiempo de la última prueba de actividad.

conditions.reason

El motivo del estado actual.

conditions.status

El estado actual. El estado es Ready si el recurso está disponible, y NotReady si el recurso no está disponible.

fsAttributes.accessGroupName

El nombre del grupo de permisos aplicado al destino de montaje. Actualmente, solo se admite DEFAULT_VPC_GROUP_NAME (el grupo de permisos predeterminado para la VPC).

fsAttributes.encryptType

Opcional. Especifica el encryption method.

  • None: Deshabilita el cifrado.

  • SSE-KMS: Habilita el cifrado administrado por NAS. Se utiliza una clave totalmente administrada por NAS para cifrar cada sistema de archivos. Esta clave se crea y gestiona en Key Management Service (KMS).

fsAttributes.enableTrashCan

Habilita la papelera de reciclaje para evitar interrupciones del servicio y pérdida de datos por eliminación accidental de archivos.

  • true: Habilita la función.

  • false: Deshabilita la función.

fsAttributes.filesystemId

El ID del sistema de archivos.

fsAttributes.filesystemType

El tipo de sistema de archivos. El valor predeterminado es General-purpose NAS, especificado como standard.

fsAttributes.protocolType

El protocolo de transferencia de archivos. Actualmente, solo se admite NFS protocol.

fsAttributes.regionId

La región donde se encuentra el CNFS.

fsAttributes.server

La dirección del destino de montaje NAS.

fsAttributes.storageType

El tipo de almacenamiento. General-purpose NAS admite los tipos Performance, Capacity y Premium.

fsAttributes.vSwitchId

El vSwitch utilizado por el CNFS.

fsAttributes.vpcId

La VPC donde se encuentra el CNFS.

fsAttributes.zoneId

La zona de disponibilidad donde se encuentra el CNFS.

Limpieza de recursos

Para evitar cargos inesperados y garantizar la seguridad de los datos, siga estos pasos para liberar los recursos que ya no estén en uso.

  1. Eliminar la carga de trabajo

    • Acción: Elimine todas las aplicaciones que usen los PVC relevantes, como deployments y StatefulSets. Esta acción detiene los pods y desmonta los volúmenes.

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

  2. Eliminar los PVC

    • Acción: Elimine el PVC asociado a la aplicación. El resultado de la eliminación del PV depende de la directiva de recuperación (reclaimPolicy).

      • Retain (Recomendado): Después de eliminar el PVC, los datos y directorios en el NAS del backend se conservan por completo.

      • Delete: Cuando se elimina un PVC, también se elimina su PV vinculado. Los datos y directorios en el NAS del backend se manejarán según la configuración del parámetro archiveOnDelete en la StorageClass.

        • "true" (predeterminado): El directorio o archivo no se elimina realmente. En su lugar, se renombra a archived-{pvName}.{timestamp}.

        • "false" : Los datos se eliminan permanentemente. Esta operación es irreversible. Úsela con precaución.

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

  3. Eliminar el PV

    • Operación: Elimine el PV. Esta operación es principalmente para PV estáticos o para PV que están en estado Released después de aplicar la directiva Retain en el paso anterior.

      Esta acción solo elimina la definición del recurso de Kubernetes. No elimina los datos en el NAS del backend.
    • Comando de ejemplo: kubectl delete pv <YOUR-PV-NAME>

  4. Eliminar definiciones de almacenamiento de Kubernetes (Opcional)

    • Acción: Elimine los objetos StorageClass y CNFS que ya no sean necesarios.

      Esta acción solo elimina las definiciones de recursos de Kubernetes. No elimina los datos en el NAS del backend.
    • Comandos de ejemplo: kubectl delete sc <YOUR-STORAGECLASS-NAME> y kubectl delete cnfs <YOUR-CNFS-NAME>

  5. Eliminar el sistema de archivos NAS del backend

    • Acción: Consulte Delete a file system. Esta acción irreversible elimina permanentemente todos los datos en el NAS. Úsela con extrema precaución. Antes de continuar, asegúrese de que ningún otro servicio dependa de este sistema de archivos NAS.