All Products
Search
Document Center

Container Compute Service:Gunakan volume NAS

Last Updated:Mar 27, 2026

Apsara File Storage NAS (NAS) adalah sistem file terdistribusi yang menyediakan akses bersama di berbagai pod. Gunakan volume persisten NAS ketika aplikasi Anda memerlukan penyimpanan bersama berkinerja tinggi dan persisten—misalnya, ketika beberapa pod harus membaca dan menulis data yang sama secara bersamaan.

Tersedia tiga pendekatan penyediaan:

Approach When to use
Static provisioning Anda sudah memiliki sistem file NAS dan ingin mereferensikannya langsung melalui anotasi PVC.
Dynamic provisioning Anda belum memiliki sistem file NAS. StorageClass mendefinisikan konfigurasi dan sistem akan membuat sistem file tersebut secara otomatis saat PVC dibuat.
Inline NFS volume Anda ingin memasang sistem file NAS langsung dalam spesifikasi pod, tanpa PVC atau PV. Lebih sederhana dikonfigurasi karena tidak perlu mengelola PVC dan PV.

Untuk sebagian besar kasus penggunaan, penyediaan statis atau dinamis direkomendasikan karena memisahkan konfigurasi penyimpanan dari penerapan aplikasi.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Komponen managed-csiprovisioner telah dipasang di kluster ACS Anda. Untuk memeriksa, buka halaman manajemen kluster Anda di ACS console, lalu pilih Operations > Add-ons dan cari managed-csiprovisioner pada tab Storage.

Batasan

Limitation Details
Protocol Hanya NFSv3 yang didukung. Pemasangan protokol SMB tidak didukung.
Network scope Sistem file NAS hanya dapat dipasang ke pod dalam VPC yang sama. Pemasangan lintas-VPC tidak didukung. Jika Anda memerlukan akses lintas-zona dalam VPC yang sama, pemasangan lintas-zona didukung.

Catatan penggunaan

  • Penulisan bersama memerlukan sinkronisasi di tingkat aplikasi. NAS menyediakan penyimpanan bersama—satu volume NAS dapat dipasang ke beberapa pod secara bersamaan. Jika beberapa pod menulis ke data yang sama pada waktu yang sama, aplikasi Anda harus menangani sinkronisasi data.

  • Jangan mengatur `securityContext.fsgroup`. Direktori root / dari sistem file NAS tidak mendukung perubahan izin, Pemilik, atau kelompok. Mengatur fsgroup dalam spesifikasi pod menyebabkan proses pemasangan gagal.

  • Jangan hapus titik pemasangan saat sedang digunakan. Menghapus titik pemasangan aktif dapat menyebabkan sistem operasi node berhenti merespons.

Gunakan sistem file NAS yang ada sebagai volume persisten

Gunakan penyediaan statis ketika Anda sudah memiliki sistem file NAS. Sistem akan membuat volume persisten statis (PV) berdasarkan alamat titik pemasangan dalam anotasi PVC dan mengikat PVC tersebut secara otomatis.

Langkah 1: Dapatkan informasi sistem file NAS

  1. Dapatkan ID VPC dan ID vSwitch yang digunakan oleh pod ACS Anda. Jalankan perintah berikut untuk membaca ConfigMap acs-profile:

    1. Masuk ke ACS console.

    2. Pada halaman Clusters, klik nama kluster.

    3. Di panel navigasi kiri, pilih Configurations > ConfigMaps.

    4. Atur namespace ke kube-system, temukan acs-profile, lalu klik Edit YAML.

    5. Salin nilai vpcId dan vSwitchIds.

    kubectl get cm -n kube-system acs-profile -o yaml

    Temukan bidang vpcId dan vSwitchIds dalam output. Atau, dapatkan nilai-nilai ini dari ACS console:

  2. Verifikasi bahwa sistem file NAS Anda kompatibel dan dapatkan alamat titik pemasangannya.

    1. Masuk ke NAS console dan klik File System List.

    2. Temukan sistem file NAS Anda dan konfirmasi hal berikut: nas

      • Sistem file NAS berada di wilayah yang sama dengan kluster ACS. Sistem file NAS tidak dapat dipasang lintas wilayah atau lintas VPC.

      • Sistem file NAS menggunakan protokol NFS. SMB tidak didukung.

      • Untuk kinerja terbaik, sistem file NAS berada di zona yang sama dengan pod Anda. Dalam VPC yang sama, pemasangan lintas-zona didukung.

    3. Dapatkan alamat titik pemasangan:

      1. Klik ID sistem file untuk membuka halaman detail sistem file.

      2. Di panel navigasi kiri, klik Mount Targets.

      3. Konfirmasi bahwa titik pemasangan memenuhi persyaratan berikut, lalu salin alamatnya: > Note: Sistem file NAS tujuan umum memiliki titik pemasangan yang dibuat secara otomatis. Untuk sistem file NAS Ekstrem, Anda harus membuat titik pemasangan secara manual. Jika tidak ada titik pemasangan yang sesuai, lihat Manage mount targets. NAS挂载点.png

        • Titik pemasangan berada di VPC yang sama dengan pod Anda. Jika VPC berbeda, pemasangan akan gagal.

        • Untuk kinerja terbaik, vSwitch titik pemasangan sesuai dengan vSwitch yang digunakan oleh pod Anda.

        • Status titik pemasangan adalah Available.

