All Products
Search
Document Center

Container Service for Kubernetes:Gunakan Volume Persisten Statis CPFS for Lingjun

Last Updated:Mar 08, 2026

CPFS for Lingjun menyediakan throughput dan IOPS tinggi. Layanan ini mendukung akselerasi jaringan RDMA end-to-end dan ideal untuk skenario komputasi cerdas seperti AIGC dan kendaraan otonom. ACK memungkinkan Anda memasang sistem file CPFS for Lingjun sebagai volume persisten statis (PV) untuk workload Anda.

Penting

CPFS for Lingjun saat ini berada dalam pratinjau undangan. Layanan ini hanya tersedia di wilayah dan zona tertentu. Untuk menggunakannya, hubungi account manager Anda untuk meminta akses.

Function Introduction

Dengan menggunakan add-on CSI, ACK memasang volume persisten statis CPFS for Lingjun ke workload melalui PV dan PVC. Add-on CSI secara otomatis memilih metode pemasangan optimal berdasarkan tipe node tempat pod dijadwalkan:

  • Pemasangan VSC: Hanya didukung pada Node Lingjun. Anda harus mengajukan tiket ke produk CPFS dan produk Lingjun untuk mengaktifkan daftar putih.submit a ticket.

  • Pemasangan VPC: Didukung pada node non-Lingjun. Buat Titik pemasangan VPC untuk mengaktifkan pemasangan. Semua node dalam VPC yang sama dapat memasang dan mengakses sistem file tersebut.

Prerequisites

  • Tinjau Batasan untuk CPFS for Lingjun.

  • Kluster Anda memenuhi kondisi berikut:

    • Versi kluster: 1.26 atau lebih baru. Untuk meningkatkan kluster Anda, lihat Manually upgrade a cluster.

    • Sistem operasi node: Alibaba Cloud Linux 3.

    • Anda telah menginstal komponen penyimpanan berikut pada versi yang diperlukan.

      Buka halaman Add-ons untuk memeriksa versi, menginstal, atau meningkatkan komponen.
      • Add-on CSI (csi-plugin dan csi-provisioner): v1.33.1 atau lebih baru. Untuk meningkatkan, lihat Manage CSI add-ons.

      • cnfs-nas-daemon add-on: 0.1.2 atau lebih baru.

        Perluas untuk melihat detail tentang cnfs-nas-daemon

        Add-on cnfs-nas-daemon mengelola proses EFC. Add-on ini mengonsumsi sumber daya signifikan dan secara langsung memengaruhi kinerja penyimpanan. Sesuaikan konfigurasi sumber dayanya di halaman Add-ons. Gunakan rekomendasi berikut:

        • CPU: Permintaan CPU meningkat seiring total bandwidth node. Alokasikan 0,5 core per 1 Gb/s bandwidth, ditambah 1 core tambahan untuk manajemen metadata. Sesuaikan pengaturan CPU menggunakan aturan ini.

          Contohnya, untuk node dengan NIC 100 Gb/s, atur permintaan CPU menjadi 100 * 0,5 + 1 = 51 core.
        • Memori: CPFS for Lingjun menggunakan FUSE. Caching baca/tulis data dan metadata file mengonsumsi memori. Atur permintaan memori menjadi 15% dari total memori node.

        Setelah menyesuaikan konfigurasi, sesuaikan sumber daya ke atas atau ke bawah secara dinamis berdasarkan workload aktual.

        Penting
        • Perilaku pembaruan: DaemonSet cnfs-nas-daemon menggunakan strategi pembaruan OnDelete secara default. Setelah mengubah pengaturan CPU atau memori di halaman Add-ons, hapus secara manual pod cnfs-nas-daemon yang ada di setiap node untuk memicu pembuatan ulang dan menerapkan pengaturan baru.

          Lakukan operasi ini selama jam sepi untuk memastikan stabilitas bisnis.

        • Risiko: Menghapus atau me-restart pod cnfs-nas-daemon akan mengganggu pemasangan CPFS sementara di node tersebut.

          • Node tanpa dukungan hot upgrade: Hal ini menyebabkan interupsi perangkat keras. Pod aplikasi gagal dan memerlukan penghapusan manual. Setelah dihapus, pod aplikasi akan restart dan pulih secara otomatis.

          • Node dengan dukungan hot upgrade: Pod aplikasi pulih secara otomatis setelah pod cnfs-nas-daemon di-restart.

          ① Node mendukung hot upgrade jika memenuhi semua kondisi berikut:

          • Versi kernel adalah 5.10.134-18 atau lebih baru.

          • Versi bmcpfs-csi-controller dan bmcpfs-csi-plugin adalah 1.35.1 atau lebih baru.

          • Versi cnfs-nas-daemon adalah 0.1.9-compatible.1 atau versi yang lebih baru.

      • Add-on bmcpfs-csi: Terdiri dari bmcpfs-csi-controller (komponen control-plane yang dikelola oleh ACK) dan bmcpfs-csi-node (komponen sisi node yang diterapkan sebagai DaemonSet di kluster).

