Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use ENS disks

Última atualização: Jul 05, 2026

Os discos ENS fornecem armazenamento em bloco persistente para cargas de trabalho executadas em nós do Edge Node Service (ENS) em um cluster ACK Edge. Com o plug-in Container Storage Interface (CSI), você pode montar volumes de disco ENS por meio de provisionamento dinâmico (o ENS cria o disco automaticamente) ou provisionamento estático (você fornece um disco existente).

Pré-requisitos

Antes de começar, verifique se você tem:

Escolher um método de provisionamento

Provisionamento dinâmico

Provisionamento estático

Quando usar

Ao implantar novas aplicações que precisam de armazenamento

Quando você já adquiriu um disco ENS

Como o disco é criado

Automaticamente via StorageClass

Manualmente, antes de criar o PV

Faturamento do disco

Apenas pagamento conforme o uso

Configuração típica

StorageClass → PVC → pod

PV → PVC → pod

Use o provisionamento dinâmico para novas implantações. Use o provisionamento estático apenas ao reutilizar um disco existente.

Observações de uso

Restrições obrigatórias:

  • Um disco ENS pode ser montado em apenas um pod por vez. Não há suporte para compartilhamento.

  • Discos ENS só podem ser montados em nós ENS localizados na mesma região do disco.

  • O único valor com suporte para reclaimPolicy é Retain. Excluir uma persistent volume claim (PVC) mantém o persistent volume (PV) e os dados do disco intactos — exclua-os manualmente quando não forem mais necessários.

  • Não há suporte para allowVolumeExpansion.

  • Para excluir ou recuperar um disco ENS, use o console do Edge Node Service. Você não pode realizar essa operação diretamente no cluster ACK.

  • Se um pod for recriado e o agendador não conseguir alocá-lo na zona original, ele permanecerá no estado Pending até ser reagendado para uma zona compatível.

Recomendações:

  • Em novas implantações, use uma StorageClass com provisionamento dinâmico para que o ENS crie e gerencie os discos automaticamente.

  • Certifique-se de que o tamanho do disco não ultrapasse o limite de capacidade por disco para o tipo escolhido. Consulte Tipos de disco.

  • Para detalhes sobre faturamento, consulte Faturamento de dispositivos de armazenamento em bloco.

Montar um volume de disco ENS com provisionamento dinâmico

O provisionamento dinâmico permite que o Kubernetes crie e anexe um disco ENS automaticamente sempre que um pod precisar de armazenamento. Existem dois modos de vinculação — escolha aquele que melhor se adapta à topologia de regiões do seu cluster.

Etapa 1: Criar uma StorageClass

Clusters ACK Edge podem abranger várias regiões. Selecione o modo de vinculação adequado à sua implantação:

Modo de vinculação

Funcionamento

Cenário recomendado

WaitForFirstConsumer

Cria o disco na zona onde o pod agendado será executado

Clusters multirregião (recomendado)

Immediate

Cria o disco no momento da criação da PVC, antes de qualquer agendamento de pod

Clusters de região única ou quando a região é conhecida antecipadamente

Importante

Em clusters ACK Edge multirregião, use WaitForFirstConsumer para garantir que o disco seja criado na mesma zona onde o pod foi agendado.

Opção A: WaitForFirstConsumer (recomendado para clusters multirregião)

Crie o arquivo 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 principais:

  • provisioner: ensplugin.csi.alibabacloud.com — provisionador CSI do ENS responsável pelo ciclo de vida do disco.

  • type: available — define o tipo do disco.

  • volumeBindingMode: WaitForFirstConsumer — adia a criação do disco até que um pod seja agendado, assegurando que o disco seja criado na zona correta.

  • reclaimPolicy: Retain — único valor com suporte. O disco e seus dados permanecem após a exclusão da PVC.

Aplique a StorageClass:

kubectl apply -f storage-class-topology.yaml

Opção B: Immediate (para clusters de região única)

Crie o arquivo 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 principais:

  • regionId — opcional. Especifica a região onde o disco será criado automaticamente.

  • volumeBindingMode: Immediate — cria o disco assim que a PVC é criada, antes de qualquer agendamento de pod.

