All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasikan volume NAS bersama

Last Updated:Sep 04, 2026

Siapkan sistem file NAS sebagai PV dan PVC bersama di kluster ACK Anda untuk menyimpan data pelatihan Arena.

Sebelum memulai

Pastikan Anda memiliki:

  • Kluster ACK yang sedang berjalan

  • Izin untuk membuat sistem file NAS dan mengelola resource penyimpanan ACK

  • Instance Elastic Compute Service (ECS) dalam Virtual Private Cloud (VPC) yang sama dengan kluster ACK Anda, untuk memasang dan mengisi sistem file NAS

Catatan penggunaan

Perhatikan batasan berikut:

  • Diperlukan co-location VPC. Sistem file NAS, titik pemasangannya, dan kluster ACK Anda harus berada dalam VPC yang sama.

  • Jenis protokol memengaruhi performa penulisan multipel. NFSv3 memberikan performa lebih baik ketika beberapa instance ECS tidak menulis ke file yang sama secara bersamaan. NAS Ekstrem hanya mendukung NFSv3.

  • Kapasitas PV hanya digunakan untuk pencocokan. Nilai kapasitas tidak membatasi penyimpanan aktual. Batas aktual bergantung pada spesifikasi sistem file NAS.

  • PV statis tidak mendukung archiveOnDelete. Menetapkan Delete pada PV statis tidak benar-benar menghapus PV atau data NAS. Gunakan Retain (default) kecuali jika menggunakan volume NAS yang disediakan secara dinamis.

Informasi latar belakang

Mengonfigurasi volume penyimpanan bersama untuk lingkungan pekerjaan Arena menjaga pekerjaan ilmuwan data (kode dan data) agar tidak hilang saat kontainer dihapus, serta memudahkan akses terhadap data pelatihan bersama. Dalam pengembangan tim, mengalokasikan kumpulan penyimpanan bersama memungkinkan data dan kode dibagikan lintas tim.

Saat mengirimkan pekerjaan Arena, Anda dapat menggunakan parameter --data untuk mendeklarasikan penyimpanan bersama dan jalur pemasangan. Penyimpanan bersama dipasang pada direktori yang ditentukan, dan pekerjaan selanjutnya dapat menggunakan ulang data atau kode tersebut.

Di Kubernetes, objek penyimpanan dijelaskan oleh Persistent Volume (PV) dan Persistent Volume Claim (PVC). Sebagai administrator kluster, saat menetapkan lingkungan, buatlah PVC terpisah untuk setiap ilmuwan data. Misalnya, PVC untuk pengguna A dan pengguna B dapat memasang backend NAS atau CPFS yang sama, tetapi harus mengarah ke subdirektori berbeda agar lingkungan kerja mereka tetap terisolasi.

Langkah 1: Buat instance NAS

Buat sistem file NAS tujuan umum di wilayah dan VPC yang sama dengan kluster ACK Anda.

Lihat Buat sistem file NAS tujuan umum menggunakan Konsol.

Gunakan nilai berikut:

Parameter

Nilai yang diperlukan

File system type

General-purpose NAS

Region

Wilayah yang sama dengan kluster ACK Anda

VPC

VPC yang sama dengan kluster ACK Anda

Protocol type

NFS

Langkah 2: Pasang sistem file ke instance ECS

Pasang sistem file NAS ke instance ECS untuk kemudian diisi dengan data pelatihan. Langkah ini menggunakan fitur pemasangan satu klik. Lihat Skenario pemasangan sistem file untuk metode lainnya.

Pasang sistem file NAS

  1. Login ke Konsol NAS. Di panel navigasi kiri, pilih File System > File System List.

  2. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah sistem file Anda.

    image

  3. Temukan sistem file Anda dan klik Mount di kolom Actions.

    Saat pertama kali digunakan, NAS akan meminta Anda menetapkan peran terkait layanan AliyunServiceRoleForNasEcsHandler. Ikuti instruksi di layar. Lihat Peran terkait layanan NAS.
  4. Di panel Mount, atur opsi pemasangan:

    1. Pilih titik pemasangan dan klik Next.

    2. Pilih instance ECS dalam VPC yang sama dengan sistem file dan klik Next. Jika instance tidak muncul dalam daftar, refresh halaman.

      Catatan

      Konfigurasi ini hanya mendukung penyambungan ke satu instance ECS. Lihat Pasang sistem file NFS secara batch pada beberapa instance ECS untuk pemasangan batch.

    3. Konfigurasikan parameter pemasangan:

      Parameter

      Deskripsi

      Wajib

      Default

      Mount path

      Direktori lokal pada instance ECS untuk titik pemasangan.

      Ya

      —

      Automatic mount

      Memasang ulang sistem file secara otomatis saat instance ECS direstart.

      Tidak

      Enabled

      Protocol type

      Versi protokol NFS. NAS tujuan umum mendukung NFSv3 dan NFSv4; NAS Ekstrem hanya mendukung NFSv3. NFSv3 memberikan performa lebih baik ketika beberapa instance tidak menulis ke file yang sama secara bersamaan.

      Ya

      —

      NAS directory

      Direktori NAS yang akan dipasang. Masukkan / untuk root atau subdirektori seperti /abc. Untuk direktori yang belum ada, pilih Confirm New Directory dan atur UID, GID, serta izin POSIX.

      Tidak

      / (root)

      Mount parameters

      Flag pemasangan NFS. Lihat Pasang sistem file NFS pada instance ECS Linux untuk referensi lengkap.

      Tidak

      Default mount parameters

  5. Klik Complete. Proses pemasangan memerlukan waktu 1–2 menit. Saat status menunjukkan Mounted, sistem file siap digunakan. Jika status Failed, lihat Pasang sistem file NFS pada instance ECS Linux untuk troubleshooting.

    image