Langkah 2: Buat PVC

kubectl

  1. Simpan konten berikut sebagai nas-pvc.yaml. Ganti *****-mw*.cn-shanghai.nas.aliyuncs.com dengan alamat titik pemasangan aktual Anda.

    Penting

    Saat Anda menerapkan PVC ini, sistem pertama-tama akan membuat PV statis berdasarkan konfigurasi NAS dalam annotations, lalu membuat PVC dan mengikatnya ke PV tersebut.

    Parameter Description
    csi.alibabacloud.com/mountpoint Direktori NAS yang akan dipasang. Masukkan alamat titik pemasangan (misalnya, **-.region.nas.aliyuncs.com`) untuk memasang direktori root (`/`). Tambahkan jalur subdirektori (misalnya, `-**.region.nas.aliyuncs.com:/dir) untuk memasang subdirektori tertentu. Subdirektori akan dibuat secara otomatis jika belum ada.
    csi.alibabacloud.com/mount-options Opsi pemasangan. Gunakan nolock,tcp,noresvport.
    accessModes Mode akses. ReadWriteMany memungkinkan beberapa pod membaca dan menulis secara bersamaan.
    storage Kapasitas penyimpanan yang dialokasikan ke pod.
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc
      annotations:
        csi.alibabacloud.com/mountpoint: *******-mw***.cn-shanghai.nas.aliyuncs.com
        csi.alibabacloud.com/mount-options: nolock,tcp,noresvport
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 20Gi
      storageClassName: alibaba-cloud-nas

    Parameter utama:

  2. Buat PVC:

    kubectl create -f nas-pvc.yaml
  3. Verifikasi PV telah dibuat:

    kubectl get pvc

    Output yang diharapkan:

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS        REASON   AGE
    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            Retain           Bound    default/nas-pvc   alibaba-cloud-nas            1m58s
  4. Verifikasi PVC terikat ke PV:

    kubectl get pvc

    Output yang diharapkan:

    NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS        VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc   Bound    nas-ea7a0b6a-bec2-4e56-b767-47222d3a****   20Gi       RWX            alibaba-cloud-nas   <unset>                2m14s

Console

  1. Masuk ke ACS console.

  2. Pada halaman Clusters, klik nama kluster.

  3. Di panel navigasi kiri, pilih Volumes > Persistent Volume Claims.

  4. Klik Create.

  5. Konfigurasikan parameter berikut, lalu klik Create. Setelah PVC dibuat, PVC tersebut akan muncul di halaman Persistent Volume Claims dengan status Bound, terhubung ke PV yang dibuat secara otomatis.

    Parameter Description Example
    PVC Type Pilih NAS. NAS
    Name Nama untuk PVC. nas-pvc
    Allocation Mode Pilih Use Mount Target Domain Name. Create with Mount Target Domain Name
    Volume Plug-in CSI dipilih secara default. CSI
    Capacity Kapasitas penyimpanan yang dialokasikan ke pod. 20 GiB
    Access Mode ReadWriteMany atau ReadWriteOnce. ReadWriteMany
    Mount Target Domain Name Direktori NAS yang akan dipasang. Masukkan alamat titik pemasangan untuk memasang direktori root (/), atau tambahkan jalur subdirektori (misalnya, **-**.region.nas.aliyuncs.com:/dir) untuk memasang subdirektori. Subdirektori akan dibuat secara otomatis jika belum ada. 350514**-mw*.cn-shanghai.nas.aliyuncs.com

    nas-pvc.png

    nas-pv.png

Langkah 3: Buat deployment dan pasang volume NAS

kubectl

  1. Simpan konten berikut sebagai nas-test.yaml. Deployment ini membuat dua pod, keduanya memasang PVC nas-pvc ke /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc
  2. Buat deployment:

    kubectl create -f nas-test.yaml
  3. Verifikasi kedua pod berjalan:

    kubectl get pod | grep nas-test

    Output yang diharapkan:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifikasi sistem file NAS telah dipasang:

    kubectl exec nas-test-****-***a -- df -h /data

    Output yang diharapkan:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

