Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Use static volumes with CPFS General-purpose Edition

Última atualização: Jun 27, 2026

Este tópico explica como montar um volume do Cloud Parallel File System (CPFS) General-purpose Edition, provisionado estaticamente, em uma carga de trabalho em um cluster ACK. O CPFS foi desenvolvido para cargas de computação de alto desempenho (HPC), como treinamento de IA, direção autônoma, computação genômica e renderização de vídeo.

Pré-requisitos

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

  • csi-plugin e csi-provisioner na versão v1.22.11-abbb810e-aliyun ou posterior. Para atualizar, consulte Atualizar componentes CSI.

Limites

Limite

Detalhes

Disponibilidade por região

O CPFS General-purpose Edition está disponível apenas em regiões específicas. Consulte Regiões disponíveis.

Protocolo de montagem

Suporta apenas NFS. Não há suporte ao protocolo POSIX.

Arquitetura do nó

Apenas x86. Não há suporte a nós ContainerOS.

Rede

A montagem dos volumes ocorre apenas em clusters na mesma VPC. Não há suporte a montagem entre VPCs diferentes.

Provisionamento

Apenas provisionamento estático. Não há suporte a provisionamento dinâmico.

Configure componentes de armazenamento

O método de configuração depende da versão do seu csi-plugin.

csi-plugin 1,33 ou posterior

Instale o componente cnfs-nas-daemon e ative a FeatureGate AlinasMountProxy=true no csi-plugin. Isso permite que o componente CSI delegue a montagem ao cnfs-nas-daemon. Para mais detalhes, consulte Gerencie o componente cnfs-nas-daemon.

csi-plugin anterior à versão 1,33

  1. Aplique um ConfigMap para habilitar a montagem NFS para o CPFS General-purpose Edition.

    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: csi-plugin
      namespace: kube-system
    data:
      cpfs-nas-enable: "true"
    EOF
  2. Reinicie o csi-plugin para instalar as dependências necessárias. Essa ação não afeta os serviços em execução.

    kubectl -n kube-system rollout restart daemonset csi-plugin

    Saída esperada:

    daemonset.apps/csi-plugin restarted

Etapa 1: Crie um sistema de arquivos CPFS e um serviço de protocolo

Antes de criar um volume persistente (PV), você precisa de um sistema de arquivos CPFS, de um serviço de protocolo e do endereço de montagem desse serviço.

  1. Criar um sistema de arquivos CPFS General-purpose Edition.

    • Crie o sistema de arquivos na mesma região do seu cluster.

    • Caso já possua um sistema de arquivos, abra o console NAS, acesse File System List, clique em no sistema de arquivos e verifique sua versão na página Basic Information. A versão deve ser 2.3.0 ou posterior. Se for anterior, crie um novo sistema de arquivos.

  2. Criar um serviço de protocolo.

    • Utilize a mesma VPC e o mesmo vSwitch do seu cluster.

    • Se você já tiver um serviço de protocolo, verifique se ele está na mesma VPC do cluster. Caso contrário, crie um novo.

  3. Obtenha o endereço de montagem do serviço de protocolo. Na página Protocol Service, clique em Export Directory. Na coluna Mount Address, copie o endereço. Esse endereço combina o nome de domínio do destino de montagem com o caminho do diretório exportado, por exemplo: cpfs-****.<region-id>.cpfs.aliyuncs.com:/share.

Etapa 2: Crie um PV e um PVC

Um volume persistente (PV) representa o armazenamento CPFS provisionado. Uma solicitação de volume persistente (PVC) se vincula a esse PV para que os pods possam utilizá-lo.

  1. Crie o PV e o PVC.

    1. Salve o conteúdo a seguir como cpfs-pv-pvc.yaml.

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: cpfs-pv
        labels:
          alicloud-pvname: cpfs-pv         # Label used by the PVC selector to bind to this PV
      spec:
        accessModes:
        - ReadWriteMany                    # Allows multiple nodes to read and write simultaneously
        capacity:
          storage: 20Gi
        csi:
          driver: nasplugin.csi.alibabacloud.com
          volumeAttributes:
            mountProtocol: cpfs-nfs        # Mount over NFS protocol
            path: "/share"                 # Exported directory path; can be a subdirectory, e.g. /share/dir
            volumeAs: subpath             # Creates a subdirectory-type PV
            server: "cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com"  # Domain name from the mount address
          volumeHandle: cpfs-pv           # Must match the PV name above
        mountOptions:
        - rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
        - vers=3
      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: cpfs-pvc
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 20Gi               # Must not exceed the PV capacity
        selector:
          matchLabels:
            alicloud-pvname: cpfs-pv    # Binds to the PV with this label

      Parâmetros do PV

      Parâmetro

      Descrição

      Obrigatório

      Padrão

      labels

      Rótulo usado pelo seletor do PVC para corresponder e vincular a este PV.

      Sim

      accessModes

      Modo de acesso do PV.

      Sim

      capacity.storage

      Capacidade de armazenamento do volume.

      Sim

      csi.driver

      Tipo de driver CSI. Defina como nasplugin.csi.alibabacloud.com.

      Sim

      csi.volumeAttributes.mountProtocol

      Protocolo de montagem. Defina como cpfs-nfs para montar via NFS.

      Sim

      csi.volumeAttributes.path

      Diretório exportado do serviço de protocolo CPFS, como /share. Também pode ser um subdiretório, como /share/dir.

      Sim

      csi.volumeAttributes.volumeAs

      Tipo de PV. Defina como subpath para um PV do tipo subdiretório.

      Sim

      csi.volumeAttributes.server

      Nome de domínio obtido no endereço de montagem do serviço de protocolo CPFS.

      Sim

      csi.volumeHandle

      Identificador exclusivo do volume. Deve corresponder ao nome do PV.

      Sim

      Parâmetros do PVC

      Parâmetro

      Descrição

      Obrigatório

      Padrão

      accessModes

      Modo de acesso solicitado pelo PVC ao PV.

      Sim

      selector.matchLabels

      Seletor de rótulos usado para vincular a um PV específico.

      Sim

      resources.requests.storage

      Capacidade de armazenamento solicitada pelo pod. Não deve exceder a capacidade do PV.

      Sim

    2. Aplique o manifesto.

      kubectl apply -f cpfs-pv-pvc.yaml
  2. Verifique se o PVC está vinculado ao PV.

    kubectl get pvc cpfs-pvc

    A saída deve mostrar STATUS: Bound:

    NAME       STATUS   VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    cpfs-pvc   Bound    cpfs-pv   20Gi       RWO                           <unset>                 18m

Etapa 3: Implantar uma aplicação e verifique a montagem

  1. Crie um StatefulSet que utilize o volume CPFS.

    1. Salve o conteúdo a seguir como cpfs-test.yaml.

      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: cpfs-sts
      spec:
        selector:
          matchLabels:
            app: nginx
        serviceName: "nginx"
        replicas: 1
        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:
              - name: cpfs-pvc
                mountPath: /data
            volumes:
            - name: cpfs-pvc
              persistentVolumeClaim:
                claimName: cpfs-pvc
    2. Aplique o manifesto.

      kubectl apply -f cpfs-test.yaml
  2. Verifique se o volume CPFS está montado.

    kubectl exec cpfs-sts-0 -- mount | grep /data

    Uma montagem bem-sucedida exibe uma entrada NFS em /data com vers=3:

    cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com:/share on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,port=30000,timeo=600,retrans=2,sec=sys,mountaddr=127.0.1.255,mountvers=3,mountport=30000,mountproto=tcp,local_lock=all,addr=127.0.1.255)