Verifikasi pemasangan

Sambungkan ke instance ECS dan jalankan perintah berikut untuk memverifikasi akses:

mkdir /mnt/dir1
mkdir /mnt/dir2
touch /mnt/file1
echo 'some file content' > /mnt/file2
ls /mnt

Output menampilkan dir1, dir2, file1, dan file2:

dir1  dir2  file1  file2

Untuk melihat detail pemasangan atau memeriksa kapasitas, jalankan mount -l atau df -h.

Setiap sistem file NAS memerlukan titik pemasangan. Lihat Kelola titik pemasangan untuk menambahkan atau mencari titik pemasangan. Atur Mount target type menjadi VPC dan pilih VPC serta vSwitch yang sama dengan kluster ACK Anda.

Langkah 3: Buat PV dan PVC

Daftarkan sistem file NAS sebagai PV di kluster ACK Anda, lalu buat PVC untuk akses pod.

Buat PV

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

  2. Di halaman Clusters, klik kluster target. Di panel navigasi kiri, pilih Volumes > Persistent Volumes.

  3. Di halaman Persistent Volumes, klik Create. Atur parameter berikut dan klik OK.

    Parameter

    Deskripsi

    Wajib

    Default

    Contoh

    PV type

    Pilih NAS.

    Ya

    —

    NAS

    Name

    Nama PV. Harus unik dalam kluster.

    Ya

    —

    pv-nas

    Capacity

    Hanya digunakan untuk pencocokan PVC. Tidak membatasi penyimpanan aktual. Lihat Sistem file NAS tujuan umum dan Sistem file NAS Ekstrem untuk batas kapasitas.

    Ya

    —

    5 Gi

    Access mode

    ReadWriteMany: beberapa node dipasang sebagai baca-tulis. ReadWriteOnce: hanya satu node.

    Ya

    —

    ReadWriteMany

    Enable CNFS

    Mengaktifkan Container Network File System (CNFS) untuk O&M otomatis, akselerasi cache, dan pemantauan performa. Lihat Buat CNFS untuk mengelola sistem file NAS (Direkomendasikan) untuk mengelola sistem file yang sudah ada.

    Tidak

    Disabled

    Disabled

    Mount target domain name

    Tersedia saat CNFS dinonaktifkan. Alamat titik pemasangan NAS. Pilih titik yang sudah ada atau masukkan domain kustom. Lihat Kelola titik pemasangan untuk mencari alamat.

    Ya (saat CNFS dinonaktifkan)

    —

    0c47****-mpk25.cn-shenzhen.nas.aliyuncs.co

    Mount path (Advanced)

    Subdirektori NAS yang akan dipasang. Untuk NAS Ekstrem, harus dimulai dengan /share (misalnya, /share/data). Direktori yang belum ada akan dibuat secara otomatis.

    Tidak

    / (root)

    /data

    Reclaim policy

    Retain (default): PV dan data NAS dipertahankan saat PVC dihapus; pembersihan manual diperlukan. Delete: memerlukan archiveOnDelete. PV statis tidak mendukung archiveOnDelete, sehingga PV dan data tetap ada terlepas dari pengaturan. Lihat Gunakan volume NAS yang disediakan secara dinamis untuk konfigurasi archiveOnDelete.

    Tidak

    Retain

    Retain

    Mount options

    Versi Protokol NFS dan flag pemasangan. NFSv3 memberikan performa lebih baik untuk pembacaan pelatihan ML tanpa penulisan bersamaan.

    Tidak

    —

    nolock,tcp,noresvport vers=3

    Label

    Label untuk PV.

    Tidak

    —

    pv-nas

PV muncul di halaman Persistent Volumes.

Buat PVC

  1. Di panel navigasi, pilih Storage > Persistent Volume Claims.

  2. Di halaman Persistent Volume Claims, klik Create. Atur parameter berikut dan klik OK.

    Parameter

    Deskripsi

    Wajib

    Default

    Contoh

    PVC type

    Pilih NAS.

    Ya

    —

    NAS

    Name

    Nama PVC. Harus unik dalam kluster.

    Ya

    —

    pvc-nas

    Allocation mode

    Use Existing Persistent Volume: mengikat ke PV di atas. Create Volume: menyediakan PV baru secara inline.

    Ya

    —

    Use Existing Persistent Volume

    Existing volumes

    PV yang dibuat di atas.

    Ya (saat menggunakan PV yang ada)

    —

    pv-nas

    Capacity

    Kapasitas penyimpanan yang diminta. Hanya digunakan untuk pencocokan PVC ke PV.

    Ya

    —

    5