Console

  1. Di panel navigasi kiri halaman manajemen kluster, pilih Workloads > Deployments.

  2. Klik Create from Image.

  3. Konfigurasikan parameter utama berikut, lalu klik Create. Untuk parameter lainnya, gunakan nilai default. Untuk informasi lebih lanjut, lihat Create a stateless application using a deployment.

    Configuration page Parameter Description Example
    Basic Information Name Nama untuk deployment. nas-test
    Basic Information Replicas Jumlah replika pod. 2
    Container Image Name Alamat image kontainer. registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
    Container Required Resources Sumber daya vCPU dan memori. 0.25 vCPU, 0.5 GiB
    Volume Klik Add PVC. Atur Mount Source ke PVC yang telah Anda buat dan Container Path ke jalur pemasangan. Mount Source: nas-pvc; Container Path: /data
  4. Verifikasi deployment:

    1. Pada halaman Deployments, klik nama deployment.

    2. Pada tab Pods, pastikan semua pod menunjukkan status Running.

Buat sistem file NAS baru sebagai volume persisten

Gunakan penyediaan dinamis ketika Anda belum memiliki sistem file NAS yang ada. StorageClass mendefinisikan konfigurasi sistem file, dan sistem akan membuatnya secara otomatis saat klaim volume persisten (PVC) dibuat.

Penting

Jenis sistem file NAS, kelas penyimpanan, dan dukungan protokol bervariasi berdasarkan wilayah dan zona. Sebelum mengonfigurasi StorageClass, periksa wilayah dan zona yang didukung untuk jenis NAS yang Anda pilih:

Langkah 1: Buat StorageClass

  1. Simpan konten berikut sebagai nas-sc.yaml, ganti nilai placeholder dengan nilai untuk kluster ACS Anda. Untuk mendapatkan ID VPC dan ID vSwitch, jalankan:

    Parameter Required Description
    volumeAs Required Harus filesystem. Setiap volume NAS berkorespondensi dengan satu sistem file NAS.
    fileSystemType Required standard (default) untuk NAS tujuan umum, atau extreme untuk NAS Ekstrem.
    storageType Required Kelas penyimpanan dalam jenis sistem file. NAS tujuan umum: Performance (default, komputasi-teroptimalkan) atau Capacity (penyimpanan-teroptimalkan). NAS Ekstrem: standard (default, medium) atau advanced.
    regionId Required Wilayah sistem file NAS. Harus sesuai dengan wilayah kluster ACS Anda.
    zoneId Required Zona sistem file NAS. Pilih zona berdasarkan vSwitch yang digunakan oleh pod Anda. Pemasangan lintas-zona dalam VPC yang sama didukung, tetapi menggunakan zona yang sama memberikan kinerja lebih baik.
    vpcId, vSwitchId Required ID VPC dan vSwitch untuk titik pemasangan NAS. Harus sesuai dengan VPC dan vSwitch yang digunakan oleh pod Anda.
    accessGroupName Optional Kelompok izin untuk titik pemasangan. Default-nya adalah DEFAULT_VPC_GROUP_NAME.
    provisioner Required Harus nasplugin.csi.alibabacloud.com.
    reclaimPolicy Required Hanya Retain yang didukung. Saat PV dihapus, sistem file NAS dan titik pemasangan tetap dipertahankan.
    kubectl get cm -n kube-system acs-profile -o yaml
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-fs
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-shanghai
      zoneId: cn-shanghai-e
      vpcId: "vpc-2ze2fxn6popm8c2mzm****"
      vSwitchId: "vsw-2zwdg25a2b4y5juy****"
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    Parameter utama:

  2. Buat StorageClass:

    kubectl create -f nas-sc.yaml
  3. Verifikasi StorageClass telah dibuat:

    kubectl get sc

    Output yang diharapkan:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-nas-fs                  nasplugin.csi.alibabacloud.com    Retain          Immediate              false                  13m
    ......

Langkah 2: Buat PVC

  1. Simpan konten berikut sebagai nas-pvc-fs.yaml.

    Parameter Description
    accessModes Mode akses.
    storageClassName Harus sesuai dengan nama StorageClass yang telah Anda buat.
    storage Kapasitas penyimpanan untuk volume NAS. Untuk sistem file NAS Ekstrem, nilai minimum adalah 100 GiB. Mengatur nilai lebih kecil mencegah pembuatan PV.
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc-fs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-fs
      resources:
        requests:
          storage: 20Gi

    Bidang utama:

  2. Buat PVC:

    kubectl create -f nas-pvc-fs.yaml
  3. Verifikasi PVC terikat:

    kubectl get pvc

    Output yang diharapkan:

    NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc-fs   Bound    nas-04a730ba-010d-4fb1-9043-476d8c38****   20Gi       RWX            alicloud-nas-fs   <unset>                14s

    PVC terikat ke PV yang disediakan secara otomatis. Sistem file NAS yang sesuai terlihat di NAS console.

