Topik ini menjelaskan cara memasang File Storage NAS (NAS) pada Container Compute Service (ACS) dan memverifikasi kemampuan penyimpanan bersama serta persistensi data dari NAS.
Skenario
NAS adalah layanan sistem file terdistribusi yang menawarkan akses bersama, skalabilitas tinggi, keandalan tinggi, dan performa tinggi. NAS cocok untuk skenario yang memerlukan berbagi data dan IOPS tinggi. Anda dapat memilih jenis sistem file dan kelas penyimpanan sesuai dengan persyaratan biaya dan performa. Untuk informasi lebih lanjut, lihat Sistem file NAS tujuan umum, Sistem file NAS Ekstrem, dan Pilih sistem file.
Sistem file NAS tujuan umum dan Sistem file NAS Ekstrem memiliki batasan berbeda terkait konektivitas pemasangan, jumlah sistem file, dan protokol berbagi file. Untuk informasi lebih lanjut, lihat Batasan.
Berdasarkan apakah Anda sudah memiliki sistem file NAS, Anda dapat memilih salah satu metode berikut untuk memasang dan menggunakan volume NAS:
Jika Anda sudah memiliki sistem file NAS yang tersedia, Anda dapat langsung memasang dan menggunakannya. Untuk informasi lebih lanjut, lihat Gunakan sistem file NAS yang ada sebagai volume penyimpanan.
Jika Anda tidak memiliki sistem file NAS yang tersedia, Anda dapat membuatnya secara otomatis melalui StorageClass dan memasangnya untuk digunakan. Untuk informasi lebih lanjut, lihat Buat sistem file NAS baru sebagai volume penyimpanan.
Prasyarat
Komponen managed-csiprovisioner telah diinstal di kluster ACS.
Masuk ke halaman manajemen kluster ACS di konsol ACS. Di bilah navigasi kiri halaman manajemen kluster, pilih . Pada tab Storage, Anda dapat memeriksa apakah managed-csiprovisioner telah diinstal.
Batasan
Anda tidak dapat memasang sistem file NAS yang menggunakan protokol SMB.
Saat memasang sistem file NAS ke beberapa pod, pod tersebut harus berada dalam virtual private cloud (VPC) yang sama. Anda tidak dapat memasang sistem file NAS ke pod di VPC yang berbeda.
CatatanDalam VPC yang sama, sistem file NAS dapat dipasang lintas zona.
Anda hanya dapat menggunakan protokol NFSv3 untuk memasang sistem file NAS.
Pertimbangan
NAS adalah layanan penyimpanan bersama. Anda dapat memasang volume NAS ke beberapa pod. Dalam hal ini, aplikasi harus mampu menyinkronkan data di seluruh pod jika data dalam sistem file NAS dimodifikasi oleh beberapa pod.
Saat memasang sistem file NAS, jangan konfigurasikan
securityContext.fsgroupdalam file YAML aplikasi. Jika tidak, pemasangan mungkin gagal.CatatanDirektori
/dari sistem file NAS tidak mendukung modifikasi izin, pemilik, atau grup.Setelah memasang sistem file NAS, jangan hapus target pemasangan. Jika tidak, masalah hang sistem operasi mungkin terjadi.
Gunakan sistem file NAS yang ada sebagai volume penyimpanan
Langkah 1: Dapatkan informasi sistem file NAS
Dapatkan ID VPC dan vSwitch yang digunakan oleh pod ACS.
CatatanLangkah-langkah berikut menggambarkan cara mendapatkan informasi di konsol. Anda juga dapat menjalankan perintah
kubectl get cm -n kube-system acs-profile -o yamluntuk melihat file YAML dari acs-profile dan mendapatkan ID VPC dan ID vSwitch yang digunakan oleh pod dari bidangvpcIddanvSwitchIds.Masuk ke konsol ACS.
Di halaman Clusters, klik nama kluster untuk masuk ke halaman manajemen kluster.
Di bilah navigasi kiri, pilih .
Di halaman ConfigMaps, ubah namespace di bagian atas menjadi kube-system, temukan acs-profile, dan klik Edit YAML.
Dapatkan ID VPC dan ID vSwitch yang digunakan oleh pod dari bidang
vpcIddanvSwitchIds.
Verifikasi bahwa sistem file NAS yang ada memenuhi persyaratan dan dapatkan alamat target pemasangan.
Masuk ke konsol NAS, dan klik File System List di bilah navigasi kiri.
Temukan sistem file NAS target dan verifikasi bahwa wilayah, zona, dan tipe protokol memenuhi persyaratan.
Sistem file NAS tidak dapat dipasang lintas VPC, yang berarti tidak dapat digunakan lintas wilayah. Pastikan wilayah sistem file NAS yang ada sama dengan wilayah kluster ACS.
Dalam VPC yang sama, sistem file NAS dapat dipasang lintas zona. Namun, disarankan untuk menggunakan zona yang sama dengan pod di kluster ACS untuk performa yang lebih baik.
Verifikasi bahwa tipe protokol sistem file NAS adalah NFS. Anda tidak dapat memasang sistem file NAS yang menggunakan protokol SMB.

