Container Compute Service (ACS) mendukung pemasangan sistem file CPFS for Lingjun. Beberapa Pod dapat memasangnya secara bersamaan untuk berbagi data.
Prasyarat
Anda telah membuat kluster ACS.
Untuk ACS, komponen CSI (bmcpfs-csi-controller, bmcpfs-csi-node, dan cnfs-nas-daemon) dikelola oleh platform ACS. Anda tidak perlu mengelola versi atau peningkatan komponen tersebut.
Anda telah membuat sistem file CPFS for Lingjun dan mencatat ID sistem file tersebut. Untuk informasi selengkapnya, lihat Create a CPFS for Lingjun file system.
Jika sebuah Pod dijadwalkan ke node yang tidak mendukung RDMA atau skenario tersebut melintasi domain afinitas compute-storage, Anda harus terlebih dahulu membuat titik pemasangan VPC dan mencatat nama domain titik pemasangan tersebut (dalam format
cpfs-***-vpc-***.<Region>.cpfs.aliyuncs.com). VPC tempat titik pemasangan VPC berada harus sama dengan VPC kluster ACS. Untuk informasi selengkapnya, lihat Manage VPC mount points.
Langkah 1: Buat PV dan PVC
Pilih templat yang sesuai berdasarkan jenis Pod Anda:
Pod GPU Lingjun dalam domain afinitas compute-storage yang sama: Gunakan "Metode A: RDMA."
Pod CPU, atau akses Lingjun yang melintasi domain afinitas compute-storage: Gunakan "Metode B: titik pemasangan VPC."
Saat Pod Lingjun ACS berada dalam domain afinitas compute-storage yang sama dengan CPFS, sistem mengakses sistem file melalui pemasangan langsung VSC + RDMA untuk performa terbaik. Untuk Pod CPU atau akses Lingjun yang melintasi domain afinitas compute-storage, akses dilakukan melalui titik pemasangan VPC. Untuk konsep dan metode penentuan domain afinitas compute-storage, lihat Overview of mount access.
Jaringan RDMA
kubectl CLI
Buat file bernama
cpfs-pv-pvc.yamluntuk menentukan PV dan PVC:apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test spec: accessModes: - ReadWriteMany capacity: storage: 10Ti csi: driver: bmcpfsplugin.csi.alibabacloud.com volumeAttributes: filesystemId: bmcpfs-***** path: / volumeHandle: bmcpfs-***** --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test resources: requests: storage: 10TiDeskripsi parameter:
-
Parameter PersistentVolume
Parameter
Deskripsi
labelsLabel untuk PersistentVolume. PersistentVolumeClaim menggunakan
selectoruntuk mengikat PersistentVolume dengan mencocokkan label ini.accessModesMode akses PersistentVolume.
capacity.storageKapasitas volume.
csi.driverDriver CSI. Tetapkan nilainya ke
bmcpfsplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
-
filesystemId: ID sistem file CPFS for LINGJUN. -
path: Direktori yang akan dipasang. Nilai default adalah/, yang menunjukkan direktori root sistem file CPFS. Anda juga dapat menentukan subdirektori, seperti/dir. Jika subdirektori tersebut belum ada, sistem akan membuatnya secara otomatis saat pemasangan.
csi.volumeHandleID sistem file CPFS for LINGJUN.
-
-
Parameter PersistentVolumeClaim
Parameter
Deskripsi
accessModesMode akses yang diminta oleh PersistentVolumeClaim.
selectorSelector yang digunakan untuk menemukan PersistentVolume yang sesuai berdasarkan label.
resources.requests.storageJumlah penyimpanan yang diminta oleh PersistentVolumeClaim. Nilainya tidak boleh melebihi kapasitas PersistentVolume.
-
Jalankan perintah pembuatan:
kubectl create -f cpfs-pv-pvc.yamlKonfirmasi bahwa PVC telah terikat ke PV.
kubectl get pvc cpfs-testContoh output (STATUS bernilai Bound menunjukkan keberhasilan):
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Konsol
Masuk ke Konsol ACS.
Pada halaman Clusters, klik nama kluster target untuk membuka halaman manajemennya.
Di panel navigasi kiri, pilih , klik Create, lalu lengkapi konfigurasi berikut:
Parameter
Deskripsi
Contoh
PVC Type
Pilih CPFS.
CPFS
Name
Nama kustom untuk PVC. Persyaratan penamaan tersedia pada prompt di layar.
cpfs-pvc
Allocation Mode
Pilih Existing Volume atau Create Volume sesuai kebutuhan.
Create Volume
CPFS Type
Pilih CPFS for Lingjun.
CPFS for Lingjun
Access Mode
Mendukung ReadWriteMany dan ReadWriteOnce.
ReadWriteMany
File System ID
Konfigurasikan ID sistem file CPFS for Lingjun yang akan dipasang.
bmcpfs-0115******13q5
Lihat PV dan PVC yang telah dibuat.
Pada halaman PersistentVolumeClaims dan halaman Volumes, Anda dapat melihat PV dan PVC baru yang telah dibuat. Pastikan keduanya telah terikat.
Jaringan VPC
Berlaku untuk Pod CPU, GPU standar (seperti T4 atau A10), dan akses GPU Lingjun yang melintasi domain afinitas compute-storage.
Buat file bernama
cpfs-pv-pvc.yamluntuk menentukan PV dan PVC:apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test # [label PV] Digunakan oleh PVC untuk mengikat PV ini spec: accessModes: - ReadWriteMany capacity: storage: 10Ti csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: efc server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com # Ganti dengan nama domain titik pemasangan VPC Anda path: / autoSwitch: "true" # Opsional. Mengaktifkan pengalihan otomatis VSC/VPC (disarankan untuk skenario lintas-AZ Lingjun) volumeHandle: bmcpfs-***** # Ganti dengan ID sistem file CPFS for Lingjun Anda --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-test # [nama PVC] Dirujuk oleh Deployment spec: accessModes: - ReadWriteMany selector: matchLabels: alicloud-pvname: cpfs-test # [selector PVC] Harus sesuai dengan label PV resources: requests: storage: 10TiDeskripsi parameter:
-
Parameter PersistentVolume
Parameter
Deskripsi
labelsLabel untuk PersistentVolume. PersistentVolumeClaim menggunakan
selectoruntuk mengikat PersistentVolume dengan mencocokkan label ini.accessModesMode akses PersistentVolume.
capacity.storageKapasitas volume.
csi.driverDriver CSI. Tetapkan nilainya ke
nasplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
-
mountProtocol: Protokol pemasangan. Tetapkan nilainya keefc. -
server: Nama domain titik pemasangan VPC sistem file CPFS. -
path: Direktori yang akan dipasang. Nilai default adalah/, yang menunjukkan direktori root sistem file CPFS. Anda juga dapat menentukan subdirektori, seperti/dir. Jika subdirektori tersebut belum ada, sistem akan membuatnya secara otomatis saat pemasangan.
csi.volumeHandleID sistem file CPFS for LINGJUN.
-
-
Parameter PersistentVolumeClaim
Parameter
Deskripsi
accessModesMode akses yang diminta oleh PersistentVolumeClaim.
selectorSelector yang digunakan untuk menemukan PersistentVolume yang sesuai berdasarkan label.
resources.requests.storageJumlah penyimpanan yang diminta oleh PersistentVolumeClaim. Nilainya tidak boleh melebihi kapasitas PersistentVolume.
autoSwitch: Parameter opsional. Saat diatur ke"true", fitur ini mengaktifkan pengalihan otomatis VSC/VPC. Saat GPU Lingjun mengakses lintas zona ketersediaan, sistem secara otomatis beralih dari RDMA ke saluran VPC.
CatatanThroughput saluran VPC dibatasi oleh lebar pita jaringan, hingga sekitar 3,2 GB/s (25 Gbps), yang lebih rendah daripada koneksi RDMA langsung. Untuk skenario yang sensitif terhadap performa, kami menyarankan untuk memprioritaskan instans CPFS dalam domain afinitas compute-storage yang sama.
-
Jalankan perintah pembuatan:
kubectl create -f cpfs-pv-pvc.yamlKonfirmasi bahwa PVC telah terikat ke PV.
kubectl get pvc cpfs-testContoh output (STATUS bernilai Bound menunjukkan keberhasilan):
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Langkah 2: Buat aplikasi dan pasang CPFS
Buat Deployment yang mereferensikan PVC untuk memasang penyimpanan ke direktori tertentu dalam kontainer. Pilih metode CLI atau konsol sesuai preferensi Anda.
kubectl
Buat file bernama
cpfs-test.yamldengan konten berikut.Aplikasi GPU
Contoh YAML berikut membuat Deployment dengan dua Pod. Kedua Pod menggunakan label
alibabacloud.com/compute-class: gpuuntuk meminta daya komputasi berbasis GPU dan PersistentVolumeClaim (PVC) bernamacpfs-testuntuk meminta sumber daya penyimpanan. Jalur pemasangan untuk kedua Pod adalah/data.CatatanUntuk informasi selengkapnya tentang model GPU tertentu, lihat Specify GPU models and driver versions for ACS GPU Pods.
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 # Tentukan jenis komputasi sebagai GPU. alibabacloud.com/compute-class: gpu # Tentukan model GPU, misalnya T4. alibabacloud.com/gpu-model-series: T4 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 volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-testAplikasi CPU
Contoh YAML berikut membuat Deployment dengan 2 Pod, yang meminta sumber daya penyimpanan menggunakan PVC bernama
cpfs-testdan keduanya dipasang ke jalur/data.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 volumes: - name: pvc-cpfs persistentVolumeClaim: claimName: cpfs-testBuat Deployment dan pasang volume CPFS.
kubectl create -f cpfs-test.yamlPeriksa status Pod dalam Deployment.
kubectl get pod | grep cpfs-testOutput yang diharapkan menunjukkan bahwa dua Pod berada dalam status 'Running'.
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45sPeriksa jalur pemasangan.
Perintah ini mencantumkan isi direktori yang dipasang (/data), yang berisi data dari sistem file CPFS for LINGJUN. Direktori ini kosong secara default.
kubectl exec cpfs-test-****-***a -- ls /data
Konsol
Di panel navigasi kiri halaman manajemen kluster, pilih .
Pada halaman Deployments, klik Create from Image.
Konfigurasikan parameter Deployment dan klik Create.
Parameter utama dijelaskan di bawah ini. Anda dapat mempertahankan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Create a stateless application by using a Deployment.
Aplikasi GPU
Bagian
Parameter
Deskripsi
Contoh
Basic Information
Application Name
Masukkan nama unik untuk Deployment. Nama harus sesuai dengan persyaratan format yang ditampilkan di halaman.
cpfs-test
Replicas:
Jumlah replika Pod untuk Deployment.
2
Instance Type
Menentukan sumber daya perangkat keras untuk Pod, seperti CPU atau model GPU tertentu.
CatatanUntuk informasi selengkapnya tentang model GPU tertentu, lihat Specify GPU models and driver versions for ACS GPU Pods.
GPU, T4
Container
Image Name
Gambar kontainer yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Jumlah sumber daya GPU, vCPU, dan memori yang dialokasikan untuk setiap Pod.
GPU: 1
CPU: 2 vCPU
Memory: 2 GiB
Volume
Klik Add PVC lalu konfigurasikan parameter.
Mount Source: Pilih PersistentVolumeClaim yang sudah ada.
Container Path: Masukkan jalur dalam kontainer tempat sistem file CPFS akan dipasang.
Mount source: pvc-cpfs
Container path: /data
Aplikasi CPU
Bagian
Parameter
Deskripsi
Contoh
Basic Information
Application Name
Masukkan nama unik untuk Deployment. Nama harus sesuai dengan persyaratan format yang ditampilkan di halaman.
cpfs-test
Replicas:
Jumlah replika Pod untuk Deployment.
2
Instance Type
Jenis komputasi Pod.
CPU, General Purpose
Container
Image Name
Gambar kontainer yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Jumlah sumber daya vCPU dan memori yang dialokasikan untuk setiap Pod.
CPU: 0,25 vCPU
Memory: 0,5 GiB
Volume
Klik Add PVC lalu konfigurasikan parameter.
Mount Source: Pilih PersistentVolumeClaim yang sudah ada.
Container Path: Masukkan jalur dalam kontainer tempat sistem file CPFS akan dipasang.
Mount source: pvc-cpfs
Container path: /data
Periksa status aplikasi.
Pada halaman Deployments, klik nama aplikasi.
Pada tab Pods, pastikan Pod berada dalam status 'Running'.
Langkah 3: Verifikasi pemasangan
Deployment yang dibuat pada contoh sebelumnya berisi dua Pod, yang keduanya memasang sistem file CPFS yang sama. Anda dapat memverifikasi penyimpanan bersama dan penyimpanan persisten sebagai berikut:
Verifikasi penyimpanan persisten dengan merestart Deployment, lalu periksa apakah data tetap ada di Pod baru yang dibuat.
-
Periksa Pod.
kubectl get pod | grep cpfs-testContoh output:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45s -
Verifikasi penyimpanan bersama.
-
Buat file di salah satu Pod.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***a:kubectl exec cpfs-test-****-***a -- touch /data/test.txt -
Periksa keberadaan file tersebut di Pod lain.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***b:kubectl exec cpfs-test-****-***b -- ls /dataOutput,
test.txt, mengonfirmasi bahwa penyimpanan bersifat bersama.test.txt
-
-
Verifikasi penyimpanan persisten.
-
Restart Deployment.
kubectl rollout restart deploy cpfs-test -
Periksa status Pod dan tunggu hingga Pod baru dibuat.
kubectl get pod | grep cpfs-testContoh output:
cpfs-test-****-***c 1/1 Running 0 78s cpfs-test-****-***d 1/1 Running 0 52s -
Verifikasi bahwa data tetap ada di Pod baru.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***c:kubectl exec cpfs-test-****-***c -- ls /dataOutput ini mengonfirmasi bahwa data pada sistem file CPFS tetap ada dan dapat diakses dari direktori pemasangan Pod baru.
test.txt
-