Pasang volume CPFS yang disediakan secara statis.
Cloud Parallel File Storage (CPFS) adalah sistem file paralel yang sepenuhnya dikelola dan dapat diskalakan untuk skenario komputasi berkinerja tinggi. CPFS memungkinkan akses konkuren dari ribuan server, menyediakan throughput puluhan GB/detik dan jutaan operasi input/output per detik, semuanya dengan latensi di bawah satu milidetik. Beban kerja AI dan HPC yang berjalan di Alibaba Cloud Container Service (ACS) sering memerlukan jenis penyimpanan bersama ber-throughput tinggi ini yang dapat diakses oleh beberapa Pod secara simultan. Topik ini menjelaskan cara memasang volume CPFS yang disediakan secara statis ke aplikasi ACS serta memverifikasi bahwa volume tersebut mendukung penyimpanan bersama dan persisten.
Sebelum Anda mulai
CPFS for LINGJUN dirancang untuk skenario komputasi cerdas seperti AIGC dan kendaraan otonom. Perhatikan batasan berikut sebelum melanjutkan:
-
CPFS for LINGJUN mendukung jaringan RDMA end-to-end dan saat ini berada dalam pratinjau undangan. Dukungan terbatas pada wilayah dan zona tertentu.
-
Saat mengakses CPFS for LINGJUN melalui RDMA,
hpn-zonedari Pod harus sesuai denganhpn-zonedari sistem file CPFS for LINGJUN. -
CPFS adalah sistem file bersama. Anda dapat memasang volume CPFS ke beberapa Pod secara simultan.
-
Volume CPFS dapat dipasang ke Pod ACS yang dipercepat CPU apa pun. Untuk Pod yang dipercepat GPU, hanya model GPU tertentu yang didukung. Untuk memeriksa kelayakan, kirim tiket.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menginstal add-on managed-csiprovisioner di kluster ACS Anda.
Untuk memverifikasi instalasi, buka halaman manajemen kluster ACS, pilih Operations > Add-ons di panel navigasi kiri, lalu periksa tab Storage.
Cara kerja penyediaan statis
Penyediaan statis mencakup tiga langkah:
-
Buat sistem file CPFS di Konsol CPFS dan catat ID sistem file tersebut.
-
Buat PersistentVolume (PV) dan PersistentVolumeClaim (PVC) di kluster ACS Anda yang mereferensikan sistem file tersebut.
-
Buat Deployment yang mereferensikan PVC. Kubernetes akan mengikat PVC ke PV dan memasang sistem file ke dalam Pod Anda.
Pilih metode akses Anda
Konfigurasi PV bergantung pada jenis Pod dan metode akses jaringan Anda. Tentukan skenario yang berlaku sebelum melanjutkan ke Langkah 1.
| Scenario | Pod type | Network | CSI driver |
|---|---|---|---|
| CPFS for LINGJUN via RDMA | GPU (hanya model tertentu) | Direct RDMA | povplugin.csi.alibabacloud.com |
| CPFS for LINGJUN via VPC | Pod CPU atau Pod GPU tanpa dukungan RDMA | VPC mount target | nasplugin.csi.alibabacloud.com |
Langkah 1: Buat sistem file CPFS
-
Buat sistem file CPFS for LINGJUN dan catat ID sistem file tersebut.
-
(Opsional) Buat VPC mount target. Buat VPC mount target jika Pod Anda tidak mendukung RDMA — misalnya, Pod CPU atau Pod GPU tanpa dukungan RDMA. Gunakan VPC dan vSwitch kluster ACS Anda saat membuat titik pemasangan. Catat nama domain titik pemasangan, yang mengikuti format
cpfs-*-vpc-*.<Region>.cpfs.aliyuncs.com.
Langkah 2: Buat PV dan PVC
kubectl
-
Buat file bernama
cpfs-pv-pvc.yaml. Pilih YAML yang sesuai dengan metode akses Anda dari tabel "Pilih metode akses Anda". CPFS for LINGJUN — jaringan RDMAPentingHanya Pod dengan model GPU tertentu yang mendukung RDMA. Untuk model yang didukung, lihat Model GPU yang didukung oleh ACS.
apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test # Digunakan oleh selector PVC untuk mengikat PV ini spec: accessModes: - ReadWriteMany capacity: storage: 10Ti # Kapasitas yang dideklarasikan; harus >= permintaan PVC csi: driver: povplugin.csi.alibabacloud.com volumeAttributes: filesystemId: bmcpfs-***** # Ganti dengan ID sistem file CPFS for LINGJUN Anda path: / # Jalur pemasangan dalam sistem file; subdirektori dibuat otomatis volumeHandle: bmcpfs-***** # Sama dengan filesystemId --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test # Harus sesuai dengan label pada PV di atas resources: requests: storage: 10Ti # Tidak boleh melebihi kapasitas PVCPFS for LINGJUN — jaringan VPC
apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test # Digunakan oleh selector PVC untuk mengikat PV ini spec: accessModes: - ReadWriteMany capacity: storage: 10Ti # Kapasitas yang dideklarasikan; harus >= permintaan PVC csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: efc # Protokol untuk akses CPFS berbasis VPC server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com # Ganti dengan nama domain VPC mount target Anda path: / # Jalur pemasangan dalam sistem file; subdirektori dibuat otomatis volumeHandle: bmcpfs-***** # Ganti dengan ID sistem file CPFS for LINGJUN Anda --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test # Harus sesuai dengan label pada PV di atas resources: requests: storage: 10Ti # Tidak boleh melebihi kapasitas PV -
Buat PV dan PVC.
kubectl create -f cpfs-pv-pvc.yaml -
Konfirmasi bahwa PVC terikat ke PV.
kubectl get pvc cpfs-testOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Console
Pemasangan CPFS for LINGJUN ke aplikasi CPU melalui VPC mount target saat ini tidak didukung di Konsol. Gunakan kubectl untuk skenario ini.
-
Masuk ke Konsol ACS.
-
Di halaman Clusters, klik nama kluster.
-
Di panel navigasi kiri, pilih Volumes > Persistent Volume Claims.
-
Di halaman Persistent Volume Claims, klik Create.
-
Konfigurasikan parameter dan klik Create.
Parameter Description Example PVC type Pilih CPFS. CPFS Name Nama kustom untuk PVC. cpfs-test Allocation mode Pilih Existing Volumes untuk mengikat PV yang sudah ada, atau Create Volume untuk membuat PV dan PVC sekaligus. Create Volume CPFS type Pilih CPFS for LINGJUN.
CPFS for LINGJUN Access mode Pilih ReadWriteMany atau ReadWriteOnce. ReadWriteMany File system ID ID sistem file CPFS for LINGJUN Anda. bmcpfs-0115\*\*\*\*\*\*13q5 -
Di halaman Persistent Volume Claims dan halaman Persistent Volumes, konfirmasi bahwa PVC dan PV yang baru dibuat muncul dan statusnya menunjukkan Bound.
Langkah 3: Sebarkan aplikasi dengan volume CPFS
kubectl
-
Buat file bernama
cpfs-test.yaml. Pilih templat yang sesuai dengan jenis Pod Anda. Contoh berikut membuat Deployment dengan dua replika. Kedua Pod memasang sistem file CPFS di/datamenggunakan PVC yang dibuat di Langkah 2. Aplikasi yang dipercepat GPUUntuk model GPU dan versi driver yang didukung, lihat Tentukan model GPU dan versi driver untuk Pod ACS yang dipercepat GPU.
apiVersion: apps/v1 kind: Deployment metadata: name: cpfs-test labels: app: cpfs-test spec: replicas: 2 selector: matchLabels: app: cpfs-test template: metadata: labels: app: cpfs-test alibabacloud.com/compute-class: gpu # Meminta sumber daya komputasi GPU alibabacloud.com/gpu-model-series: T4 # Tentukan model GPU (misalnya, T4); sesuaikan jika perlu alibabacloud.com/compute-qos: default spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-cpfs mountPath: /data # Jalur pemasangan di dalam kontainer volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-test # Harus sesuai dengan nama PVC dari Langkah 2Aplikasi yang dipercepat CPU
apiVersion: apps/v1 kind: Deployment metadata: name: cpfs-test labels: app: cpfs-test spec: replicas: 2 selector: matchLabels: app: cpfs-test template: metadata: labels: app: cpfs-test spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-cpfs mountPath: /data # Jalur pemasangan di dalam kontainer volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-test # Harus sesuai dengan nama PVC dari Langkah 2 -
Buat Deployment.
kubectl create -f cpfs-test.yaml -
Konfirmasi kedua Pod sedang berjalan.
kubectl get pod | grep cpfs-testOutput yang diharapkan:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s -
Konfirmasi sistem file CPFS dipasang di jalur yang diharapkan.
kubectl exec cpfs-test-****-***a -- ls /dataDirektori kosong secara default jika belum ada data yang ditulis.
Console
-
Di panel navigasi kiri halaman manajemen kluster, pilih Workloads > Deployments.
-
Di halaman Deployments, klik Create from Image.
-
Konfigurasikan parameter Deployment. Untuk parameter yang tidak tercantum di bawah ini, gunakan nilai default. Untuk informasi lebih lanjut, lihat Buat aplikasi tanpa status menggunakan Deployment.
Aplikasi yang dipercepat GPU
Halaman konfigurasi Parameter Deskripsi Contoh Basic information Name Nama kustom untuk Penyebaran. cpfs-test Replicas Jumlah replika Pod. 2 Type Jenis komputasi untuk Pod. Untuk model GPU yang didukung, lihat Specify GPU models and driver versions for ACS GPU-accelerated pods. GPU, T4 Container Image name Alamat gambar kontainer. registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest Required resources GPU, vCPU, dan memori yang akan dialokasikan. GPU: 1, CPU: 2 vCPUs, Memory: 2 GiB Volume Klik Add PVC dan atur sumber mount serta path kontainer. Mount source: pvc-cpfs, Container path: /data Aplikasi yang dipercepat CPU
Configuration page Parameter Description Example Basic information Application name Nama kustom untuk Deployment. cpfs-test Replicas Jumlah replika Pod. 2 Type Jenis komputasi untuk Pod. CPU, tujuan umum Container Image name Alamat gambar kontainer. registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest Required resources vCPU dan memori yang dialokasikan. CPU: 0.25 vCPUs, Memory: 0.5 GiB Volume Klik Add PVC dan atur sumber pemasangan serta jalur kontainer. Mount source: pvc-cpfs, Container path: /data -
Klik nama Deployment di halaman Deployments. Di tab Pods, konfirmasi bahwa semua Pod menunjukkan status Running.
Verifikasi penyimpanan bersama dan persisten
Deployment yang dibuat di atas memiliki dua Pod yang memasang sistem file CPFS yang sama. Ikuti langkah-langkah berikut untuk memverifikasi bahwa penyimpanan bersama dan penyimpanan persisten berfungsi dengan benar.
-
Dapatkan nama Pod.
kubectl get pod | grep cpfs-testOutput yang diharapkan:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s -
Konfirmasi direktori pemasangan kosong sebelum menulis data apa pun.
kubectl exec cpfs-test-****-***a -- ls /dataJika tidak ada output yang dikembalikan, direktori kosong dan siap untuk pengujian.
-
Verifikasi penyimpanan bersama.
-
Buat file di salah satu Pod. ``
shell kubectl exec cpfs-test-**-*a -- touch /data/test.txt`` -
Periksa apakah file tersebut terlihat di Pod lain. ``
shell kubectl exec cpfs-test-**-*b -- ls /data`Output yang diharapkan — file yang dibuat di Pod pertama terlihat di Pod kedua:`test.txt``
-
-
Verifikasi penyimpanan persisten.
-
Restart Deployment untuk membuat Pod baru. ``
shell kubectl rollout restart deploy cpfs-test`` -
Tunggu hingga Pod baru mencapai status Running. ``
shell kubectl get pod | grep cpfs-test`Output yang diharapkan:`cpfs-test-**-*c 1/1 Running 0 78s cpfs-test-**-*d 1/1 Running 0 52s`` -
Periksa apakah data tetap ada di Pod baru. ``
shell kubectl exec cpfs-test-**-*c -- ls /data`Output yang diharapkan — file masih ada setelah Pod dibuat ulang:`test.txt``
-