Verifikasi bahwa target pemasangan memenuhi persyaratan dan dapatkan alamat target pemasangan.
Klik ID sistem file.
Di bilah navigasi kiri halaman detail sistem file, klik Mount Target.
Di bagian Mount Target, verifikasi bahwa target pemasangan yang ada memenuhi persyaratan, lalu dapatkan alamat target pemasangan.
CatatanSistem secara otomatis membuat target pemasangan untuk sistem file NAS tujuan umum. Namun, Anda perlu membuat target pemasangan secara manual untuk sistem file NAS Ekstrem.
Jika target pemasangan yang ada tidak memenuhi persyaratan, Anda dapat membuat yang baru. Untuk informasi lebih lanjut, lihat Kelola target pemasangan.
VPC dari target pemasangan harus sama dengan VPC yang digunakan oleh pod di kluster ACS. Jika tidak, pemasangan akan gagal.
Disarankan agar vSwitch dari target pemasangan sama dengan vSwitch yang digunakan oleh pod di kluster ACS untuk performa yang lebih baik.
Status target pemasangan adalah Active.

Langkah 2: Buat PVC
kubectll
Buat file bernama nas-pvc.yaml dan salin konten berikut ke file tersebut:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-pvc annotations: csi.alibabacloud.com/mountpoint: *******-mw***.cn-shanghai.nas.aliyuncs.com csi.alibabacloud.com/mount-options: nolock,tcp,noresvport spec: accessModes: - ReadWriteMany resources: requests: storage: 20Gi storageClassName: alibaba-cloud-nasDeskripsi bidang:
PentingSaat membuat PVC berdasarkan template YAML sebelumnya, sistem pertama-tama membuat PV statis berdasarkan konfigurasi NAS di bidang
annotations, lalu membuat PVC yang terkait dengan PV tersebut.Parameter
Deskripsi
csi.alibabacloud.com/mountpointDirektori sistem file NAS yang ingin Anda pasang. Parameter ini digunakan untuk menghubungkan dengan sistem file NAS yang sebelumnya dibuat.
Jika Anda memasukkan alamat target pemasangan, seperti
****-****.<region>.nas.aliyuncs.com, itu menunjukkan bahwa direktori root (/) dari sistem file NAS dipasang.Jika Anda memasukkan alamat target pemasangan dan subdirektori, seperti
****-****.<region>.nas.aliyuncs.com:/dir, itu menunjukkan bahwa direktori/dirdari sistem file NAS dipasang. Jika direktori/dirtidak ada, sistem akan membuatnya secara otomatis.
csi.alibabacloud.com/mount-optionsParameter yang diperlukan untuk memasang sistem file NAS. Kami sarankan Anda menggunakan
nolock,tcp,noresvport.accessModesMode akses.
storageKapasitas penyimpanan yang dialokasikan ke pod. Ini merujuk pada kapasitas volume NAS yang ingin Anda buat.
Buat PVC.
kubectl create -f nas-pvc.yamlPeriksa PV.
kubectl get pvKeluaran berikut menunjukkan bahwa PV dibuat secara otomatis berdasarkan informasi tentang sistem file NAS yang ditentukan dalam konfigurasi PVC yang Anda buat. Informasi tersebut mencakup target pemasangan sistem file.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE nas-ea7a0b6a-bec2-4e56-b767-47222d3a**** 20Gi RWX Retain Bound default/nas-pvc alibaba-cloud-nas 1m58sLihat PVC.
kubectl get pvcKeluaran berikut menunjukkan bahwa PV secara otomatis terikat ke PVC.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE nas-pvc Bound nas-ea7a0b6a-bec2-4e56-b767-47222d3a**** 20Gi RWX alibaba-cloud-nas <unset> 2m14s
Konsol
Masuk ke konsol ACS.
Di halaman Clusters, klik nama kluster untuk masuk ke halaman manajemen kluster.
Di bilah navigasi kiri halaman manajemen kluster, pilih .
Di halaman Persistent Volume Claims, klik Create.
Di kotak dialog yang muncul, konfigurasikan parameter dan klik Create.
Parameter
Deskripsi
Contoh
PVC Type
Pilih NAS.
NAS
Name
Tentukan nama kustom untuk PVC. Nama tersebut harus mengikuti format yang ditampilkan di UI.
nas-pvc
Allocation Mode
Pilih Use Mount Target Domain Name.
Gunakan Nama Domain Target Pemasangan
Storage Driver
CSI dipilih secara default.
CSI
Total
Kapasitas penyimpanan yang dialokasikan ke pod. Ini juga merupakan kapasitas volume NAS.
20Gi
Access Mode
Anda dapat memilih ReadWriteMany atau ReadWriteOnce.
ReadWriteMany
Mount Target Domain Name
Direktori sistem file NAS yang ingin Anda pasang.
Jika Anda memasukkan alamat target pemasangan, seperti
****-****.<region>.nas.aliyuncs.com, itu menunjukkan bahwa direktori root (/) dari sistem file NAS dipasang.Jika Anda memasukkan alamat target pemasangan dan subdirektori, seperti
****-****.<region>.nas.aliyuncs.com:/dir, itu menunjukkan bahwa direktori/dirdari sistem file NAS dipasang. Jika direktori/dirtidak ada, sistem akan membuatnya secara otomatis.
350514****-mw***.cn-shanghai.nas.aliyuncs.com
Setelah pembuatan selesai, Anda dapat melihat PVC yang baru dibuat di halaman Persistent Volume Claims. PVC tersebut terikat ke PV (volume penyimpanan NAS) yang dibuat secara otomatis. Anda dapat melihat detail PV yang sesuai di halaman Persistent Volumes.


