Topik ini menjelaskan cara memasang volume Cloud Parallel File System (CPFS) General-purpose Edition yang diprovisioning secara statis ke workload dalam kluster ACK. CPFS dirancang untuk workload komputasi kinerja tinggi (HPC), seperti pelatihan AI, kendaraan otonom, komputasi genetika, dan rendering video.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
csi-plugin dan csi-provisioner versi
v1.22.11-abbb810e-aliyunatau lebih baru. Untuk melakukan upgrade, lihat Upgrade CSI components.
Batasan
| Batasan | Detail |
|---|---|
| Ketersediaan wilayah | CPFS General-purpose Edition hanya tersedia di wilayah tertentu. Lihat Available regions. |
| Protokol pemasangan | Hanya NFS yang didukung. Protokol POSIX tidak didukung. |
| Arsitektur node | Hanya x86. Node ContainerOS tidak didukung. |
| Jaringan | Volume hanya dapat dipasang ke kluster dalam VPC yang sama. Pemasangan lintas-VPC tidak didukung. |
| Provisioning | Hanya provisioning statis. Provisioning dinamis tidak didukung. |
Konfigurasikan komponen penyimpanan
Metode konfigurasi tergantung pada versi csi-plugin Anda.
csi-plugin 1.33 atau lebih baru
Instal komponen cnfs-nas-daemon dan aktifkan FeatureGate AlinasMountProxy=true pada csi-plugin. Hal ini memungkinkan komponen CSI mendelegasikan pemasangan ke cnfs-nas-daemon. Untuk detailnya, lihat Manage the cnfs-nas-daemon component.
csi-plugin versi sebelum 1.33
Terapkan ConfigMap untuk mengaktifkan pemasangan NFS untuk CPFS General-purpose Edition.
cat << EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: csi-plugin namespace: kube-system data: cpfs-nas-enable: "true" EOFRestart csi-plugin untuk menginstal dependensi yang diperlukan. Hal ini tidak memengaruhi layanan yang sedang berjalan.
kubectl -n kube-system rollout restart daemonset csi-pluginOutput yang diharapkan:
daemonset.apps/csi-plugin restarted
Langkah 1: Buat sistem file CPFS dan layanan protokol
Sebelum membuat persistent volume (PV), Anda memerlukan sistem file CPFS, layanan protokol, serta alamat pemasangan dari layanan protokol tersebut.
Buat sistem file CPFS General-purpose Edition.
Buat sistem file di wilayah yang sama dengan kluster Anda.
Jika Anda sudah memiliki sistem file, buka NAS console, masuk ke File System List, klik sistem file tersebut, lalu periksa versinya di halaman Basic Information. Versinya harus 2.3.0 atau lebih baru. Jika lebih lama, buat sistem file baru.
Gunakan VPC dan vSwitch yang sama dengan kluster Anda.
Jika Anda sudah memiliki layanan protokol, pastikan layanan tersebut berada dalam VPC yang sama dengan kluster. Jika tidak, buat yang baru.
Ambil alamat pemasangan layanan protokol. Di halaman Protocol Service, klik Export Directory. Di kolom Mount Address, salin alamat tersebut. Alamat ini menggabungkan nama domain titik pemasangan dan path direktori yang diekspor, contohnya:
cpfs-****.<region-id>.cpfs.aliyuncs.com:/share.
Langkah 2: Buat PV dan PVC
Persistent volume (PV) merepresentasikan penyimpanan CPFS yang telah Anda provisioning. Persistent volume claim (PVC) mengikat PV tersebut agar Pod dapat menggunakannya.
Buat PV dan PVC.
Simpan konten berikut sebagai
cpfs-pv-pvc.yaml.apiVersion: v1 kind: PersistentVolume metadata: name: cpfs-pv labels: alicloud-pvname: cpfs-pv # Label yang digunakan oleh selector PVC untuk mengikat PV ini spec: accessModes: - ReadWriteMany # Mengizinkan beberapa node membaca dan menulis secara bersamaan capacity: storage: 20Gi csi: driver: nasplugin.csi.alibabacloud.com volumeAttributes: mountProtocol: cpfs-nfs # Memasang melalui protokol NFS path: "/share" # Path direktori yang diekspor; bisa berupa subdirektori, misalnya /share/dir volumeAs: subpath # Membuat PV bertipe subdirektori server: "cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com" # Nama domain dari alamat pemasangan volumeHandle: cpfs-pv # Harus sesuai dengan nama PV di atas mountOptions: - rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport - vers=3 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cpfs-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 20Gi # Tidak boleh melebihi kapasitas PV selector: matchLabels: alicloud-pvname: cpfs-pv # Mengikat ke PV dengan label iniParameter PV
Parameter Deskripsi Wajib Default labelsLabel yang digunakan oleh selector PVC untuk mencocokkan dan mengikat PV ini.
Ya
—
accessModesMode akses untuk PV.
Ya
—
capacity.storageKapasitas penyimpanan volume.
Ya
—
csi.driverTipe driver CSI. Atur ke
nasplugin.csi.alibabacloud.com.Ya
—
csi.volumeAttributes.mountProtocolProtokol pemasangan. Atur ke
cpfs-nfsuntuk memasang melalui NFS.Ya
—
csi.volumeAttributes.pathDirektori yang diekspor oleh layanan protokol CPFS, misalnya
/share. Bisa juga berupa subdirektori, seperti/share/dir.Ya
—
csi.volumeAttributes.volumeAsTipe PV. Atur ke
subpathuntuk PV bertipe subdirektori.Ya
—
csi.volumeAttributes.serverNama domain dari alamat pemasangan layanan protokol CPFS.
Ya
—
csi.volumeHandleIdentifier unik untuk volume. Harus sesuai dengan nama PV.
Ya
—
Parameter PVC
Parameter Deskripsi Wajib Default accessModesMode akses yang diminta PVC dari PV.
Ya
—
selector.matchLabelsSelector label yang digunakan untuk mengikat PV tertentu.
Ya
—
resources.requests.storageKapasitas penyimpanan yang diminta oleh Pod. Tidak boleh melebihi kapasitas PV.
Ya
—
Terapkan manifes.
kubectl apply -f cpfs-pv-pvc.yaml
Verifikasi bahwa PVC telah terikat ke PV.
kubectl get pvc cpfs-pvcOutput harus menampilkan
STATUS: Bound:NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE cpfs-pvc Bound cpfs-pv 20Gi RWO <unset> 18m
Langkah 3: Deploy aplikasi dan verifikasi pemasangan
Buat StatefulSet yang menggunakan volume CPFS.
Simpan konten berikut sebagai
cpfs-test.yaml.apiVersion: apps/v1 kind: StatefulSet metadata: name: cpfs-sts spec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 volumeMounts: - name: cpfs-pvc mountPath: /data volumes: - name: cpfs-pvc persistentVolumeClaim: claimName: cpfs-pvcTerapkan manifes.
kubectl apply -f cpfs-test.yaml
Verifikasi bahwa volume CPFS telah dipasang.
kubectl exec cpfs-sts-0 -- mount | grep /dataPemasangan yang berhasil menampilkan entri NFS pada
/datadenganvers=3:cpfs-******-******.cn-shanghai.cpfs.aliyuncs.com:/share on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,port=30000,timeo=600,retrans=2,sec=sys,mountaddr=127.0.1.255,mountvers=3,mountport=30000,mountproto=tcp,local_lock=all,addr=127.0.1.255)