全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan CNFS untuk memperluas volume NAS secara otomatis

更新时间:Jul 06, 2025

Anda dapat menentukan kebijakan perluasan otomatis untuk volume File Storage NAS (NAS) yang dikelola oleh Container Network File System (CNFS). Hal ini memungkinkan volume NAS diperluas secara otomatis ketika penggunaan penyimpanan melebihi ambang batas. Topik ini menjelaskan cara menggunakan CNFS untuk memperluas volume NAS secara otomatis.

Prasyarat

  • Kluster harus dapat menggunakan CNFS untuk mengelola sistem file NAS. Untuk informasi lebih lanjut, lihat Gunakan CNFS untuk Mengelola Sistem File NAS (Disarankan).

  • Kluster menggunakan Plugin CSI, dan komponen terkait penyimpanan harus memenuhi persyaratan berikut:

    • Versi csi-plugin dan csi-provisioner adalah 1.20.5-ff6490f-aliyun atau yang lebih baru. Untuk informasi lebih lanjut tentang cara memperbarui csi-plugin dan csi-provisioner, lihat Perbarui csi-plugin dan csi-provisioner.

    • Default dnsPolicy dari csi-plugin adalah ClusterFirst. Jika Anda ingin menggunakan CNFS untuk memperluas volume NAS secara otomatis, Anda harus mengubah default dnsPolicy dari ClusterFirst menjadi ClusterFirstWithHostNet.

    • Versi storage-operator adalah 1.18.8.56-2aa33ba-aliyun atau yang lebih baru. Untuk informasi lebih lanjut, lihat storage-operator.

Langkah 1: Konfigurasikan komponen storage-operator dan aktifkan perluasan otomatis

Komponen storage-operator memiliki fitur storage-auto-expander yang bertanggung jawab untuk memperluas sumber daya penyimpanan secara otomatis. Hubungkan ke kluster dan jalankan perintah berikut untuk memodifikasi file ConfigMap dari storage-operator serta mengaktifkan fitur perluasan otomatis:

kubectl patch configmap/storage-operator \
  -n kube-system \
  --type merge \
  -p '{"data":{"storage-auto-expander":"{\"imageRep\":\"acs/storage-auto-expander\",\"imageTag\":\"\",\"install\":\"true\",\"template\":\"/acs/templates/storage-auto-expander/install.yaml\",\"type\":\"deployment\"}"}}'

Langkah 2: Konfigurasikan kebijakan perluasan otomatis

  1. Periksa status objek CNFS. Pastikan bahwa objek CNFS berada dalam status Available.

    1. Kueri objek CNFS.

      kubectl get cnfs

      Output yang Diharapkan:

      NAME                                      AGE
      default-cnfs-nas-837d6ea-20210819155623   14d
    2. Periksa status objek CNFS.

      kubectl get cnfs <Objek CNFS yang dikueri pada langkah sebelumnya> -o yaml | grep Available

      Output yang Diharapkan:

      status: Available
  2. Gunakan template YAML berikut untuk membuat kebijakan perluasan otomatis untuk volume NAS.

    cat << EOF | kubectl apply -f -
    apiVersion: storage.alibabacloud.com/v1alpha1
    kind: StorageAutoScalerPolicy
    metadata:
      name: hybrid-expand-policy
    spec:
      pvcSelector:
        matchLabels:
          app: nginx      # Anda harus menentukan label yang ditambahkan ke persistent volume claim (PVC) dan Deployment tempat volume NAS dipasang. Dalam contoh ini, app: nginx ditentukan.
      namespaces:
        - default
        - nginx
      conditions:
        - name: condition1
          key: volume-capacity-used-percentage
          operator: Gt
          values:
            - "80"
      actions:
        - name: action1
          type: volume-expand
          params:
            scale: 100%
            limits: 500Gi
    EOF

    Parameter

    Deskripsi

    pvcSelector

    Label yang digunakan untuk mencocokkan kebijakan perluasan dengan PVC yang digunakan untuk memasang volume NAS. Dalam contoh ini, nginx digunakan.

    namespaces

    Namespace dari PVC yang digunakan untuk memasang volume NAS. Jika beberapa namespace ditentukan, operator logis antara namespace adalah OR. Nilai default: default. Dalam contoh ini, default dan nginx ditentukan.

    conditions

    Kondisi yang memicu tindakan. Operator logis antara beberapa conditions adalah AND. Setiap condition mencakup parameter berikut:

    • key: jenis metrik.

    • volume-capacity-used-percentage: menentukan bahwa ambang batas penggunaan penyimpanan dinyatakan dalam persentase.

    • operator: operator, yang bisa berupa Gt (lebih besar dari), Lt (kurang dari), Eq (sama dengan), atau Ne (tidak sama dengan). Nilai parameter tidak peka huruf besar-kecil.

    • values: nilai ambang batas.

    Dalam contoh, kondisi menentukan bahwa action dipicu ketika penggunaan penyimpanan PVC melebihi 80%.

    actions

    Tindakan yang dilakukan ketika conditions sebelumnya terpenuhi. Beberapa tindakan diperbolehkan. Setiap tindakan mencakup parameter berikut:

    • type: jenis tindakan. Hanya volume-expand yang didukung.

    • scale: ukuran penyimpanan yang ingin Anda tambahkan ke volume. Unit valid: GiB dan persentase (%).

    • limits: kapasitas maksimum PVC jika action dilakukan.

    Jika beberapa actions ditentukan di bagian actions, action pertama yang kondisinya terpenuhi akan dilakukan. actions lainnya dilewati.

    Dalam contoh ini, action1 menentukan bahwa jika kondisi terpenuhi, volume NAS diperluas sebesar 100%. Volume NAS dapat diperluas hingga maksimum 500 GiB.

  3. Gunakan template YAML berikut untuk membuat PVC dan Deployment.

    Penting

    Kebijakan perluasan otomatis diterapkan pada PVC dan Deployment dengan label tertentu. Dalam contoh ini, pvcSelector.matchLabels diatur ke app: nginx dalam kebijakan perluasan otomatis. Oleh karena itu, kebijakan ini berlaku untuk PVC dan Deployment yang parameter labels-nya diatur ke app: nginx.

    cat << EOF | kubectl apply -f -
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: cnfs-nas-pvc
      labels:
        app: nginx   # Anda harus menentukan nilai yang sama dengan parameter pvcSelector.matchLabels dalam template YAML kebijakan perluasan. Dalam contoh ini, app: nginx ditentukan.
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alibabacloud-cnfs-nas
      resources:
        requests:
          storage: 50Gi
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cnfs-nas-deployment
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx   # Anda harus menentukan nilai yang sama dengan parameter pvcSelector.matchLabels dalam template YAML kebijakan perluasan. Dalam contoh ini, app: nginx ditentukan.
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            volumeMounts:
            - mountPath: "/data"
              name: cnfs-nas-pvc
          volumes:
          - name: cnfs-nas-pvc
            persistentVolumeClaim:
              claimName: cnfs-nas-pvc
    EOF

