All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasikan volume NAS bersama

Last Updated:Jun 19, 2026

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

Sebelum memulai

Pastikan Anda telah memiliki:

  • Kluster ACK yang sedang berjalan

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

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

Catatan penggunaan

Perhatikan batasan berikut:

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

  • Jenis protokol memengaruhi kinerja penulisan multipel. NFSv3 memberikan kinerja 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 kode dan data ilmuwan data agar tidak hilang saat kontainer dihapus, serta memudahkan akses terhadap data pelatihan bersama. Dalam pengembangan tim, mengalokasikan pool penyimpanan bersama memungkinkan data dan kode dibagikan di seluruh tim.

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

Di Kubernetes, objek penyimpanan dijelaskan oleh Persistent Volume (PV) dan Persistent Volume Claim (PVC). Sebagai administrator kluster, saat menyiapkan lingkungan, buat 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 NAS tujuan umum
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. Masuk 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 Tindakan.

    Saat pertama kali digunakan, NAS akan meminta Anda menetapkan peran terkait layanan AliyunServiceRoleForNasEcsHandler. Ikuti petunjuk 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 di VPC yang sama dengan sistem file dan klik Next. Jika instance tidak muncul dalam daftar, refresh halaman. > Note: Lihat Pasang sistem file NFS ke beberapa instance ECS sekaligus untuk pemasangan batch.

    3. Konfigurasi 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 Diaktifkan
      Protocol type Versi protokol NFS. NAS tujuan umum mendukung NFSv3 dan NFSv4; NAS Ekstrem hanya mendukung NFSv3. NFSv3 memberikan kinerja 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 Parameter pemasangan default
  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

Hubungkan 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 akan menampilkan dir1, dir2, file1, dan file2:

image.png

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 ke 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. Masuk 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 kinerja. Lihat Buat CNFS untuk mengelola sistem file NAS (Disarankan) untuk mengelola sistem file yang sudah ada. Tidak Dinonaktifkan Dinonaktifkan
    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 diawali 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 kebijakan yang dipilih. Lihat Gunakan volume NAS yang disediakan secara dinamis untuk konfigurasi archiveOnDelete. Tidak Retain Retain
    Mount options Versi protokol NFS dan flag pemasangan. NFSv3 memberikan kinerja lebih baik untuk pembacaan pelatihan ML tanpa penulisan bersamaan. Tidak nolock,tcp,noresvport vers=3
    Label Label untuk PV. Tidak pv-nas

PV akan 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 sudah ada) pv-nas
    Capacity Kapasitas penyimpanan yang diminta. Hanya digunakan untuk pencocokan PVC ke PV. Ya 5

Verifikasi PV dan PVC

Konfirmasi bahwa PVC terikat ke PV. Hubungkan ke salah satu node 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, verifikasi bahwa 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 berhasil selesai, 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 berhasil selesai, 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 berbeda, 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.