All Products
Search
Document Center

Container Service for Kubernetes:Mount a statically provisioned NAS volume

Last Updated:Sep 21, 2026

Topik ini menjelaskan cara memasang volume Alibaba Cloud Network Attached Storage (NAS) ke Pod dalam kluster Container Service for Kubernetes (ACK) menggunakan penyediaan statis. Penyediaan statis memungkinkan Anda menghubungkan Pod ke sistem file NAS yang sudah ada untuk penyimpanan persisten dan bersama di beberapa Pod secara simultan.

Prasyarat

Kasus penggunaan

  • Aplikasi dengan kebutuhan I/O disk tinggi.

  • Mendukung berbagi file lintas host, misalnya sebagai server file.

Catatan

  • Saat menggunakan sistem file NAS Ekstrem, path yang dikonfigurasi untuk PersistentVolume (PV) harus menggunakan /share sebagai direktori induk. Misalnya, subdirektori sistem file NAS yang dipasang oleh Pod dapat diatur ke /share/path1.

  • NAS mendukung pemasangan simultan oleh beberapa Pod. Dalam kasus ini, beberapa Pod mungkin memodifikasi data yang sama secara bersamaan, sehingga aplikasi harus menerapkan sinkronisasi data sendiri.

    Catatan

    Direktori / dalam penyimpanan NAS tidak mendukung modifikasi izin, kepemilikan, atau kelompok.

  • Jika Anda mengonfigurasi parameter securityContext.fsgroup dalam templat aplikasi, Kubelet akan melakukan operasi chmod atau chown setelah PersistentVolume (PV) dipasang, yang meningkatkan waktu pemasangan.

    Catatan

    Jika parameter securityContext.fsgroup telah dikonfigurasi dan Anda perlu mengurangi waktu pemasangan, lihat FAQ volume NAS.

Pasang volume NAS menggunakan Konsol

Langkah 1: Buat PV

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

  2. Di halaman Cluster List, klik nama kluster tujuan atau klik Details di kolom Actions.

  3. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > Persistent Volume.

  4. Di halaman Persistent Volumes, klik Create di pojok kanan atas.

  5. Di kotak dialog Create PV, konfigurasikan parameter.

    Parameter

    Catatan

    PV Type

    Dalam contoh ini, NAS dipilih.

    Name

    Nama PersistentVolume (PV) yang akan dibuat. Nama PV harus unik dalam kluster. Dalam contoh ini, namanya adalah pv-nas.

    Capacity

    Kapasitas PersistentVolume (PV) yang akan dibuat. Perhatikan bahwa sistem file NAS itu sendiri tidak memberlakukan batasan penggunaan. Ini bukan kuota pada sistem file NAS, melainkan deklarasi kapasitas untuk PV yang sedang dibuat.

    Access Mode

    Pilih ReadWriteMany dan ReadWriteOnce. Nilai default-nya adalah ReadWriteMany.

    Mount Target Domain Name:

    Anda dapat menentukan alamat pemasangan kluster di titik pemasangan NAS menggunakan Select Mount Target atau Custom.

    Advanced Options (Optional)

    Mount Path

    Subdirektori NAS yang akan dipasang. Jika parameter ini tidak ditentukan, direktori root akan dipasang secara default.

    Jika direktori tersebut tidak ada dalam sistem file NAS, direktori tersebut akan dibuat secara otomatis lalu dipasang.
    • NAS tujuan umum: Direktori root adalah /.

    • NAS Ekstrem: Direktori root adalah /share. Saat Anda memasang subdirektori, path harus dimulai dengan /share, seperti /share/data.

    Reclaim Policy

    Retain (default): Ketika PVC dihapus, PV dan file NAS tidak dihapus. Anda harus menghapusnya secara manual.

    Mount Options

    Opsi pemasangan untuk NAS, termasuk versi protokol NFS. Secara default, volume dipasang menggunakan NFSv3. Anda dapat menentukan versi berbeda dengan opsi seperti vers=4.0. Untuk informasi tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat Protokol NFS.

    Labels

    Tambahkan label ke PersistentVolume (PV) ini.

  6. Setelah mengonfigurasi parameter, klik Create.