Langkah 3: Buat deployment dan pasang volume NAS

  1. Simpan konten berikut sebagai nas-test-fs.yaml. Deployment ini membuat dua pod, keduanya memasang PVC nas-pvc-fs ke /data.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: nfs-nas
                mountPath: /data
          volumes:
          - name: nfs-nas
            nfs:
              server: file-system-id.region.nas.aliyuncs.com    # Alamat target pemasangan. Contoh: 7bexxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com
              path: /    # Jalur direktori dalam sistem file NAS. Direktori tersebut harus merupakan direktori yang sudah ada atau direktori root. Direktori root untuk sistem file NAS tujuan umum adalah "/". Direktori root untuk sistem file NAS Ekstrem adalah "/share".
  2. Buat deployment:

    kubectl create -f nas-test-fs.yaml
  3. Verifikasi kedua pod berjalan:

    kubectl get pod | grep nas-test

    Output yang diharapkan:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifikasi sistem file NAS telah dipasang:

    kubectl exec nas-test-****-***a -- df -h /data

    Output yang diharapkan:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

Pasang sistem file NAS yang ada menggunakan volume NFS

Gunakan volume NFS inline ketika Anda ingin memasang sistem file NAS langsung dalam spesifikasi pod, tanpa membuat PVC atau PV. Pendekatan ini memerlukan lebih sedikit sumber daya untuk dikonfigurasi.

Langkah 1: Dapatkan alamat titik pemasangan NAS

Ikuti langkah-langkah dalam Langkah 1: Dapatkan informasi sistem file NAS untuk mendapatkan alamat titik pemasangan.

Langkah 2: Buat deployment

  1. Simpan konten berikut sebagai nas-test-nfs.yaml, ganti nilai server dengan alamat titik pemasangan aktual Anda. Deployment ini membuat dua pod, keduanya memasang sistem file NAS ke /data menggunakan volume NFS inline.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: nfs-nas
                mountPath: /data
          volumes:
          - name: nfs-nas
            nfs:
              server: file-system-id.region.nas.aliyuncs.com    # Alamat titik pemasangan. Contoh: 7bexxxxxx-xxxx.ap-southeast-1.nas.aliyuncs.com
              path: /    # Jalur direktori dalam sistem file NAS. Direktori harus merupakan direktori yang sudah ada atau direktori root. Direktori root untuk sistem file NAS tujuan umum adalah "/". Direktori root untuk sistem file NAS Ekstrem adalah "/share".
  2. Buat deployment:

    kubectl create -f nas-test-nfs.yaml
  3. Verifikasi kedua pod berjalan:

    kubectl get pod | grep nas-test

    Output yang diharapkan:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. Verifikasi sistem file NAS telah dipasang:

    kubectl exec nas-test-****-***a -- df -h /data

    Output yang diharapkan:

    Filesystem                                        Size  Used Avail Use% Mounted on
    350514*****-mw***.cn-shanghai.nas.aliyuncs.com:/   10P     0   10P   0% /data

Verifikasi penyimpanan bersama dan persistensi data

Deployment dalam contoh di atas membuat dua pod yang berbagi sistem file NAS yang sama. Gunakan langkah-langkah berikut untuk memastikan bahwa penyimpanan bersama dan persistensi data berfungsi dengan benar.

Verifikasi penyimpanan bersama

  1. Dapatkan nama pod:

    kubectl get pod | grep nas-test

    Contoh output:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  2. Buat file dari salah satu pod:

    test.txt
  3. Baca file dari pod lainnya:

    kubectl exec nas-test-****-***b -- ls /data

    Output yang diharapkan:

    test.txt

    test.txt terlihat dari kedua pod, mengonfirmasi bahwa penyimpanan bersama berfungsi.

Verifikasi persistensi data

  1. Restart deployment untuk membuat pod baru:

    kubectl rollout restart deploy nas-test
  2. Tunggu hingga pod baru siap:

    kubectl get pod | grep nas-test

    Contoh output:

    nas-test-****-***c   1/1     Running   0          67s
    nas-test-****-***d   1/1     Running   0          49s
  3. Baca file dari pod baru:

    kubectl exec nas-test-****-***c -- ls /data

    Output yang diharapkan:

    test.txt

    test.txt masih ada setelah pod diganti, mengonfirmasi bahwa sistem file NAS mempertahankan data meskipun pod direstart.