Verifikasi PV dan PVC

Pastikan PVC terikat ke PV. Sambungkan ke node mana pun di kluster ACK dan jalankan:

kubectl get pvc pvc-nas

Output menunjukkan PVC dalam status Bound:

NAME       STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-nas    Bound    pv-nas   5Gi        RWX                           1m

Jika status Pending, pastikan nama PV dan mode akses sesuai.

Langkah 4: Isi PVC dengan data

Kluster Kubernetes mengakses data bersama melalui PVC (yang mengarah ke instance NAS yang dibuat di Langkah 1), sehingga Anda hanya perlu mengisi NAS yang mendasari PVC tersebut. Prosedur berikut membuat dua Kubernetes Job yang menyalin dataset MNIST PyTorch dan TensorFlow dari gambar kontainer contoh ke NAS pada direktori yang ditentukan. Contoh ini menggunakan PVC pvc-nas dari Langkah 3.

  1. Buat file bernama prepare-pytorch-mnist-data.yaml dengan konten berikut:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: prepare-pytorch-mnist-data
      namespace: default
    spec:
      completions: 1
      parallelism: 1
      backoffLimit: 3
      ttlSecondsAfterFinished: 3600
      template:
        spec:
          containers:
          - name: pytorch-mnist-example
            image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/pytorch-mnist-example:2.5.1-cuda12.4-cudnn9-runtime
            imagePullPolicy: Always
            command:
            - /bin/bash
            - -c
            args:
            - |
              set -eux
              mkdir -p /mnt/pytorch_data/MNIST/raw
              cp -r /data/MNIST/raw/* /mnt/pytorch_data/MNIST/raw || { echo "Copy failed"; exit 1; }
              echo "MNIST data prepared successfully at /mnt/pytorch_data/MNIST/raw."
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 100m
                memory: 128Mi
            volumeMounts:
            - name: training-data
              mountPath: /mnt
          volumes:
          - name: training-data
            persistentVolumeClaim:
              claimName: pvc-nas
          restartPolicy: Never
  2. Buat Job untuk menyalin dataset MNIST PyTorch ke /pytorch_data pada NAS:

    # Create the Job
    kubectl create -f prepare-pytorch-mnist-data.yaml
    
    # Wait for the Job to complete
    kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-pytorch-mnist-data

    Saat Job selesai berhasil, outputnya adalah:

    job.batch/prepare-pytorch-mnist-data condition met
  3. Buat file bernama prepare-tensorflow-mnist-data.yaml dengan konten berikut:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: prepare-tensorflow-mnist-data
      namespace: default
    spec:
      completions: 1
      parallelism: 1
      backoffLimit: 3
      ttlSecondsAfterFinished: 3600
      template:
        spec:
          containers:
          - name: tensorflow-mnist-example
            image: kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/tensorflow-mnist-example:2.15.0-gpu
            imagePullPolicy: Always
            command:
            - /bin/bash
            - -c
            args:
            - |
              set -eux
              mkdir -p /mnt/tf_data
              cp -r /data/mnist.npz /mnt/tf_data/mnist.npz || { echo "Copy failed"; exit 1; }
              echo "MNIST data prepared successfully at /mnt/tf_data/mnist.npz."
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 100m
                memory: 128Mi
            volumeMounts:
            - name: training-data
              mountPath: /mnt
          volumes:
          - name: training-data
            persistentVolumeClaim:
              claimName: pvc-nas
          restartPolicy: Never
  4. Buat Job untuk menyalin dataset MNIST TensorFlow ke /tf_data pada NAS:

    # Create the Job
    kubectl create -f prepare-tensorflow-mnist-data.yaml
    
    # Wait for the Job to complete
    kubectl wait --for=condition=complete --namespace=default --timeout=300s job/prepare-tensorflow-mnist-data

    Saat Job selesai berhasil, outputnya adalah:

    job.batch/prepare-tensorflow-mnist-data condition met
Contoh ini menggunakan PVC bernama pvc-nas di namespace default. Jika PVC Anda memiliki nama berbeda atau berada di namespace lain, sesuaikan manifes tersebut.

/tf_data berisi data MNIST TensorFlow dan /pytorch_data berisi data MNIST PyTorch. Keduanya dapat diakses oleh pod apa pun yang memasang pvc-nas.

Langkah berikutnya

  • Kirimkan pekerjaan pelatihan Arena dengan --data untuk memasang pvc-nas.

  • Untuk mengisolasi lingkungan pengguna, buat PVC terpisah yang mengarah ke subdirektori berbeda dari sistem file NAS yang sama.

  • Untuk beban kerja produksi, pertimbangkan mengaktifkan CNFS.