Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Mount a statically provisioned NAS volume

Última actualización: Sep 29, 2026

Este tema explica cómo montar un volumen de Network Attached Storage (NAS) de Alibaba Cloud en los pods de un clúster de Container Service for Kubernetes (ACK) mediante aprovisionamiento estático. El aprovisionamiento estático permite conectar los pods a un sistema de archivos NAS existente para obtener almacenamiento persistente y compartido entre varios pods de manera simultánea.

Requisitos previos

Casos de uso

  • Aplicaciones con requisitos altos de E/S de disco.

  • Admite el uso compartido de archivos entre hosts; por ejemplo, como servidor de archivos.

Notas

  • Cuando se utiliza un sistema de archivos Extreme NAS, el path configurado para el PersistentVolume (PV) debe usar /share como directorio principal. Por ejemplo, el subdirectorio del sistema de archivos NAS que monta un pod se puede establecer en /share/path1.

  • NAS admite el montaje simultáneo por parte de varios pods. En este caso, varios pods pueden modificar los mismos datos de forma concurrente, por lo que la aplicación debe implementar la sincronización de datos por su cuenta.

    Nota

    El directorio / en el almacenamiento NAS no admite la modificación de permisos, propietario ni grupo.

  • Si configura el parámetro securityContext.fsgroup en una plantilla de aplicación, Kubelet ejecutará operaciones chmod o chown después de montar el PersistentVolume (PV), lo cual aumenta el tiempo de montaje.

    Nota

    Si ya configuró el parámetro securityContext.fsgroup y necesita reducir el tiempo de montaje, consulte NAS volume FAQ.

Montar un volumen NAS desde la consola

Paso 1: Crear un PV

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

  2. En la página Cluster List, haga clic en el nombre del clúster de destino o haga clic en Details en la columna Actions.

  3. En el panel de navegación izquierdo de la página de administración del clúster, elija Storage > Persistent Volume.

  4. En la página Persistent Volumes, haga clic en Create en la esquina superior derecha.

  5. En el cuadro de diálogo Create PV, configure los parámetros.

    Parámetro

    Nota

    PV Type

    En este ejemplo, se selecciona NAS.

    Name

    Nombre del PersistentVolume (PV) que se va a crear. Debe ser único dentro del clúster. En este ejemplo, el nombre es pv-nas.

    Capacity

    Capacidad del PersistentVolume (PV) que se va a crear. Tenga en cuenta que el sistema de archivos NAS no impone límites de uso por sí mismo. Este valor no representa una cuota del sistema de archivos NAS, sino una declaración de capacidad para el PV que se crea.

    Access Mode

    Seleccione ReadWriteMany y ReadWriteOnce. El valor predeterminado es ReadWriteMany.

    Mount Target Domain Name:

    Puede definir la dirección de montaje del clúster en el punto de montaje NAS mediante Select Mount Target o Custom.

    Advanced Options (Optional)

    Mount Path

    Subdirectorio de NAS que se va a montar. Si no se especifica este parámetro, se monta el directorio raíz de forma predeterminada.

    Si el directorio no existe en el sistema de archivos NAS, se crea automáticamente y luego se monta.
    • NAS de propósito general: el directorio raíz es /.

    • Extreme NAS: el directorio raíz es /share. Cuando monte un subdirectorio, path debe comenzar con /share, como /share/data.

    Reclaim Policy

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

    Mount Options

    Opciones de montaje para NAS, incluida la versión del protocolo NFS. De forma predeterminada, los volúmenes se montan con NFSv3. Puede especificar una versión distinta con una opción como vers=4.0. Para obtener información sobre los protocolos NFS compatibles con los distintos tipos de NAS, consulte NFS protocols.

    Labels

    Agregue etiquetas a este PersistentVolume (PV).

  6. Después de configurar los parámetros, haga clic en Create.

Paso 2: Crear un PVC

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

  2. En la página Persistent Volume Claims, haga clic en Create en la esquina superior derecha.

  3. En el cuadro de diálogo Create PVC que aparece, complete los parámetros.

    Parámetro

    Nota

    PVC Type

    En este ejemplo, se selecciona NAS.

    Name

    El nombre del PersistentVolumeClaim (PVC) que se va a crear debe ser único dentro del clúster.

    Allocation Mode

    Seleccione un PersistentVolume (PV) existente.

    Nota

    Si no se ha creado ningún PV, puede establecer Allocation Mode en Create PV para configurar los parámetros de creación de un PV. Para más información, consulte Create a PV.

    Existing Volumes

    Haga clic en Select PV y luego, en la columna Actions a la derecha del PV de destino, haga clic en Select Node para seleccionar el PV.

    Capacity

    Capacidad del PersistentVolume (PV) que se va a crear.

    Nota

    La capacidad del PersistentVolumeClaim (PVC) que se va a crear no puede superar la capacidad del PersistentVolume (PV) que se va a montar.

  4. Haga clic en Create.

    Una vez creado el PersistentVolumeClaim (PVC), podrá verlo en la lista ya vinculado al PersistentVolume (PV) correspondiente.

Paso 3: Crear una aplicación

  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 Workloads > Deployments.

  2. En la página Deployments, haga clic en Create from Image y configure los parámetros de la aplicación.

    A continuación se describen los parámetros principales. Puede conservar los valores predeterminados para el resto de los parámetros. Para más información, consulte Create a stateless workload (Deployment).

    Categoría

    Parámetro

    Descripción

    Basic Information

    Application Name

    Nombre del Deployment.

    Replicas:

    Número de réplicas del Deployment.

    Esta configuración le permite comprobar la función de almacenamiento compartido de NAS.

    Container

    Image Name

    Dirección de la imagen de la aplicación.

    Required Resources

    Recursos de vCPU y memoria obligatorios.

    Volume

    Haga clic en Add PVC y configure los parámetros.

    • Mount Source: seleccione el PVC que creó anteriormente.

    • Container Path: ruta dentro del contenedor donde se montará el sistema de archivos NAS, como /data.

    Cuando finalice el despliegue, vaya a la página Deployments y haga clic en el nombre de la aplicación. En la pestaña Pods, compruebe que los pods estén en estado Running.