Langkah 3: Buat aplikasi dan pasang volume NAS
kubectll
Buat file bernama nas-test.yaml dan salin konten berikut ke file tersebut.
Template YAML berikut membuat Deployment yang menyediakan dua pod. Keduanya meminta sumber daya penyimpanan melalui PVC bernama
nas-pvcdan memasang volume NAS ke direktori/data.apiVersion: apps/v1 kind: Deployment metadata: name: nas-test labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: /data volumes: - name: pvc-nas persistentVolumeClaim: claimName: nas-pvcBuat Deployment dan pasang sistem file NAS ke Deployment.
kubectl create -f nas-test.yamlPeriksa status pod yang dibuat oleh Deployment.
kubectl get pod | grep nas-testKeluaran berikut menunjukkan bahwa dua pod telah dibuat.
nas-test-****-***a 1/1 Running 0 40s nas-test-****-***b 1/1 Running 0 40sLihat jalur pemasangan.
Jalankan perintah berikut untuk melihat file di jalur pemasangan. Secara default, tidak ada data yang dikembalikan.
kubectl exec nas-test-****-***a -- ls /data
Konsol
Di bilah navigasi kiri halaman manajemen kluster, pilih .
Di halaman Deployments, klik Create From Image.
Konfigurasikan parameter untuk Deployment dan klik Create.
Tabel berikut menjelaskan beberapa parameter. Gunakan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat Deployment.
Halaman Konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk Deployment. Nama tersebut harus mengikuti format yang ditampilkan di UI.
nas-test
Replicas
Jumlah replika pod yang disediakan oleh Deployment.
2
Container Configuration
Image Name
Alamat gambar yang digunakan untuk menerapkan aplikasi.
registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
Required Resources
Tentukan jumlah vCore dan jumlah memori yang diperlukan oleh aplikasi.
0,25 vCore dan 0,5 GiB memori
Volumes
Klik Add PVC dan konfigurasikan parameter.
Mount Source: Pilih PVC yang telah Anda buat.
Container Path: Masukkan path tempat Anda ingin memasang sistem file NAS di kontainer.
Sumber Pemasangan: nas-pvc
Path Kontainer: /data
Periksa apakah aplikasi telah diterapkan.
Di halaman Deployments, klik nama aplikasi.
Di tab Pods, verifikasi bahwa pod berjalan normal (statusnya adalah Running).
Buat sistem file NAS baru sebagai volume penyimpanan
Langkah 1: Buat StorageClass
Buat file bernama nas-sc.yaml dan salin template berikut ke dalam file tersebut. Ubah parameter dalam template sesuai kebutuhan.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-fs mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: filesystem fileSystemType: standard storageType: Performance regionId: cn-shanghai zoneId: cn-shanghai-e vpcId: "vpc-2ze2fxn6popm8c2mzm****" vSwitchId: "vsw-2zwdg25a2b4y5juy****" accessGroupName: DEFAULT_VPC_GROUP_NAME deleteVolume: "false" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: RetainTabel berikut menjelaskan parameter dalam template.
PentingSistem file NAS dengan tipe dan spesifikasi penyimpanan yang berbeda mendukung wilayah dan zona yang berbeda. Tentukan wilayah, zona, virtual private cloud (VPC), dan vSwitch dari sistem file NAS dan target pemasangan yang ingin Anda buat berdasarkan kebutuhan penyimpanan bisnis Anda, wilayah kluster ACS, serta VPC dan vSwitch yang digunakan oleh pod di kluster ACS. Untuk informasi lebih lanjut, lihat topik berikut:
Untuk informasi tentang spesifikasi penyimpanan, performa, penagihan, serta wilayah dan zona yang didukung oleh berbagai jenis sistem file NAS, lihat NAS Tujuan Umum dan NAS Ekstrem.
Sistem file NAS tujuan umum dan Sistem file NAS Ekstrem memiliki batasan berbeda pada konektivitas pemasangan, jumlah sistem file, dan protokol berbagi file. Untuk informasi lebih lanjut, lihat Batasan.
Anda dapat menjalankan perintah
kubectl get cm -n kube-system acs-profile -o yamluntuk melihat file YAML dari acs-profile dan mendapatkan ID VPC dan ID vSwitch yang digunakan oleh pod dari bidangvpcIddanvSwitchIds.
Parameter
Deskripsi
volumeAsHanya
filesystemyang didukung. Nilai ini menunjukkan bahwa sistem file NAS dibuat secara otomatis. Setiap volume NAS sesuai dengan satu sistem file NAS.fileSystemTypeTipe sistem file NAS.
standard(default): Sistem file NAS tujuan umum. Untuk informasi lebih lanjut, lihat NAS Tujuan Umum.extreme: Sistem file NAS Ekstrem. Untuk informasi lebih lanjut, lihat NAS Ekstrem.
storageTypeTipe penyimpanan sistem file NAS.
Untuk sistem file NAS tujuan umum, nilai berikut didukung:
Performance(default): PerformaCapacity: Kapasitas
Untuk sistem file NAS Ekstrem, nilai berikut didukung:
standard(default): mediumadvanced: advanced
regionIdID wilayah tempat sistem file NAS berada. ID wilayah tersebut harus sama dengan ID wilayah kluster ACS.
zoneIdID zona tempat sistem file NAS berada. Pilih zona berdasarkan vSwitch yang digunakan oleh pod di kluster ACS.
CatatanDalam VPC yang sama, sistem file NAS dapat dipasang lintas zona. Kami sarankan Anda memilih zona yang sama untuk performa yang lebih baik.
vpcId,vSwitchIdID VPC dan ID vSwitch tempat target pemasangan sistem file NAS berada. Atur nilainya menjadi ID VPC dan vSwitch yang digunakan oleh pod di kluster ACS.
accessGroupNameGrup izin tempat target pemasangan sistem file NAS berada. Nilai defaultnya adalah
DEFAULT_VPC_GROUP_NAME.provisionerTipe driver. Atur nilainya ke
nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI Alibaba Cloud NAS digunakan.reclaimPolicyKebijakan pengambilan kembali PV. Hanya
Retainyang didukung. Nilai ini menunjukkan bahwa sistem file NAS dan target pemasangannya tetap ada saat PV dihapus.Buat StorageClass.
kubectl create -f nas-sc.yamlPeriksa StorageClass.
kubectl get scKeluaran yang diharapkan:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE alicloud-nas-fs nasplugin.csi.alibabacloud.com Retain Immediate false 13m ......
Langkah 2: Buat PVC
Simpan konten berikut sebagai file YAML bernama nas-pvc-fs.yaml:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-pvc-fs spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-fs resources: requests: storage: 20GiDeskripsi bidang:
Parameter
Deskripsi
accessModesMode akses.
storageKapasitas penyimpanan yang dialokasikan ke pod. Ini juga merupakan kapasitas volume NAS yang ingin Anda buat.
CatatanKarena sistem file NAS Ekstrem memiliki batas kapasitas minimum 100 GiB, jika tipe sistem file NAS yang didefinisikan dalam StorageClass adalah NAS Ekstrem, nilai
storageharus lebih besar atau sama dengan 100 GiB. Jika tidak, PV yang sesuai tidak dapat dibuat.storageClassNameNama StorageClass yang ingin Anda asosiasikan.
Buat PVC.
kubectl create -f nas-pvc-fs.yamlLihat PVC.
kubectl get pvcKeluaran perintah serupa dengan berikut ini dikembalikan. PVC terkait dengan PV yang dibuat secara otomatis. Anda dapat masuk ke konsol NAS untuk melihat sistem file NAS yang sesuai.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE nas-pvc-fs Bound nas-04a730ba-010d-4fb1-9043-476d8c38**** 20Gi RWX alicloud-nas-fs <unset> 14s
Langkah 3: Buat aplikasi dan pasang volume NAS
Buat file bernama nas-test-fs.yaml dan tambahkan konten berikut ke file tersebut:
Template YAML berikut membuat Deployment yang menyediakan dua pod. Keduanya meminta sumber daya penyimpanan melalui PVC bernama
nas-pvc-fsdan memasang volume NAS ke direktori/data.apiVersion: apps/v1 kind: Deployment metadata: name: nas-test labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: /data volumes: - name: pvc-nas persistentVolumeClaim: claimName: nas-pvc-fsBuat Deployment dan pasang sistem file NAS.
kubectl create -f nas-test-fs.yamlPeriksa status pod yang dibuat oleh Deployment.
kubectl get pod | grep nas-testKeluaran berikut menunjukkan bahwa dua pod telah dibuat.
nas-test-****-***a 1/1 Running 0 40s nas-test-****-***b 1/1 Running 0 40sLihat jalur pemasangan.
Jalankan perintah berikut untuk melihat file di jalur pemasangan. Secara default, tidak ada data yang dikembalikan.
kubectl exec nas-test-****-***a -- ls /data
Verifikasi kemampuan penyimpanan bersama dan persistensi data NAS
Deployment yang dibuat dalam contoh sebelumnya menyediakan dua pod dan sistem file NAS dipasang ke pod tersebut. Anda dapat menggunakan metode berikut untuk memverifikasinya:
Buat file di satu pod dan lihat file tersebut dari pod lain untuk memverifikasi penyimpanan bersama.
Buat ulang Deployment. Akses volume NAS dari pod yang direplikasi untuk memeriksa apakah data asli masih ada di sistem file NAS. Jika data tersebut masih ada, persistensi data diaktifkan.
Lihat informasi pod.
kubectl get pod | grep nas-testKeluaran berikut dikembalikan:
nas-test-****-***a 1/1 Running 0 40s nas-test-****-***b 1/1 Running 0 40sPeriksa apakah berbagi data diaktifkan.
Buat file di pod.
Gunakan pod bernama
nas-test-****-***asebagai contoh:kubectl exec nas-test-****-***a -- touch /data/test.txtLihat file dari pod lain.
Gunakan pod bernama
nas-test-****-***bsebagai contoh:kubectl exec nas-test-****-***b -- ls /dataKeluaran berikut menunjukkan bahwa file baru
test.txtdibagikan.test.txt
Verifikasi penyimpanan persisten.
Buat ulang Deployment.
kubectl rollout restart deploy nas-testTunggu hingga pod direplikasi.
kubectl get pod | grep nas-testKeluaran berikut dikembalikan:
nas-test-****-***c 1/1 Running 0 67s nas-test-****-***d 1/1 Running 0 49sPeriksa apakah data yang tersimpan di sistem file ada dari pod yang baru dibuat.
Gunakan pod bernama
nas-test-c***sebagai contoh:kubectl exec nas-test-****-***c -- ls /dataKeluaran berikut menunjukkan bahwa file tersebut masih ada di volume NAS dan dapat diakses dari direktori pemasangan di pod yang direplikasi.
test.txt