Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Use ENS disks

Última actualización: Sep 04, 2026

Los discos ENS proporcionan block storage persistente para las cargas de trabajo que se ejecutan en nodos de Edge Node Service (ENS) dentro de un clúster ACK Edge. Mediante el plugin de Container Storage Interface (CSI), puede montar volúmenes de disco ENS mediante aprovisionamiento dinámico (ENS crea el disco automáticamente) o aprovisionamiento estático (usted proporciona un disco existente).

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Elección del método de aprovisionamiento

Aprovisionamiento dinámico

Aprovisionamiento estático

Cuándo utilizarlo

Al desplegar nuevas aplicaciones que requieren almacenamiento

Cuando ya adquirió un disco ENS

Cómo se crea el disco

Automáticamente mediante StorageClass

Manualmente, antes de crear el PV

Facturación del disco

Solo pay-as-you-go

—

Configuración típica

StorageClass → PVC → pod

PV → PVC → pod

Utilice el aprovisionamiento dinámico para nuevos despliegues. Recurra al aprovisionamiento estático únicamente cuando reutilice un disco existente.

Notas de uso

Restricciones estrictas:

  • Un disco ENS solo se puede montar en un pod a la vez. No se admite el uso compartido.

  • Los discos ENS únicamente se pueden montar en nodos ENS que se encuentren en la misma región que el disco.

  • La única reclaimPolicy compatible es Retain. Al eliminar una solicitud de volumen persistente (PVC), el volumen persistente (PV) y los datos del disco permanecen intactos; elimínelos manualmente cuando ya no sean necesarios.

  • No se admite allowVolumeExpansion.

  • Para eliminar o recuperar un disco ENS, utilice la consola de Edge Node Service. Esta acción no se puede realizar desde el clúster ACK.

  • Si se recrea un pod y el programador no puede colocarlo en la zona original, el pod permanecerá en estado Pending hasta que se reprograme en una zona compatible.

Recomendaciones:

  • Para nuevos despliegues, utilice una StorageClass con aprovisionamiento dinámico para que ENS cree y gestione los discos automáticamente.

  • Asegúrese de que el tamaño del disco no exceda el límite de capacidad por disco para el tipo de disco seleccionado. Consulte Disk types.

  • Para obtener detalles sobre la facturación, consulte Billing of block storage devices.

Montaje de un volumen de disco ENS con aprovisionamiento dinámico

El aprovisionamiento dinámico permite que Kubernetes cree y conecte un disco ENS automáticamente cuando un pod necesita almacenamiento. Existen dos modos de vinculación; elija el adecuado según la topología de regiones de su clúster.

Paso 1: Crear una StorageClass

Los clústeres ACK Edge pueden abarcar varias regiones. Seleccione el modo de vinculación que se ajuste a su despliegue:

Modo de vinculación

Funcionamiento

Cuándo utilizarlo

WaitForFirstConsumer

Crea el disco en la zona donde se programa el pod

Clústeres multirregión (recomendado)

Immediate

Crea el disco al generar la PVC, antes de programar cualquier pod

Clústeres de una sola región o cuando la región se conoce de antemano

Importante

En clústeres ACK Edge multirregión, utilice WaitForFirstConsumer para garantizar que el disco se cree en la zona donde se programa el pod.

Opción A: WaitForFirstConsumer (recomendado para clústeres multirregión)

Cree el archivo storage-class-topology.yaml:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-ens-disk-available
provisioner: ensplugin.csi.alibabacloud.com
parameters:
  type: available
  fsType: ext4
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Retain
allowVolumeExpansion: false

Parámetros clave:

  • provisioner: ensplugin.csi.alibabacloud.com — el aprovisionador CSI de ENS que gestiona el ciclo de vida del disco.

  • type: available — el tipo de disco.

  • volumeBindingMode: WaitForFirstConsumer — retrasa la creación del disco hasta que se programa un pod, de modo que el disco se crea en la zona correcta.

  • reclaimPolicy: Retain — el único valor compatible. El disco y sus datos persisten después de eliminar la PVC.

Aplique la StorageClass:

kubectl apply -f storage-class-topology.yaml

Opción B: Immediate (para clústeres de una sola región)

Cree el archivo storage-class-csi.yaml:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-ens-disk-available
provisioner: ensplugin.csi.alibabacloud.com
parameters:
  type: available
  regionId: <your-region-id>
reclaimPolicy: Retain
allowVolumeExpansion: false
volumeBindingMode: Immediate

Parámetros clave:

  • regionId — opcional. La región donde se crea automáticamente el disco.

  • volumeBindingMode: Immediate — crea el disco tan pronto como se genera la PVC, antes de programar cualquier pod.

Aplique la StorageClass:

kubectl apply -f storage-class-csi.yaml