Montar un volumen NAS con kubectl

  1. Ejecute el siguiente comando para crear un PV estático.

    kubectl create -f pv-nas.yaml

    A continuación se muestra un archivo YAML de ejemplo para crear un PV estático.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas
      labels:
        alicloud-pvname: pv-nas
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3

    Parámetro

    Nota

    name

    Nombre del PV.

    labels

    Establezca las etiquetas del PV.

    storage

    Capacidad disponible de NAS.

    accessModes

    Configure el modo de acceso.

    driver

    Tipo de controlador. En este ejemplo, el valor es nasplugin.csi.alibabacloud.com, lo que indica que se usa el plugin CSI de NAS de Alibaba Cloud.

    volumeHandle

    Configure un identificador único para el PV. Si se usan varios PV de forma simultánea, este valor debe ser distinto para cada uno.

    server

    Punto de montaje de NAS.

    path

    Subdirectorio de montaje. Para Extreme NAS, debe usarse /share como directorio principal.

    vers

    Versión del protocolo NFS para montar el PersistentVolume (PV) de NAS. Se recomienda la versión 3. Extreme NAS solo admite la versión 3.

  2. Ejecute el siguiente comando para crear un PVC estático.

    Cree un PersistentVolumeClaim (PVC) de NAS y use selector para filtrar los PV y configurar con precisión el vínculo entre el PVC y el PV.

    kubectl create -f pvc-nas.yaml

    A continuación se muestra un archivo YAML de ejemplo para crear un PVC estático.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas

    Parámetro

    Nota

    name

    Nombre del PVC.

    accessModes

    Configure el modo de acceso.

    storage

    Declare el uso de la aplicación, que no puede superar la capacidad total del PersistentVolume (PV).

    matchLabels

    Introduzca la etiqueta del PV para asociarlo.

  3. Ejecute el siguiente comando para crear una aplicación llamada nas-static y montar el PVC.

    kubectl create -f nas.yaml

    A continuación se muestra un archivo nas.yaml de ejemplo para crear la aplicación nas-static.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-static
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: "/data"
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: pvc-nas

    Parámetro

    Nota

    mountPath

    Ruta de montaje de NAS en el contenedor.

    claimName

    Nombre del PVC, utilizado para vincularlo.

  4. Ejecute el siguiente comando para consultar la información de los pods.

    kubectl get pod

    Salida esperada:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s

Comprobar el almacenamiento persistente de NAS

  1. Consulte la aplicación desplegada y los archivos de NAS.

    1. Ejecute el siguiente comando para consultar el nombre de la aplicación desplegada.

      kubectl get pod 

      Salida esperada:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Ejecute el siguiente comando para consultar los archivos de la ruta /data de cualquier aplicación. En este ejemplo se usa el pod llamado nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      No se devuelve ninguna salida, lo que indica que no hay archivos en la ruta /data.

  2. Ejecute el siguiente comando para crear un archivo nas en la ruta /data del pod llamado nas-static-5b5cdb85f6-n****.

    kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Ejecute el siguiente comando para consultar los archivos de la ruta /data del pod llamado nas-static-5b5cdb85f6-n****.

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Salida esperada:

    nas
  4. Ejecute el siguiente comando para eliminar el pod.

    kubectl delete pod nas-static-5b5cdb85f6-n****
  5. Al mismo tiempo, en otra ventana, ejecute el siguiente comando para observar el proceso de eliminación del pod y su recreación por parte de Kubernetes.

    kubectl get pod -w -l app=nginx
  6. Compruebe si los archivos creados en NAS siguen existiendo después de eliminar el pod.

    1. Ejecute el siguiente comando para consultar el nombre del pod que recreó Kubernetes.

      kubectl get pod

      Salida esperada:

      NAME                                READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Ejecute el siguiente comando para consultar los archivos de la ruta /data del pod llamado nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Salida esperada:

      nas

      El archivo nas sigue existiendo, lo que indica que los datos de NAS se almacenan de forma persistente.

Comprobar el almacenamiento compartido

  1. Consulte los pods donde se ejecuta la aplicación desplegada y los archivos de NAS.

    1. Ejecute el siguiente comando para consultar los nombres de los pods donde se ejecuta la aplicación.

      kubectl get pod 

      Salida esperada:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Ejecute el siguiente comando para consultar los archivos de la ruta /data de los dos pods.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data
      kubectl exec nas-static-c5bb4746c-4**** -- ls /data
  2. Ejecute el siguiente comando para crear un archivo nas en la ruta /data de cualquier pod.

     kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Ejecute el siguiente comando para consultar los archivos de la ruta /data de los dos pods.

    1. Ejecute el siguiente comando para consultar los archivos de la ruta /data del pod llamado nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Salida esperada:

      nas
    2. Ejecute el siguiente comando para consultar los archivos de la ruta /data del pod llamado nas-static-c5bb4746c-4****.

      kubectl exec nas-static-c5bb4746c-4**** -- ls /data

      Salida esperada:

      nas

      Si el archivo creado en la ruta /data de cualquier pod aparece en la ruta /data de ambos pods, significa que los dos pods comparten el mismo NAS.