Langkah 2: Buat PVC

  1. Di panel navigasi kiri halaman manajemen kluster, pilih Storage > PVCs.

  2. Di halaman Persistent Volume Claims, klik Create di pojok kanan atas.

  3. Di kotak dialog Create PVC yang muncul, isi parameter.

    Parameter

    Catatan

    PVC Type

    Dalam contoh ini, NAS dipilih.

    Name

    Nama PersistentVolumeClaim (PVC) yang akan dibuat harus unik dalam kluster.

    Allocation Mode

    Pilih PersistentVolume (PV) yang sudah ada.

    Catatan

    Jika belum ada PV yang dibuat, Anda dapat mengatur Allocation Mode ke Create PV untuk mengonfigurasi parameter pembuatan PV. Untuk informasi selengkapnya, lihat Buat PV.

    Existing Volumes

    Klik Select PV, lalu di kolom Actions di sebelah kanan PV target, klik Select Node untuk memilih PV.

    Capacity

    Kapasitas PersistentVolume (PV) yang akan dibuat.

    Catatan

    Kapasitas PersistentVolumeClaim (PVC) yang akan dibuat tidak boleh melebihi kapasitas PersistentVolume (PV) yang akan dipasang.

  4. Klik Create.

    Setelah PersistentVolumeClaim (PVC) dibuat, Anda dapat melihatnya dalam daftar, dan PVC tersebut sudah terikat ke PersistentVolume (PV) yang sesuai.

Langkah 3: Buat aplikasi

  1. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

  2. Di halaman Deployments, klik Create from Image dan konfigurasikan parameter aplikasi.

    Tabel berikut menjelaskan parameter utama. Anda dapat mempertahankan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Buat workload tanpa status (Deployment).

    Kategori

    Parameter

    Deskripsi

    Basic Information

    Application Name

    Nama Deployment.

    Replicas:

    Jumlah replika untuk Deployment.

    Pengaturan ini memungkinkan Anda memverifikasi fitur penyimpanan bersama NAS.

    Container

    Image Name

    Alamat gambar aplikasi.

    Required Resources

    Sumber daya vCPU dan memori yang diperlukan.

    Volume

    Klik Add PVC dan konfigurasikan parameter.

    • Mount Source: Pilih PVC yang telah Anda buat sebelumnya.

    • Container Path: Jalur dalam container untuk memasang sistem file NAS, seperti /data.

    Saat deployment selesai, buka halaman Deployments dan klik nama aplikasi. Di tab Pods, verifikasi bahwa Pod berada dalam status Running.

Pasang volume NAS menggunakan kubectl

  1. Jalankan perintah berikut untuk membuat PV statis.

    kubectl create -f pv-nas.yaml

    Berikut adalah contoh file YAML untuk membuat PV statis.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nas
      labels:
        alicloud-pvname: pv-nas
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      csi:
        driver: nasplugin.csi.alibabacloud.com
        volumeHandle: pv-nas
        volumeAttributes:
          server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com"
          path: "/csi"
      mountOptions:
      - nolock,tcp,noresvport
      - vers=3

    Parameter

    Catatan

    name

    Nama PV.

    labels

    Tetapkan label untuk PV.

    storage

    Kapasitas yang tersedia dari NAS.

    accessModes

    Konfigurasikan mode akses.

    driver

    Jenis driver. Dalam contoh ini, nilainya adalah nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI Alibaba Cloud NAS digunakan.

    volumeHandle

    Konfigurasikan pengenal unik untuk PV. Jika beberapa PV digunakan secara simultan, nilai ini harus berbeda untuk setiap PV.

    server

    Titik pemasangan NAS.

    path

    Subdirektori pemasangan. Untuk NAS Ekstrem, /share harus digunakan sebagai direktori induk.

    vers

    Versi protokol NFS untuk memasang PersistentVolume (PV) NAS. Disarankan menggunakan v3. NAS Ekstrem hanya mendukung v3.

  2. Jalankan perintah berikut untuk membuat PVC statis.

    Buat PersistentVolumeClaim (PVC) NAS dan gunakan selector untuk memfilter PV, sehingga mengonfigurasi secara tepat pengikatan antara PVC dan PV.

    kubectl create -f pvc-nas.yaml

    Berikut adalah contoh file YAML untuk membuat PVC statis.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-nas
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi
      selector:
        matchLabels:
          alicloud-pvname: pv-nas

    Parameter

    Catatan

    name

    Nama PVC.

    accessModes

    Konfigurasikan mode akses.

    storage

    Deklarasikan penggunaan aplikasi, yang tidak boleh melebihi kapasitas total PersistentVolume (PV).

    matchLabels

    Masukkan label PV untuk mengaitkan dengan PV.

  3. Jalankan perintah berikut untuk membuat aplikasi bernama nas-static dan pasang PVC tersebut.

    kubectl create -f nas.yaml

    Berikut adalah contoh file nas.yaml untuk membuat aplikasi nas-static.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-static
      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: pvc-nas

    Parameter

    Catatan

    mountPath

    Jalur pemasangan NAS dalam container.

    claimName

    Nama PVC, digunakan untuk mengikat PVC.

  4. Jalankan perintah berikut untuk melihat informasi Pod.

    kubectl get pod

    Output yang diharapkan:

    NAME                          READY   STATUS    RESTARTS   AGE
    nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
    nas-static-c5bb4746c-4****    1/1     Running   0          32s