Langkah 3: Verifikasi bahwa volume NAS dapat diperluas secara otomatis

  1. Kueri semua pod di namespace default.

    kubectl get pod

    Output yang Diharapkan:

    NAME                                                            READY   STATUS    RESTARTS   AGE
    cnfs-nas-deployment-56dbcc7fb7-wh79z   1/1      Running            0          20m
  2. Masuk ke pod aplikasi dan tulis 50 GiB data ke direktori tempat volume NAS dipasang.

    cd /data
    dd if=<jalur data> of=<jalur terpasang>
    kubectl exec -it cnfs-nas-deployment-56dbcc7fb7-wh79z -ti -- dd if=/dev/zero of=/data/test1 bs=1G count=50
  3. Periksa peristiwa terkait perluasan volume.

    kubectl get events

    Output berikut menunjukkan bahwa penggunaan penyimpanan volume NAS melebihi 80%, yang memicu perluasan volume. Volume NAS diperluas dari 50 GiB menjadi 100 GiB.

    12s         Warning   StartExpand                  persistentvolumeclaim/cnfs-nas-pvc          Mulai memperluas pvc cnfs-nas-pvc dari 50Gi menjadi 100Gi, usedCapacityPercentage:96%, freeSize:2048MB.
    12s         Normal    ExternalExpanding            persistentvolumeclaim/cnfs-nas-pvc          menunggu pengontrol eksternal untuk memperluas PVC ini
    12s         Normal    Resizing                     persistentvolumeclaim/cnfs-nas-pvc          Pengubah eksternal sedang memperluas volume nas-462db2b2-717d-44fe-b0b6-fb4db03a****
    12s         Normal    VolumeResizeSuccessful       persistentvolumeclaim/cnfs-nas-pvc          Perluasan volume berhasil
  4. Periksa informasi penggunaan volume di dasbor CSI NAS.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Operations > Prometheus Monitoring.

    3. Di halaman Prometheus Monitoring, pilih Storage Monitoring > CSI NAS.

    4. Di tab CSI NAS, pilih namespace tempat volume penyimpanan NAS berada dan PVC. Kemudian, Anda dapat melihat kapasitas volume NAS di bagian total kapasitas.

      Dalam contoh ini, atur Namespace ke default, dan PVC ke cnfs-nas-pvc. NAS存储卷容量

      Grafik di atas menunjukkan bahwa perluasan terjadi pada 10:23:30 dan volume NAS diperluas menjadi 100 GiB.