Important Notes

  • Saat menggunakan pemasangan VSC, node yang menjalankan pod harus berada di hpn-zone yang sama dengan instans sistem file CPFS for Lingjun.

  • Node Lingjun harus dikaitkan dengan sistem file CPFS for Lingjun selama inisialisasi. Jika tidak, pemasangan CSI akan gagal.

  • Sebelum mengambil offline Node Lingjun karena kegagalan, drain semua pod darinya. Melewatkan langkah ini menyebabkan metadata kluster tidak konsisten dan meninggalkan sumber daya pod yang tidak dapat dipulihkan.

  • Anda tidak dapat memasang subdirektori berbeda dari instans CPFS yang sama ke satu pod menggunakan beberapa PV. Karena keterbatasan driver, konfigurasi ini menyebabkan pemasangan pod gagal dan mencegah pod dimulai.

    Sebagai gantinya, buat satu PV/PVC untuk instans CPFS. Lalu gunakan konfigurasi volumeMounts dalam spesifikasi pod Anda dan atur bidang subPath untuk memasang subdirektori yang diperlukan.

    subPath menggunakan mekanisme bind mount ringan. Mekanisme ini tidak menambahkan beban kinerja.

Step 1: Create a CPFS File System

  1. Buat sistem file CPFS for Lingjun. Lihat Create a CPFS for Lingjun File System. Catat ID sistem file tersebut.

  2. (Opsional) Jika Anda ingin memasang pada node non-Lingjun, buat Titik pemasangan VPC create a VPC mount target (dalam VPC yang sama dengan node kluster Anda), dan catat Nama domain titik pemasangan tersebut. Formatnya adalah cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com.

    Jika pod dijadwalkan ke Node Lingjun, pemasangan VSC digunakan secara default. Lewati langkah ini.

Step 2: Create a PV and a PVC

  1. Buat PV dan PVC untuk sistem file CPFS yang sudah ada.

    1. Modifikasi contoh YAML di bawah ini dan simpan sebagai bmcpfs-pv-pvc.yaml.

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: bmcpfs
      spec:
        accessModes:
        - ReadWriteMany
        capacity:
          storage: 10Ti
        claimRef:
          name: bmcpfs
          namespace: default
        csi:
          driver: bmcpfsplugin.csi.alibabacloud.com
          volumeAttributes:
             # Required if pods schedule to non-Lingjun nodes or cross-zone automatic VPC switching is enabled. Mounting fails otherwise.
            vpcMountTarget: cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com
            # If pods schedule to nodes in a different zone than the bmcpfs file system, use the vpcMountTarget to access CPFS.
            mountpointAutoSwitch: "true"
          # Replace volumeHandle with your CPFS for Lingjun file system ID.
          volumeHandle: bmcpfs-*****
        mountOptions: []
      
      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: bmcpfs
        namespace: default
      spec:
        accessModes:
        - ReadWriteMany
        resources:
          requests:
            storage: 10Ti
        volumeMode: Filesystem
        volumeName: bmcpfs
      • Parameter PV

        Parameter

        Description

        accessModes

        Mode akses untuk PV.

        capacity.storage

        Kapasitas penyimpanan yang dideklarasikan. Deklarasi ini tidak memengaruhi kapasitas aktual.

        csi.driver

        Tipe driver. Untuk CPFS for Lingjun, gunakan bmcpfsplugin.csi.alibabacloud.com.

        csi.volumeAttributes.vpcMountTarget

        Nama domain Titik pemasangan VPC untuk CPFS. Meninggalkan ini kosong menyebabkan pemasangan gagal pada node non-Lingjun.

        Jangan atur ini jika pod dijadwalkan ke Node Lingjun.

        csi.volumeAttributes.mountpointAutoSwitch

        Izinkan bmcpfs untuk beralih secara otomatis antara titik pemasangan VSC default dan titik pemasangan VPC yang ditentukan.

        Gunakan bersama csi.volumeAttributes.vpcMountTarget.

        csi.volumeHandle

        ID sistem file CPFS.

        mountOptions

        Opsi pemasangan.

      • Parameter PVC

        Parameter

        Description

        accessModes

        Mode akses yang diminta oleh PVC. Harus sesuai dengan PV.

        resources.requests.storage

        Kapasitas penyimpanan yang dialokasikan ke pod. Tidak boleh melebihi kapasitas PV.

        volumeMode

        Mode pemasangan. Atur ke Filesystem.

        volumeName

        Nama PV yang akan di-bind ke PVC ini.

    2. Buat PV dan PVC.

      kubectl apply -f bmcpfs-pv-pvc.yaml
  2. Konfirmasi bahwa PVC terikat ke PV.

    kubectl get pvc bmcpfs

    Output yang diharapkan:

    NAME     STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    bmcpfs   Bound    bmcpfs   10Ti       RWX                           <unset>                 51s

    Nilai STATUS adalah Bound. Pengikatan berhasil.

Step 3: Deploy an Application and Mount CPFS

Scenario 1: Mount the Entire CPFS File System