Verifikasi penyimpanan persisten NAS

  1. Lihat aplikasi yang telah dideploy dan file NAS.

    1. Jalankan perintah berikut untuk melihat nama aplikasi yang telah dideploy.

      kubectl get pod 

      Output yang diharapkan:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari aplikasi mana pun. Dalam contoh ini, Pod bernama nas-static-5b5cdb85f6-n**** digunakan.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Tidak ada output yang dikembalikan, menunjukkan bahwa tidak ada file di bawah jalur /data.

  2. Jalankan perintah berikut untuk membuat file nas di bawah jalur /data dari Pod bernama nas-static-5b5cdb85f6-n****.

    kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari Pod bernama nas-static-5b5cdb85f6-n****.

    kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

    Output yang diharapkan:

    nas
  4. Jalankan perintah berikut untuk menghapus Pod.

    kubectl delete pod nas-static-5b5cdb85f6-n****
  5. Pada saat yang sama, di jendela lain, jalankan perintah berikut untuk melihat proses penghapusan Pod dan Kubernetes membangun ulang Pod.

    kubectl get pod -w -l app=nginx
  6. Verifikasi apakah file yang dibuat di NAS masih ada setelah Pod dihapus.

    1. Jalankan perintah berikut untuk melihat nama Pod yang dibangun ulang oleh Kubernetes.

      kubectl get pod

      Output yang diharapkan:

      NAME                                READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari Pod bernama nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Output yang diharapkan:

      nas

      File nas masih ada, menunjukkan bahwa data NAS dapat disimpan secara persisten.

Verifikasi penyimpanan bersama

  1. Lihat Pod tempat aplikasi yang telah dideploy berjalan dan file NAS.

    1. Jalankan perintah berikut untuk melihat nama Pod tempat aplikasi berjalan.

      kubectl get pod 

      Output yang diharapkan:

      NAME                          READY   STATUS    RESTARTS   AGE
      nas-static-5b5cdb85f6-n****   1/1     Running   0          32s
      nas-static-c5bb4746c-4****    1/1     Running   0          32s
    2. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari 2 Pod tersebut.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data
      kubectl exec nas-static-c5bb4746c-4**** -- ls /data
  2. Jalankan perintah berikut untuk membuat file nas di bawah jalur /data dari Pod mana pun.

     kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nas
  3. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari 2 Pod tersebut.

    1. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari Pod bernama nas-static-5b5cdb85f6-n****.

      kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data

      Output yang diharapkan:

      nas
    2. Jalankan perintah berikut untuk melihat file di bawah jalur /data dari Pod bernama nas-static-c5bb4746c-4****.

      kubectl exec nas-static-c5bb4746c-4**** -- ls /data

      Output yang diharapkan:

      nas

      Jika file yang dibuat di bawah jalur /data dari Pod mana pun juga muncul di bawah jalur /data dari kedua Pod, hal ini menunjukkan bahwa kedua Pod tersebut berbagi NAS yang sama.