Comprobación de la StorageClass:

  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 Clusters, haga clic en el nombre del clúster. En el panel izquierdo, elija Volumes > StorageClasses.

La StorageClass recién creada aparece en la página StorageClasses.

Paso 2: Crear una PVC

Cree el archivo pvc-ssd.yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: disk-pvc
spec:
  accessModes:
  - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 25Gi
  storageClassName: alicloud-ens-disk-available

Aplique la PVC:

kubectl create -f pvc-ssd.yaml

Comprobación de la PVC:

En el panel izquierdo de la página de detalles del clúster, elija Volumes > Persistent Volume Claims. La PVC aparece en la página Persistent Volume Claims.

Paso 3: Crear una aplicación

Cree el archivo pvc-dynamic.yaml para desplegar un StatefulSet de nginx que monte la PVC:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx-dynamic
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: pvc-disk
          mountPath: /data
      volumes:
        - name: pvc-disk
          persistentVolumeClaim:
            claimName: disk-pvc

Parámetros clave:

  • mountPath: /data — la ruta dentro del contenedor donde se monta el disco.

  • claimName: disk-pvc — debe coincidir con el nombre de la PVC del Paso 2.

Aplique el StatefulSet:

kubectl create -f pvc-dynamic.yaml

Comprobación de la aplicación:

En el panel izquierdo de la página de detalles del clúster, elija Workloads > StatefulSets. Confirme que el StatefulSet nginx-dynamic se esté ejecutando.

Montaje de un volumen de disco ENS con aprovisionamiento estático

El aprovisionamiento estático se utiliza cuando cuenta con un disco ENS pay-as-you-go existente. Debe crear manualmente un PV que referencie el ID del disco y, a continuación, vincular una PVC a este.

Paso 1: Crear un PV

Cree el archivo pv-static.yaml. Reemplace <your-disk-id> con el ID de su disco ENS y <your-node-region-id> con el ID de región del nodo ENS destino:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: csi-pv
  labels:
    alicloud-pvname: static-disk-pv
spec:
  capacity:
    storage: 25Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: ensplugin.csi.alibabacloud.com
    volumeHandle: "<your-disk-id>"
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.ensplugin.csi.alibabacloud.com/region
          operator: In
          values:
          - "<your-node-region-id>"

Parámetros clave:

  • volumeHandle: "<your-disk-id>" — el ID del disco ENS que se asociará con este PV. Ejemplo: d-wz92s6d95go6ki9x****.

  • nodeAffinity — restringe los nodos a los que se puede vincular este PV según la región. Establezca <your-node-region-id> con el valor de la etiqueta topology.ensplugin.csi.alibabacloud.com/region del nodo ENS destino.

  • labels: alicloud-pvname: static-disk-pv — utilizado por el selector de la PVC en el Paso 2 para vincularse a este PV específico.

  • persistentVolumeReclaimPolicy: Retain — los datos del disco se conservan cuando se elimina la PVC.

Aplique el PV:

kubectl create -f pv-static.yaml

Comprobación del 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 Clusters, haga clic en el nombre del clúster. En el panel izquierdo, elija Volumes > Persistent Volumes.

El PV recién creado aparece en la página Persistent Volumes.

Paso 2: Crear una PVC

Cree el archivo pvc-static.yaml. El selector matchLabels vincula esta PVC al PV específico creado en el Paso 1:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 25Gi
  selector:
    matchLabels:
      alicloud-pvname: static-disk-pv

Parámetros clave:

  • storage: 25Gi — la capacidad solicitada. No debe exceder la capacidad del PV al que se vincula.

  • matchLabels: alicloud-pvname: static-disk-pv — selecciona el PV mediante su etiqueta. Debe coincidir con la etiqueta del PV del Paso 1.

Aplique la PVC:

kubectl create -f pvc-static.yaml

Comprobación de la PVC:

En el panel izquierdo de la página de detalles del clúster, elija Volumes > Persistent Volume Claims. Confirme que la PVC csi-pvc aparezca y esté vinculada.

Paso 3: Crear una aplicación

Cree el archivo web.yaml para desplegar un StatefulSet de nginx que monte el disco aprovisionado estáticamente:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: pvc-disk
          mountPath: /data
      volumes:
        - name: pvc-disk
          persistentVolumeClaim:
            claimName: csi-pvc

Parámetros clave:

  • mountPath: /data — la ruta dentro del contenedor donde se monta el disco.

  • claimName: csi-pvc — debe coincidir con el nombre de la PVC del Paso 2.

Aplique el StatefulSet:

kubectl apply -f web.yaml

Comprobación de la aplicación:

En el panel izquierdo de la página de detalles del clúster, elija Workloads > StatefulSets. Confirme que el StatefulSet web se esté ejecutando. Un estado de ejecución confirma que el disco ENS se montó correctamente.

Pasos siguientes