Aplique a StorageClass:

kubectl apply -f storage-class-csi.yaml

Verificar a StorageClass:

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

  2. Na página Clusters, clique no nome do cluster. No painel à esquerda, selecione Volumes > StorageClasses.

A StorageClass recém-criada aparecerá na página StorageClasses.

Etapa 2: Criar uma PVC

Crie o arquivo 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 a PVC:

kubectl create -f pvc-ssd.yaml

Verificar a PVC:

No painel à esquerda da página de detalhes do cluster, selecione Volumes > Persistent Volume Claims. A PVC estará visível na página Persistent Volume Claims.

Etapa 3: Criar uma aplicação

Crie o arquivo pvc-dynamic.yaml para implantar um StatefulSet nginx que monta a 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 principais:

  • mountPath: /data — caminho dentro do contêiner onde o disco será montado.

  • claimName: disk-pvc — deve corresponder ao nome da PVC criado na Etapa 2.

Aplique o StatefulSet:

kubectl create -f pvc-dynamic.yaml

Verificar a aplicação:

No painel à esquerda da página de detalhes do cluster, selecione Workloads > StatefulSets. Confirme se o StatefulSet nginx-dynamic está em execução.

Montar um volume de disco ENS com provisionamento estático

O provisionamento estático destina-se a cenários em que você já possui um disco ENS no modelo pagamento conforme o uso. Nesse caso, crie manualmente um PV referenciando o ID do disco e vincule uma PVC a ele.

Etapa 1: Criar um PV

Crie o arquivo pv-static.yaml. Substitua <your-disk-id> pelo ID do seu disco ENS e <your-node-region-id> pelo ID da região do nó ENS de 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 principais:

  • volumeHandle: "<your-disk-id>" — ID do disco ENS a ser associado a este PV. Exemplo: d-wz92s6d95go6ki9x****.

  • nodeAffinity — restringe os nós aos quais este PV pode ser vinculado, com base na região. Defina <your-node-region-id> com o valor do rótulo topology.ensplugin.csi.alibabacloud.com/region presente no nó ENS de destino.

  • labels: alicloud-pvname: static-disk-pv — utilizado pelo seletor da PVC na Etapa 2 para vincular especificamente a este PV.

  • persistentVolumeReclaimPolicy: Retain — preserva os dados do disco quando a PVC é excluída.

Aplique o PV:

kubectl create -f pv-static.yaml

Verificar o PV:

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

  2. Na página Clusters, clique no nome do cluster. No painel à esquerda, selecione Volumes > Persistent Volumes.

O PV recém-criado aparecerá na página Persistent Volumes.

Etapa 2: Criar uma PVC

Crie o arquivo pvc-static.yaml. O seletor matchLabels vincula esta PVC ao PV específico criado na Etapa 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 principais:

  • storage: 25Gi — capacidade solicitada. Não deve exceder a capacidade do PV ao qual será vinculada.

  • matchLabels: alicloud-pvname: static-disk-pv — seleciona o PV pelo seu rótulo. Deve corresponder exatamente ao rótulo definido no PV da Etapa 1.

Aplique a PVC:

kubectl create -f pvc-static.yaml

Verificar a PVC:

No painel à esquerda da página de detalhes do cluster, selecione Volumes > Persistent Volume Claims. Confirme se a PVC csi-pvc aparece e está vinculada.

Etapa 3: Criar uma aplicação

Crie o arquivo web.yaml para implantar um StatefulSet nginx utilizando o disco provisionado estaticamente:

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 principais:

  • mountPath: /data — caminho dentro do contêiner onde o disco será montado.

  • claimName: csi-pvc — deve corresponder ao nome da PVC criado na Etapa 2.

Aplique o StatefulSet:

kubectl apply -f web.yaml

Verificar a aplicação:

No painel à esquerda da página de detalhes do cluster, selecione Workloads > StatefulSets. Confirme se o StatefulSet web está em execução. O status de execução indica que o disco ENS foi montado com sucesso.

Próximos passos