Skenario ini memasang seluruh sistem file CPFS ke dalam kontainer.

  1. Buat file bernama cpfs-test.yaml menggunakan YAML di bawah ini. File ini mendeklarasikan deployment yang memasang volume persisten statis CPFS for Lingjun.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cpfs-test
      labels:
        app: cpfs-test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: cpfs-test
      template:
        metadata:
          labels:
            app: cpfs-test
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-cpfs
                mountPath: /data
          volumes:
            - name: pvc-cpfs
              persistentVolumeClaim:
                claimName: bmcpfs
  2. Buat deployment tersebut.

    kubectl create -f cpfs-test.yaml
  3. Periksa status deployment pod.

    kubectl get pod -l app=cpfs-test

    Output yang diharapkan:

    NAME                         READY   STATUS    RESTARTS   AGE
    cpfs-test-76b77d64b5-2hw96   1/1     Running   0          42s
    cpfs-test-76b77d64b5-dnwdx   1/1     Running   0          42s
  4. Masuk ke salah satu pod dan verifikasi bahwa volume persisten statis CPFS for Lingjun berhasil dipasang.

    kubectl exec -it <pod-name> -- mount | grep /data

    Output yang diharapkan menunjukkan pemasangan berhasil:

    bindroot-f0a5c-******:cpfs-*******-vpc-****.cn-shanghai.cpfs.aliyuncs.com:/ on /data type fuse.aliyun-alinas-efc (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=1048576)

Scenario 2: Mount a Subdirectory of the CPFS File System

Dalam skenario penyimpanan bersama—seperti pengaturan multi-penyewa atau multitasking—Anda dapat memungkinkan beberapa pod aplikasi berbagi satu volume CPFS sekaligus menjaga data mereka terisolasi di direktori terpisah. Gunakan bidang volumeMounts.subPath untuk melakukan ini.

  1. Buat file bernama pod.yaml menggunakan konten di bawah ini. Pod ini menjalankan dua kontainer. Masing-masing memasang subdirektori berbeda dari PVC yang sama (bmcpfs) menggunakan subPath.

    Jika direktori subPath (misalnya, workspace/alpha) belum ada di sistem file CPFS, sistem akan membuatnya secara otomatis.
    apiVersion: v1
    kind: Pod
    metadata:
      name: cpfs-subpath-demo-pod
    spec:
      containers:
        - name: task-alpha-container
          image: busybox:1.35
          command: ["/bin/sh", "-c", "sleep 3600"]
          volumeMounts:
            - name: cpfs-storage
              mountPath: /data/workspace # Jalur pemasangan di dalam kontainer
              subPath: workspace/alpha   # Pasang subdirektori workspace/alpha—bukan volume penuh
    
        - name: task-beta-container
          image: busybox:1.35
          command: ["/bin/sh", "-c", "sleep 3600"]
          volumeMounts:
            - name: cpfs-storage
              mountPath: /data/workspace # Jalur pemasangan bisa identik
              subPath: workspace/beta    # Pasang subdirektori workspace/beta—bukan volume penuh
      volumes:
        - name: cpfs-storage
          persistentVolumeClaim:
            claimName: bmcpfs # Referensi PVC yang dibuat sebelumnya
  2. Terapkan pod tersebut.

    kubectl apply -f pod.yaml
  3. Verifikasi pemasangan dan akses tulis untuk kontainer task-alpha.

    1. Sambungkan ke kontainer task-alpha.

      kubectl exec -it cpfs-subpath-demo-pod -c task-alpha-container -- /bin/sh
    2. Periksa sistem file yang dipasang untuk memastikan volume CPFS hadir.

      df -h

      Output yang diharapkan mengonfirmasi direktori bersama (/share) dipasang di /data/workspace di dalam kontainer:

      Filesystem                Size      Used Available Use% Mounted on
      ...
      192.XX.XX.0:/share          10.0T     1.0G     10.0T   0% /data/workspace
      ...
    3. Periksa struktur direktori induk dari titik pemasangan.

      ls -l /data/

      Output yang diharapkan menunjukkan subdirektori workspace ada di bawah /data:

      total 4
      drwxr-xr-x    2 root     root          4096 Aug 15 10:00 workspace
    4. Buat file di direktori yang dipasang untuk menguji akses tulis.

      echo "hello from alpha" > /data/workspace/alpha.log
      exit
  4. Verifikasi pemasangan dan isolasi data untuk kontainer task-beta.

    1. Sambungkan ke kontainer task-beta.

      kubectl exec -it cpfs-subpath-demo-pod -c task-beta-container -- /bin/sh
    2. Buat file di titik pemasangan kontainer (/data/workspace).

      echo "hello from beta" > /data/workspace/beta.log
    3. Daftar file di /data/workspace/.

      ls -l /data/workspace/

      Output yang diharapkan menunjukkan beta.log berhasil ditulis dan alpha.log tidak ada. Data terisolasi antar kontainer:

      total 4
      -rw-r--r--    1 root     root            16 Aug 15 10:05 beta.log