Topik ini menjelaskan cara memasang sistem file CPFS for Lingjun di Container Service for Kubernetes (ACS) sehingga beberapa Pod dapat berbagi data pada sistem file yang sama.
Prasyarat
Anda telah membuat sistem file CPFS for Lingjun. Untuk informasi selengkapnya, lihat Buat sistem file.
Komponen managed-csiprovisioner telah diinstal di kluster ACS.
CatatanBuka halaman manajemen kluster ACS di Konsol ACS. Di panel navigasi sebelah kiri halaman manajemen kluster, pilih . Di tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.
Langkah 1: Tentukan metode pemasangan
Tentukan jenis jaringan dan lengkapi prasyarat berdasarkan jenis sumber daya komputasi Anda.
Resource | Network type | Prerequisites |
GPU pod (mendukung RDMA: GU8TF, GU8TEF, L20X, P16EN, dll.) | RDMA | Pastikan sistem file CPFS for Lingjun dan GPU Lingjun berada dalam zona dan kluster yang sama. |
GPU pod (tidak mendukung RDMA: L20, G49E, T4, A10, G59, dll.) | VPC | |
CPU pod | VPC |
Jika Anda tidak yakin dengan jenis GPU Anda, lihat Model GPU yang didukung di ACS.
Langkah 2: Buat PV dan PVC
CPFS for Lingjun menggunakan provisioning statis, yang mengharuskan Anda membuat volume persisten (PV) dan klaim volume persisten (PVC) secara manual.
PV (persistent volume): Penyimpanan dalam kluster yang menentukan detail koneksi ke sistem file CPFS, seperti ID sistem file, jenis jaringan, dan jalur pemasangan.
PVC (persistent volume claim): Permintaan penyimpanan yang diajukan oleh sebuah Pod. Penggunaan PVC memisahkan aplikasi dari infrastruktur penyimpanan yang mendasarinya.
Pilih metode kubectl atau Konsol sesuai preferensi Anda.
Kubectl
Pilih konfigurasi yang sesuai dengan jenis jaringan yang telah Anda tentukan di Langkah 1.
Jaringan RDMA
Metode ini berlaku untuk GPU Lingjun, seperti GU8TF, GU8TEF, L20X, dan P16EN.
Buat file bernama
cpfs-pv-pvc.yamluntuk mendefinisikan 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 PV
Parameter
Description
labelsAtur Label agar PVC dapat menggunakan
selectoruntuk mencocokkan dan mengikat.accessModesMode akses PV.
capacity.storageKapasitas volume.
csi.driverAtur Driver type menjadi
povplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
filesystemId: ID sistem file CPFS for LINGJUN.path: Nilai default adalah/, yang menunjukkan direktori root sistem file CPFS. Anda juga dapat menentukan subdirektori, seperti/dir. Jika subdirektori tersebut belum ada, akan dibuat secara otomatis selama proses pemasangan.
csi.volumeHandleID sistem file CPFS for LINGJUN.
Parameter PVC
Parameter
Description
accessModesMode akses yang diminta PVC dari PV.
selectorMenggunakan label pada PV untuk menemukan dan mengikat PV yang sesuai.
resources.requests.storageJumlah penyimpanan yang diminta untuk Pod. Nilai ini tidak boleh melebihi kapasitas PV.
Jalankan perintah berikut untuk membuat resource:
kubectl create -f cpfs-pv-pvc.yamlVerifikasi bahwa PVC telah terikat ke PV.
kubectl get pvc cpfs-testStatus
Boundpada output menunjukkan bahwa PVC berhasil diikat:NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Jaringan VPC
Metode ini berlaku untuk CPU pod dan GPU pod tujuan umum, seperti T4 dan A10.
Buat file bernama
cpfs-pv-pvc.yamluntuk mendefinisikan PV dan PVC.apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-test labels: alicloud-pvname: cpfs-test spec: accessModes: - ReadWriteMany capacity: storage: 10Ti csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: efc server: cpfs-***-vpc-***.cn-wulanchabu.cpfs.aliyuncs.com 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 PV
Parameter
Description
labelsAtur label agar PVC dapat menggunakan
selectoruntuk mencocokkan dan mengikat.accessModesMode akses PV.
capacity.storageKapasitas volume.
csi.driverAtur Driver type menjadi
nasplugin.csi.alibabacloud.com.csi.volumeAttributesAtribut volume CPFS.
mountProtocol: Protokol pemasangan. Atur keefc.server: Nama domain titik pemasangan VPC untuk sistem file CPFS.path: Default ke/, yang merupakan direktori root sistem file CPFS yang dipasang. Anda juga dapat menentukan subdirektori, seperti/dir.
csi.volumeHandleID sistem file CPFS for LINGJUN.
Parameter PVC
Parameter
Description
accessModesMode akses yang diminta PVC dari PV.
selectorMenggunakan label pada PV untuk menemukan dan mengikat PV yang sesuai.
resources.requests.storageJumlah penyimpanan yang diminta untuk Pod. Nilai ini tidak boleh melebihi kapasitas PV.
Jalankan perintah berikut untuk membuat resource:
kubectl create -f cpfs-pv-pvc.yamlVerifikasi bahwa PVC telah terikat ke PV.
kubectl get pvc cpfs-testStatus
Boundpada output menunjukkan bahwa PVC berhasil diikat:NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-test Bound cpfs-test 10Ti RWX <unset> <unset> 10s
Konsol
Metode Konsol hanya mendukung pemasangan melalui jaringan RDMA. Untuk menggunakan jaringan VPC, Anda harus menggunakan kubectl.
Masuk ke Konsol ACS.
Di halaman Clusters, klik nama kluster untuk membuka halaman manajemen kluster.
Di panel navigasi sebelah kiri, pilih , lalu klik Create. Konfigurasikan parameter berikut.
Parameter
Description
Contoh
PVC type
Pilih CPFS.
CPFS
Parameter
Masukkan nama kustom untuk PVC. Ikuti persyaratan format yang ditampilkan di layar.
cpfs-pvc
Allocation mode
Pilih salah satu dari Use an existing PV atau Create a PV.
Create a PV
CPFS type
Pilih CPFS for Lingjun.
CPFS for Lingjun
Access mode
Mendukung ReadWriteMany dan ReadWriteOnce.
ReadWriteMany
File system ID
ID sistem file CPFS for Lingjun yang akan dipasang.
bmcpfs-0115******13q5
Lihat PV dan PVC yang telah dibuat.
Resource baru muncul di halaman Persistent Volume Claims dan Persistent Volumes. Verifikasi bahwa keduanya telah terikat.
Langkah 3: Buat aplikasi dan pasang CPFS
Buat Penyebaran (Deployment) yang mereferensikan PVC untuk memasang penyimpanan ke direktori tertentu dalam kontainer. Ikuti petunjuk untuk metode kubectl atau Konsol.
Kubectl
Pilih konfigurasi yang sesuai dengan jenis aplikasi Anda.
Aplikasi GPU
Metode ini berlaku untuk GPU Lingjun, seperti GU8TF, maupun GPU tujuan umum, seperti T4 dan A10.
Buat file bernama
cpfs-test.yamluntuk mendefinisikan Deployment dan mereferensikan PVC.Manifes YAML ini membuat Deployment dengan dua Pod. Kedua Pod menggunakan label
alibabacloud.com/compute-class: gpuuntuk meminta resource GPU. Mereka juga meminta penyimpanan dari PVC bernamacpfs-testdan memasang volume 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 # Tentukan jenis komputasi sebagai GPU. alibabacloud.com/compute-class: gpu # Tentukan model GPU, seperti 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-test # [Deployment] Harus sesuai dengan nama PVC.Buat aplikasi.
kubectl create -f cpfs-test.yamlVerifikasi bahwa Pod berjalan dengan sukses.
kubectl get pod | grep cpfs-testOutput menunjukkan dua Pod dalam status
Running:cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45sVerifikasi bahwa pemasangan berhasil.
Daftar isi direktori pemasangan dalam sebuah Pod. Direktori ini kosong secara default.
kubectl exec cpfs-test-****-***a -- ls /data
Aplikasi CPU
Buat file bernama cpfs-test.yaml.
Manifes YAML berikut membuat Deployment dengan dua Pod. Kedua Pod meminta penyimpanan dari PVC bernama
cpfs-testdan memasangnya 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-test # [Deployment] Harus sesuai dengan nama PVC.Buat Deployment.
kubectl create -f cpfs-test.yamlPeriksa status Pod dalam Deployment.
kubectl get pod | grep cpfs-testOutput menunjukkan dua Pod dalam status
Running:cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45sPeriksa jalur pemasangan.
Daftar isi direktori pemasangan dalam sebuah Pod. Direktori ini kosong secara default.
kubectl exec cpfs-test-****-***a -- ls /data
Konsol
Di panel navigasi sebelah kiri halaman manajemen kluster, pilih .
Di halaman Deployments, klik Create from Image.
Konfigurasikan parameter untuk Deployment dan klik Create.
Perhatikan parameter berikut dan gunakan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Buat aplikasi tanpa status dari Deployment.
Aplikasi GPU
Bagian konfigurasi
Parameter
Description
Contoh
Basic Information
Application name
Nama kustom untuk Deployment. Untuk konvensi penamaan, lihat prompt di konsol.
cpfs-test
Replicas
Jumlah Pod untuk Deployment.
2
Type
Jenis komputasi Pod.
CatatanUntuk informasi tentang model GPU spesifik, lihat Tentukan model GPU dan versi driver untuk Pod ACS.
GPU, T4
Container
Image name
Alamat image yang digunakan untuk men-deploy aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required resources
Jumlah resource GPU, vCPU, dan memori yang diminta.
GPU: 1
CPU: 2 vCPU
Memory: 2 GiB
Volume
Klik Add PVC dan konfigurasikan parameter.
Mount Source: Pilih PVC yang telah Anda buat.
Container path: Jalur pemasangan di dalam kontainer.
Mount Source: pvc-cpfs
Container Path: /data
Aplikasi CPU
Bagian Konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Application name
Nama kustom untuk Penyebaran. Untuk konvensi penamaan, lihat prompt di Konsol.
cpfs-test
Replicas
Jumlah Pod untuk Penyebaran.
2
Type
Tipe komputasi dari Pod.
CPU, General Purpose
Container
Image name
Alamat image yang digunakan untuk menyebar aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required resources
Jumlah sumber daya vCPU dan memori yang diminta.
CPU: 0.25 vCPU
Memory: 0.5 GiB
Volume
Klik Add PVC dan konfigurasikan parameter-parameter tersebut.
Mount Source: Pilih PVC yang telah Anda buat.
Container path: Jalur mount di dalam kontainer.
Mount Source: pvc-cpfs
Container Path: /data
Periksa status aplikasi.
Di halaman Deployments, klik nama aplikasi.
Klik tab Pods dan verifikasi bahwa Pod berada dalam status Running.
Langkah 4: Verifikasi hasil pemasangan
Deployment yang dibuat dalam contoh berisi dua Pod. Kedua Pod memasang sistem file CPFS yang sama. Anda dapat memverifikasi pengaturan ini sebagai berikut:
Untuk memverifikasi penyimpanan persisten, restart Deployment lalu periksa apakah data dalam sistem file tetap ada di Pod baru.
Periksa informasi Pod.
kubectl get pod | grep cpfs-testBerikut contoh output:
cpfs-test-****-***a 1/1 Running 0 45s cpfs-test-****-***b 1/1 Running 0 45sVerifikasi penyimpanan bersama.
Buat file di salah satu Pod.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***a:kubectl exec cpfs-test-****-***a -- touch /data/test.txtLihat file tersebut di Pod lain.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***b:kubectl exec cpfs-test-****-***b -- ls /dataOutput yang diharapkan menunjukkan bahwa file baru
test.txttelah dibagikan.test.txt
Verifikasi penyimpanan persisten.
Restart Deployment.
kubectl rollout restart deploy cpfs-testPeriksa Pod dan tunggu hingga Pod baru berhasil dibuat.
kubectl get pod | grep cpfs-testBerikut contoh output:
cpfs-test-****-***c 1/1 Running 0 78s cpfs-test-****-***d 1/1 Running 0 52sDi Pod baru, periksa apakah data dalam sistem file masih ada.
Contoh ini menggunakan Pod bernama
cpfs-test-****-***c:kubectl exec cpfs-test-****-***c -- ls /dataOutput yang diharapkan menunjukkan bahwa data dalam sistem file CPFS tetap ada. Anda dapat mengambil data tersebut dari direktori pemasangan di Pod baru.
test.txt