Dengan penyediaan dinamis untuk Penyimpanan File NAS, Anda dapat secara otomatis menyediakan penyimpanan untuk beban kerja sesuai permintaan, sehingga menghilangkan kebutuhan untuk membuat PV terlebih dahulu. Fitur ini menyediakan persistensi dan berbagi data, memungkinkan beberapa Pod membaca dan menulis secara bersamaan, serta menyederhanakan manajemen penyimpanan untuk kasus penggunaan seperti aplikasi web dan retensi log.
Cara kerja
Dengan volume dinamis, ketika sebuah aplikasi membuat PVC, sistem secara otomatis membuat volume penyimpanan baru dan PV yang sesuai sesuai permintaan. Penyediaan ini ditentukan oleh StorageClass yang ditentukan dalam PVC. Mode ini menawarkan fleksibilitas lebih besar dan mendukung ekspansi volume penyimpanan secara otomatis.
Mode pemasangan
Anda dapat menentukan mode pemasangan dengan parameter volumeAs dalam StorageClass. Parameter ini mendefinisikan hubungan antara PV dan sistem file NAS.
|
Mount Mode |
Deskripsi |
Skenario |
|
Dalam mode subpath, setiap PV dipetakan ke subdirektori unik dalam sistem file NAS. Mode ini memfasilitasi isolasi data. |
|
|
|
Dalam mode sharepath, semua PV memetakan ke direktori NAS yang sama yang didefinisikan dalam StorageClass. Oleh karena itu, semua PVC yang menggunakan StorageClass ini mengakses direktori bersama yang sama. |
Beberapa Pod di namespace berbeda perlu memasang subdirektori NAS yang sama. |
|
|
filesystem (Tidak direkomendasikan) |
Dalam mode sistem file, instance sistem file NAS baru dan khusus dibuat secara dinamis untuk setiap PV. |
Mode ini cocok untuk aplikasi yang memerlukan isolasi ketat dalam hal kinerja dan keamanan. Mode ini memungkinkan pembuatan dan penghapusan dinamis sistem file NAS dan titik pemasangan independen untuk setiap aplikasi, tetapi menimbulkan biaya lebih tinggi. |
Alur kerja
Alur kerja untuk memasang volume dinamis NAS adalah sebagai berikut.
|
|
|
Prasyarat
-
Komponen csi-plugin dan csi-provisioner telah diinstal.
Komponen CSI diinstal secara default. Verifikasi bahwa komponen tersebut tetap terinstal. Anda dapat memeriksa status instalasi di halaman . Kami merekomendasikan meningkatkan komponen CSI ke versi terbaru.
-
Untuk menggunakan subpath dan sharepath, Anda memerlukan sistem file Apsara File Storage NAS yang memenuhi persyaratan berikut. Jika tidak, buat sistem file.
NAS memiliki beberapa batasan terkait konektivitas pemasangan, jumlah sistem file, dan jenis protokol.
-
Protocol: Hanya NFS yang didukung.
-
VPC: Sistem file Apsara File Storage NAS harus berada dalam VPC yang sama dengan kluster Anda. Apsara File Storage NAS mendukung pemasangan lintas zona tetapi tidak mendukung pemasangan lintas VPC.
-
Mount Target: Tambahkan titik pemasangan yang berada dalam VPC yang sama dengan kluster Anda dan aktif. Untuk informasi selengkapnya, lihat Mengelola titik pemasangan. Catat alamat titik pemasangan tersebut.
-
(Opsional) Encryption Type: Untuk mengenkripsi data dalam volume, konfigurasikan jenis enkripsi saat Anda membuat sistem file Apsara File Storage NAS.
-
Catatan penggunaan
-
Jangan menghapus titik pemasangan: Untuk mencegah error I/O node, jangan menghapus titik pemasangan di konsol NAS selama volume yang sesuai sedang digunakan.
-
Penulisan konkuren: NAS menyediakan penyimpanan bersama. Ketika beberapa Pod memasang volume yang sama, aplikasi Anda harus menangani potensi masalah konsistensi data akibat penulisan konkuren.
Untuk informasi selengkapnya tentang batasan penulisan konkuren ke NAS, lihat Beberapa proses menulis ke file log yang sama dan Latensi dalam membaca konten file yang diperbarui di instans ECS.
-
Kinerja pemasangan: Jika Anda mengonfigurasi parameter
securityContext.fsgroupdi aplikasi Anda, kubelet menjalankanchmodatauchownsecara rekursif setelah volume dipasang, sehingga waktu startup Pod meningkat secara signifikan.Untuk mengoptimalkan kinerja pemasangan, lihat FAQ volume NAS.
Metode 1: Pasang volume menggunakan subpath
Dalam metode ini, CSI provisioner secara otomatis membuat subpath khusus dalam sistem file NAS untuk setiap PersistentVolumeClaim (PVC). Subpath ini berfungsi sebagai PersistentVolume (PV).
-
Versi plug-in CSI harus 1.31.4 atau lebih baru. Untuk meningkatkan plug-in, lihat Tingkatkan plug-in CSI.
-
Anda telah membuat sistem file NAS dan memiliki titik pemasangan-nya.
1. Buat StorageClass
StorageClass bertindak sebagai templat untuk menyediakan volume dinamis dan mendefinisikan sumber serta perilaku sumber daya penyimpanan.
kubectl
-
Buat file bernama
alicloud-nas-subpath.yamldengan konten berikut:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: # Nama StorageClass, yang harus unik dalam kluster. name: alicloud-nas-subpath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: # Setel ke subpath. volumeAs: subpath # Format bidang server adalah <nas-server-address>:/<path>. server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s" archiveOnDelete: "true" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain allowVolumeExpansion: trueParameter
Deskripsi
mountOptionsOpsi pemasangan untuk NAS, termasuk versi protokol NFS. Secara default, volume dipasang menggunakan NFSv3. Anda dapat menentukan versi berbeda dengan opsi seperti
vers=4.0. Untuk informasi tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat Protokol NFS.parameters.volumeAsMode penyediaan volume. Setel ke
subpath.parameters.serverTitik pemasangan NAS dan subpath yang akan dipasang, dalam format
<nas-server-address>:/<path>.-
<nas-server-address>: Titik pemasangan sistem file NAS. Untuk informasi selengkapnya, lihat Mengelola titik pemasangan. -
:/<path>: Subpath NAS yang akan dipasang. Jika parameter ini tidak disetel atau subpath yang ditentukan tidak ada, direktori root dipasang secara default.-
NAS tujuan umum: Direktori root adalah
/. -
NAS Extreme: Direktori root adalah
/share. Saat Anda memasang subpath,pathharus dimulai dengan/share, seperti/share/data.
-
parameters.archiveOnDeleteMenentukan apakah data pada penyimpanan backend dihapus saat PVC dihapus dan
reclaimPolicy-nya disetel keDelete.Opsi ini berfungsi sebagai tindakan pencegahan untuk mencegah kehilangan data secara tidak sengaja pada penyimpanan NAS bersama.
-
true(default): Direktori dan file-nya tidak dihapus. Sebaliknya, direktori tersebut diarsipkan dan diganti namanya dalam formatarchived-{pvName}.{timestamp}. -
false: Direktori yang sesuai dan datanya dihapus secara permanen.Operasi ini menghapus subpath NAS dan file-nya, bukan sistem file NAS itu sendiri.
Untuk menghapus sistem file NAS, lihat Hapus sistem file.
Dalam skenario di mana PV sering dibuat dan dihapus, menyetel parameter ini ke
falsedapat menyebabkan antrian tugas controller CSI menjadi terblokir, sehingga mencegah pembuatan PV baru. Untuk informasi selengkapnya, lihat Antrian tugas controller penuh dan PV baru tidak dapat dibuat saat Anda menggunakan volume NAS dinamis.provisionerDriver. Setel parameter ini ke
nasplugin.csi.alibabacloud.comsaat Anda menggunakan plug-in CSI NAS Alibaba Cloud.reclaimPolicyKebijakan reclaim PV.
-
Delete(default): Saat PVC dihapus, data penyimpanan backend diproses berdasarkan pengaturanarchiveOnDelete. -
Retain: Saat PVC dihapus, PV dan data dalam sistem file NAS tidak dihapus dan harus dihapus secara manual. Kebijakan ini direkomendasikan untuk skenario yang memerlukan keamanan data tinggi untuk mencegah kehilangan data secara tidak sengaja.
allowVolumeExpansionHanya didukung oleh NAS tujuan umum.
Mengizinkan ekspansi dinamis PV yang dibuat oleh StorageClass ini dengan memodifikasi kapasitas PVC.
StorageClass ini menggunakan fitur kuota direktori NAS untuk mengelola kapasitas PV, sehingga memungkinkan kontrol ukuran yang tepat. Anda dapat memperluas volume secara online dengan mengedit bidang
spec.resources.requests.storagedari PVC. Untuk informasi selengkapnya, lihat Setel kuota direktori untuk volume NAS dinamis.Kuota direktori NAS berlaku secara asinkron. Jika Anda melakukan penulisan data berkecepatan tinggi dan volume besar segera setelah PV dibuat atau diperluas, Anda mungkin melebihi kapasitas yang ditentukan karena kuota belum sepenuhnya diberlakukan. Untuk informasi selengkapnya, lihat Batasan penggunaan.
-
-
Buat StorageClass.
kubectl create -f alicloud-nas-subpath.yaml
Konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Klik Create, tentukan nama unik untuk StorageClass dalam kluster, pilih NAS sebagai PV Type, lalu ikuti petunjuk di layar untuk membuat StorageClass.
Parameter utama dijelaskan dalam tabel berikut.
Parameter
Deskripsi
Select Mount Target
Titik pemasangan sistem file NAS.
Volume Mode
Mode penyediaan volume. Pilih Subdirectory. Subpath dibuat secara otomatis di bawah path pemasangan yang ditentukan. Data disimpan di
<Titik pemasangan NAS>:<path pemasangan>/<nama-pv>/.Mount Path
Subdirektori NAS yang akan dipasang. Jika parameter ini tidak ditentukan, direktori root dipasang secara default.
Jika direktori tersebut tidak ada dalam sistem file NAS, direktori tersebut dibuat secara otomatis lalu dipasang.
-
NAS tujuan umum: Direktori root adalah
/. -
NAS Extreme: Direktori root adalah
/share. Saat Anda memasang subdirektori,pathharus dimulai dengan/share, seperti/share/data.
Kebijakan Pengambilan Kembali
Kebijakan reclaim PV.
-
Delete(default): Saat PVC dihapus, data penyimpanan backend diproses berdasarkan pengaturanarchiveOnDelete. -
Retain: Saat PVC dihapus, PV dan data dalam sistem file NAS tidak dihapus dan harus dihapus secara manual. Kebijakan ini direkomendasikan untuk skenario yang memerlukan keamanan data tinggi untuk mencegah kehilangan data secara tidak sengaja.
Opsi Pemasangan
Opsi pemasangan untuk NAS, termasuk versi protokol NFS. Secara default, volume dipasang menggunakan NFSv3. Anda dapat menentukan versi berbeda dengan opsi seperti
vers=4.0. Untuk informasi tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat Protokol NFS.Setelah StorageClass dibuat, Anda dapat melihatnya di daftar StorageClasses.
-
2. Buat PVC
PersistentVolumeClaim (PVC) adalah permintaan penyimpanan dari aplikasi yang memicu StorageClass terkait untuk secara dinamis menyediakan dan mengikat PersistentVolume (PV) yang sesuai.
kubectl
-
Buat file bernama
nas-pvc.yamldengan konten berikut:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc spec: accessModes: - ReadWriteMany # Tentukan StorageClass yang akan digunakan. storageClassName: alicloud-nas-subpath resources: requests: # Deklarasikan kapasitas yang dibutuhkan untuk volume penyimpanan. storage: 20GiParameter
Deskripsi
accessModesMode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai read-write oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai read-write oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
storageClassNameNama StorageClass yang akan digunakan.
storageKapasitas yang dibutuhkan untuk volume penyimpanan. Secara default, deklarasi ini berfungsi sebagai permintaan sumber daya dan tidak membatasi ruang penyimpanan aktual yang tersedia untuk pod.
Batas kapasitas sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum dan NAS Extreme.
Namun, ketika
allowVolumeExpansiondalam StorageClass disetel ketrue, nilai ini menjadi batas keras yang diberlakukan secara ketat. Plug-in CSI menyetel kuota direktori NAS berdasarkan konfigurasi ini untuk membatasi kapasitas PV yang tersedia. -
-
Buat PVC.
kubectl create -f nas-pvc.yaml -
Periksa PV.
kubectl get pvOutput yang diharapkan mirip dengan berikut, yang menunjukkan bahwa StorageClass secara otomatis menyediakan PersistentVolume (PV) dan mengikatnya ke PVC.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-a7540d97-0f53-4e05-b7d9-557309****** 20Gi RWX Retain Bound default/nas-csi-pvc alicloud-nas-subpath <unset> 5m
Konsol
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Di halaman Persistent Volume Claims, klik Create, konfigurasikan parameter PVC, lalu klik Create.
Parameter
Deskripsi
PVC Type
Pilih NAS.
Nama
Nama PVC. Nama harus unik dalam namespace.
Allocation Mode
Pilih Use StorageClass.
Existing Storage Class
Klik Select Storage Class dan pilih StorageClass yang telah Anda buat.
Kapasitas Total
Kapasitas yang dibutuhkan untuk volume penyimpanan. Secara default, deklarasi ini berfungsi sebagai permintaan sumber daya dan tidak membatasi ruang penyimpanan aktual yang tersedia untuk pod.
Batas kapasitas sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum dan NAS Extreme.
Namun, ketika
allowVolumeExpansiondalam StorageClass disetel ketrue, nilai ini menjadi batas keras yang diberlakukan secara ketat. Plug-in CSI menyetel kuota direktori NAS berdasarkan konfigurasi ini untuk membatasi kapasitas PV yang tersedia.Access Mode
Mode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai read-write oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai read-write oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
-
3. Buat aplikasi dan pasang NAS
Setelah PVC dibuat, Anda dapat memasang volume ke aplikasi. Bagian ini menunjukkan cara membuat dua Deployment yang mereferensikan PVC yang sama, sehingga memungkinkan beberapa pod berbagi subpath NAS yang sama.
kubectl
Buat dua Deployment yang mereferensikan PVC yang sama agar keduanya dapat berbagi subpath yang sama dari sistem file NAS.
Untuk memasang subpath berbeda dari sistem file NAS yang sama ke pod berbeda, Anda harus membuat StorageClass unik dan PVC yang sesuai untuk setiap subpath.
-
Buat dua file bernama
nginx-1.yamldannginx-2.yamldengan konten berikut.Konfigurasi kedua aplikasi hampir identik. Keduanya mereferensikan PVC yang sama.
-
-
Buat dua Deployment tersebut.
kubectl create -f nginx-1.yaml -f nginx-2.yaml -
Periksa status pod.
kubectl get pod -l app=nginxOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-test-1-b75d5b6bc-***** 1/1 Running 0 51s nas-test-2-b75d5b6bc-***** 1/1 Running 0 44s -
Periksa setiap pod untuk memverifikasi bahwa pod tersebut menggunakan PersistentVolumeClaim (PVC) yang benar.
Ganti
<namaPod>dengan nama aktual setiap pod.kubectl describe pod <namaPod> | grep "ClaimName:"Dalam output yang diharapkan, kedua pod menggunakan PVC yang sama, yang mengonfirmasi bahwa keduanya berbagi subpath yang sama dari sistem file NAS.
Konsol
Ulangi langkah-langkah berikut untuk membuat dua Deployment yang menggunakan PVC yang sama, sehingga memungkinkan keduanya berbagi subpath yang sama dari sistem file NAS.
Di halaman Kluster ACK, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Klik Create from Image dan ikuti petunjuk di layar untuk mengonfigurasi dan membuat aplikasi.
Parameter utama dijelaskan di bawah ini. Anda dapat mempertahankan nilai default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Buat aplikasi tanpa status (Deployment).
Bagian
Parameter
Deskripsi
Basic Information
Replicas:
Jumlah replica untuk Deployment.
Container
Image
Alamat image yang digunakan untuk menyebar aplikasi.
Required Resources
Sumber daya vCPU dan memori yang dibutuhkan oleh container.
Volumes
Klik Add PVC, lalu konfigurasikan parameter-parameter tersebut.
-
Mount Source: Pilih PVC yang telah Anda buat.
-
Container Path: Masukkan path dalam container tempat sistem file NAS akan dipasang.
Setelah deployment selesai, Anda dapat mengklik nama aplikasi di halaman Deployments dan memeriksa tab Pods untuk mengonfirmasi bahwa pod berjalan dengan baik (statusnya Running).
-
Untuk memverifikasi bahwa penyimpanan bersifat bersama dan persisten, lihat Verifikasi penyimpanan bersama dan persisten.
Metode 2: Pasang menggunakan mode sharepath
Dalam mode ini, saat PV dibuat untuk PVC yang menggunakan StorageClass ini, provisioner tidak membuat direktori baru. Sebaliknya, semua PV menggunakan path yang didefinisikan dalam StorageClass, sehingga memetakan setiap PV ke direktori NAS yang sama.
1. Buat StorageClass
StorageClass bertindak sebagai templat untuk menyediakan volume dinamis dan mendefinisikan sumber serta perilaku sumber daya penyimpanan.
kubectl
-
Buat file bernama alicloud-nas-sharepath.yaml dengan konten berikut.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-sharepath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: sharepath # Format bidang server adalah <nas-server-address>:/<path> server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: RetainParameter
Deskripsi
mountOptionsOpsi pemasangan untuk NAS, termasuk versi protokol NFS. Secara default, volume dipasang menggunakan NFSv3. Anda dapat menentukan versi berbeda dengan opsi seperti
vers=4.0. Untuk informasi tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat Protokol NFS.parameters.volumeAsMode penyediaan volume. Setel ke
sharepath.parameters.serverTitik pemasangan NAS dan subpath yang akan dipasang, dalam format
<nas-server-address>:/<path>.-
<nas-server-address>: Titik pemasangan sistem file NAS. Untuk informasi selengkapnya, lihat Mengelola titik pemasangan. -
:/<path>: Subpath NAS yang akan dipasang. Jika parameter ini tidak disetel atau subpath yang ditentukan tidak ada, direktori root dipasang secara default.-
NAS tujuan umum: Direktori root adalah
/. -
NAS Extreme: Direktori root adalah
/share. Saat Anda memasang subpath,pathharus dimulai dengan/share, seperti/share/data.
-
provisionerDriver. Setel parameter ini ke
nasplugin.csi.alibabacloud.comsaat Anda menggunakan plug-in CSI NAS Alibaba Cloud.reclaimPolicyKebijakan reclaim untuk PV. Untuk mode
sharepath, ini harus diatur ke Retain. -
-
Buat StorageClass.
kubectl create -f alicloud-nas-sharepath.yaml
Konsol
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Klik Create, tentukan nama unik untuk StorageClass, dan pilih NAS sebagai PV Type.
Parameter
Deskripsi
Select Mount Target
Titik pemasangan sistem file NAS.
Volume Mode
Mode penyediaan volume. Dalam contoh ini, pilih Shared Directory, yang mengaktifkan mode sharepath.
Mount Path
Subdirektori NAS yang akan dipasang. Jika parameter ini tidak ditentukan, direktori root dipasang secara default.
Jika direktori tersebut tidak ada dalam sistem file NAS, direktori tersebut dibuat secara otomatis lalu dipasang.
-
NAS tujuan umum: Direktori root adalah
/. -
NAS Extreme: Direktori root adalah
/share. Saat Anda memasang subdirektori,pathharus dimulai dengan/share, seperti/share/data.
Kebijakan reclaim
Untuk mode
sharepath, ini harus diatur ke Retain.Opsi pemasangan
Opsi pemasangan untuk NAS, termasuk versi protokol NFS. Secara default, volume dipasang menggunakan NFSv3. Anda dapat menentukan versi berbeda dengan opsi seperti
vers=4.0. Untuk informasi tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat Protokol NFS. -
2. Buat PVC
PersistentVolumeClaim (PVC) adalah permintaan penyimpanan dari aplikasi yang memicu StorageClass terkait untuk secara dinamis menyediakan dan mengikat PersistentVolume (PV) yang sesuai.
Untuk mengaktifkan berbagi data lintas namespace, Anda akan membuat PVC dengan nama yang sama di dua namespace berbeda. Meskipun PVC tersebut memiliki nama yang sama, mereka merupakan sumber daya yang berbeda karena berada di namespace yang berbeda. StorageClass menyediakan PV terpisah untuk setiap PVC, dan kedua PV tersebut mengarah ke direktori bersama yang sama pada sistem file NAS.
kubectl
-
Buat dua namespace,
ns1danns2.kubectl create ns ns1 kubectl create ns ns2 -
Buat file bernama pvc.yaml dengan konten berikut untuk membuat PVC dengan nama yang sama di namespace
ns1danns2.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns1 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns2 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20GiParameter
Deskripsi
accessModesMode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai read-write oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai read-write oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
storageClassNameNama StorageClass yang akan digunakan.
storageKapasitas yang dibutuhkan untuk volume penyimpanan. Secara default, deklarasi ini berfungsi sebagai permintaan sumber daya dan tidak membatasi ruang penyimpanan aktual yang tersedia untuk pod.
Batas kapasitas sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum dan NAS Extreme.
Namun, ketika
allowVolumeExpansiondalam StorageClass disetel ketrue, nilai ini menjadi batas keras yang diberlakukan secara ketat. Plug-in CSI menyetel kuota direktori NAS berdasarkan konfigurasi ini untuk membatasi kapasitas PV yang tersedia. -
-
Buat PVC.
kubectl create -f pvc.yaml -
Periksa status PV untuk mengonfirmasi bahwa PV telah dibuat secara otomatis dan diikat ke PVC.
kubectl get pvOutput yang diharapkan mirip dengan berikut. Status kedua PV adalah
Bound, dan kolomCLAIMmenunjukkan bahwa setiap PV diikat ke PVC di namespace berbeda (ns1/nas-csi-pvcdanns2/nas-csi-pvc).NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-0b448885-6226-4d22-8a5b-d0768c****** 20Gi RWX Retain Bound ns1/nas-csi-pvc alicloud-nas-sharepath <unset> 74s nas-bcd21c93-8219-4a11-986b-fd934a****** 20Gi RWX Retain Bound ns2/nas-csi-pvc alicloud-nas-sharepath <unset> 74s
Konsol
-
Buat namespace.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Namespaces and Quotas.
-
Klik Launch dan ikuti petunjuk di layar untuk membuat namespace
ns1danns2.
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Di namespace
ns1, buat klaim penyimpanan.Di halaman Persistent Volume Claims, pilih
ns1dari daftar dropdown Namespace dan ikuti petunjuk di layar untuk membuat PVC.Parameter
Deskripsi
PVC Type
Pilih NAS.
Nama
Nama PVC. Nama harus unik dalam namespace.
Allocation Mode
Pilih Use StorageClass.
Existing Storage Class
Klik Select Storage Class dan pilih StorageClass yang telah Anda buat.
Kapasitas
Kapasitas yang dibutuhkan untuk volume penyimpanan. Secara default, deklarasi ini berfungsi sebagai permintaan sumber daya dan tidak membatasi ruang penyimpanan aktual yang tersedia untuk pod.
Batas kapasitas sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi selengkapnya, lihat NAS tujuan umum dan NAS Extreme.
Namun, ketika
allowVolumeExpansiondalam StorageClass disetel ketrue, nilai ini menjadi batas keras yang diberlakukan secara ketat. Plug-in CSI menyetel kuota direktori NAS berdasarkan konfigurasi ini untuk membatasi kapasitas PV yang tersedia.Access Mode
Mode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai read-write oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai read-write oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
-
-
Ikuti langkah sebelumnya untuk membuat PVC lain di namespace
ns2.Setelah pembuatan, kembali ke halaman Persistent Volume Claims. Di namespace
ns1danns2, konfirmasi bahwa kedua PVC diikat ke PV yang dibuat secara otomatis.
3. Buat aplikasi dan pasang NAS
Setelah PVC dibuat, Anda dapat memasang PV yang terikat ke aplikasi Anda. Di bagian ini, Anda akan membuat aplikasi di masing-masing namespace dan memasang PVC yang sesuai. Konfigurasi ini memungkinkan kedua aplikasi berbagi subdirektori NAS yang didefinisikan dalam StorageClass.
kubectl
-
Buat dua file bernama
nginx-ns1.yamldannginx-ns2.yamldengan konten berikut.Konfigurasi kedua aplikasi hampir identik. Masing-masing mengikat ke PVC di namespace-nya.
-
-
Buat dua Deployment tersebut.
kubectl create -f nginx-ns1.yaml -f nginx-ns2.yaml -
Periksa status Pod.
kubectl get pod -A -l app=nginxOutput yang diharapkan:
NAMESPACE NAME READY STATUS RESTARTS AGE ns1 nas-test-b75d5b6bc-***** 1/1 Running 0 2m19s ns2 nas-test-b75d5b6bc-***** 1/1 Running 0 2m11s -
Periksa konfigurasi detail Pod untuk mengonfirmasi pemasangan PVC.
Ganti
<nama-namespace>dan<nama-pod>dengan namespace dan nama Pod yang sebenarnya.kubectl describe pod -n <nama-namespace> <nama-pod> | grep "ClaimName:"Dalam output yang diharapkan, dua Pod tersebut memasang
ns1/nas-csi-pvcdanns2/nas-csi-pvcmasing-masing.
Konsol
Di halaman Kluster ACK, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di namespace
ns1, buat Deployment dan pasang PVC yang sesuai.-
Pilih Namespace dari daftar dropdown Namespace dan klik Create from Image.
-
Ikuti petunjuk di layar untuk membuat aplikasi.
Parameter utama dijelaskan di bawah ini. Biarkan parameter lainnya pada nilai defaultnya. Untuk informasi selengkapnya, lihat Buat beban kerja tanpa status (Deployment).
Bagian
Parameter
Deskripsi
Basic Information
Replicas:
Jumlah replica dari Deployment.
Container
Image
Alamat image yang digunakan untuk menyebar aplikasi.
Required Resources
Sumber daya vCPU dan memori yang dibutuhkan.
Volumes
Klik Add PVC dan konfigurasikan parameter-parameter tersebut.
-
Mount Source: Pilih PVC yang telah Anda buat.
-
Container Path: Masukkan path di dalam container tempat sistem file NAS akan dipasang, misalnya /data.
-
-
-
Ikuti langkah sebelumnya untuk membuat Deployment lain di namespace
ns2dan pasang PVC yang sesuai.Kembali ke halaman Deployments. Di namespace
ns1danns2, periksa status setiap Deployment untuk mengonfirmasi bahwa Pod berjalan dan telah memasang PVC yang benar.
Untuk memverifikasi hasilnya, lihat Verifikasi penyimpanan bersama dan persisten.
Metode 3: Pasang volume dalam mode filesystem
Mode filesystem memungkinkan Anda membuat dan mengelola sistem file NAS dan titik pemasangan khusus untuk aplikasi secara dinamis. Berbeda dengan mode sharepath, setiap PV yang dibuat dalam mode filesystem sesuai dengan instance sistem file NAS terpisah.
Setiap PV jenis filesystem sesuai dengan sistem file NAS khusus dan satu titik pemasangan.
-
Secara default, saat Anda menghapus PV jenis
filesystem, sistem file NAS dan titik pemasangan yang sesuai dipertahankan. Untuk menghapus sistem file NAS dan titik pemasangan secara otomatis saat PV dihapus, tambahkan parameter berikut ke StorageClass:-
reclaimPolicy: Delete -
parameters.deleteVolume: "true"
-
-
Saat menggunakan kluster khusus ACK, berikan izin yang diperlukan kepada csi-provisioner.
1. Buat StorageClass
2. Buat PVC
3. Buat aplikasi dan pasang NAS
Verifikasi penyimpanan bersama dan persisten
Setelah Anda berhasil men-deploy aplikasi, Anda dapat memverifikasi bahwa volume penyimpanan berfungsi sebagaimana mestinya. Bagian ini menggunakan mode subpath untuk membuat nas-test-1 dan nas-test-2 sebagai contoh verifikasi.
|
Penyimpanan bersama |
Penyimpanan persisten |
|
Untuk memverifikasi penyimpanan bersama, buat file di satu Pod lalu lihat di Pod lain.
|
Untuk memverifikasi penyimpanan persisten, restart Deployment dan periksa apakah data masih ada di sistem file Pod baru.
|
Untuk lingkungan produksi
-
Keamanan dan perlindungan data
-
Gunakan kebijakan reclaim Retain: Setel
reclaimPolicyStorageClass Anda keRetain. Ini mencegah kehilangan data jika PVC dihapus secara tidak sengaja. -
Gunakan grup izin untuk kontrol akses: NAS menggunakan grup izin untuk mengelola akses jaringan. Ikuti prinsip hak istimewa minimal: tambahkan hanya alamat IP pribadi node kluster atau blok CIDR vSwitch-nya ke grup izin. Hindari izin yang terlalu luas, seperti
0.0.0.0/0.
-
-
Optimalisasi kinerja dan biaya
-
Pilih jenis NAS yang sesuai: Lihat Pemilihan sistem file untuk memilih jenis NAS yang memenuhi kebutuhan IOPS dan throughput aplikasi Anda.
-
Optimalkan opsi pemasangan (
mountOptions): Sesuaikan parameter pemasangan NFS berdasarkan karakteristik workload Anda. Misalnya, menggunakan versi protokol sepertivers=4.0atauvers=4.1dapat meningkatkan kinerja dan kemampuan penguncian file dalam beberapa skenario. Untuk workload dengan I/O file skala besar, uji nilairsizedanwsizeberbeda untuk mengoptimalkan throughput baca dan tulis.
-
-
Operasi dan keandalan
-
Konfigurasikan pemeriksaan kesehatan: Konfigurasikan pemeriksaan kelangsungan hidup untuk pod aplikasi Anda untuk memverifikasi bahwa titik pemasangan dalam kondisi sehat. Jika titik pemasangan menjadi tidak responsif, ACK secara otomatis merestart pod, yang memicu pemasangan ulang volume penyimpanan.
-
Siapkan pemantauan dan peringatan: Gunakan pemantauan penyimpanan kontainer untuk mengonfigurasi peringatan guna segera mendeteksi masalah volume penyimpanan atau hambatan kinerja.
-
Rilis sumber daya
Untuk menghindari biaya tak terduga, rilis sumber daya terkait dalam urutan berikut saat volume penyimpanan NAS tidak lagi diperlukan.
-
Hapus beban kerja
-
Tindakan: Hapus semua beban kerja (seperti Deployment dan StatefulSet) yang menggunakan volume penyimpanan NAS. Ini mencegah pod aplikasi memasang, membaca dari, atau menulis ke volume tersebut.
-
Contoh perintah:
kubectl delete deployment <nama-deployment-anda>
-
-
Hapus PVC
-
Tindakan: Hapus PVC yang terkait dengan beban kerja. Setelah PVC dihapus, perilaku PV yang terikat dan NAS backend bergantung pada
reclaimPolicyyang didefinisikan dalam StorageClass yang sesuai.-
Mode subpath
-
Jika
reclaimPolicyadalahRetain: Setelah PVC dihapus, PV yang terikat memasuki statusReleased. Objek PV dan subdirektori serta data yang sesuai di NAS backend dipertahankan dan harus dihapus secara manual. -
Jika
reclaimPolicyadalahDelete: Setelah PVC dihapus, PV yang terikat dihapus secara otomatis. Penanganan subdirektori NAS backend bergantung pada parameterarchiveOnDelete:-
Jika
archiveOnDeleteadalah"true": Data backend tidak dihapus tetapi diganti nama dan diarsipkan sebagaiarchived-{pvName}.{timestamp}. -
Jika
archiveOnDeleteadalah"false": Subdirektori PV yang sesuai di NAS backend dan semua datanya dihapus secara permanen. Lakukan dengan hati-hati.
Dalam kluster ACK Serverless, karena batasan izin, meskipun
reclaimPolicy: Deletedikonfigurasi, direktori dan data NAS backend tidak dihapus atau diarsipkan. Hanya objek PV yang dihapus. -
-
-
Mode sharepath
Mode ini hanya mendukung
reclaimPolicyRetain. Setelah PVC dihapus, PV yang terikat memasuki statusReleased. Objek PV, direktori bersama backend, dan semua data dipertahankan. -
Mode filesystem
-
Jika
reclaimPolicyadalahRetain: Setelah PVC dihapus, PV yang terikat memasuki statusReleased. Objek PV, sistem file NAS backend yang dibuat secara dinamis, dan titik pemasangan semuanya dipertahankan. -
Jika
reclaimPolicyadalahDelete: Setelah PVC dihapus, PV yang terikat dihapus secara otomatis. Penanganan sistem file NAS backend bergantung pada parameterdeleteVolume:-
Jika
deleteVolumeadalah"false": Sistem file NAS backend dan titik pemasangan dipertahankan dan harus dihapus secara manual. -
Jika
deleteVolumeadalah"true": Sistem file NAS backend dan titik pemasangan dihapus secara otomatis. Lakukan dengan hati-hati.
-
-
-
-
Contoh perintah:
kubectl delete pvc <nama-pvc-anda>
-
-
Hapus PV
-
Tindakan: Anda dapat menghapus PV saat berada dalam status
AvailableatauReleased. Tindakan ini hanya menghapus definisi PV dari kluster Kubernetes tetapi tidak menghapus data apa pun dari sistem file NAS backend. -
Contoh perintah:
kubectl delete pv <nama-pv-anda>
-
-
Hapus sistem file NAS backend (opsional)
-
Mode
subpathdansharepath: Lihat Hapus sistem file. Operasi ini menghapus semua data di NAS secara permanen, dan data tidak dapat dipulihkan. Lakukan dengan hati-hati. Sebelum melakukan operasi ini, Anda harus memastikan bahwa NAS tidak memiliki dependensi bisnis. -
Mode
filesystem: Jika sistem file NAS backend tidak dihapus secara otomatis saat Anda menghapus PVC, lihat Hapus sistem file untuk menemukan dan menghapus sistem file yang sesuai secara manual.
-
Dokumen terkait
-
Jika Anda mengalami masalah saat memasang atau menggunakan volume penyimpanan NAS, lihat dokumen berikut untuk troubleshooting.
-
Anda dapat menggunakan CNFS untuk mengelola sistem file NAS secara independen guna meningkatkan kinerja dan kontrol QoS. Untuk instruksi detail, lihat Kelola sistem file NAS menggunakan CNFS.
-
Volume penyimpanan NAS yang dipasang menggunakan subpath mendukung kuota direktori. Untuk informasi selengkapnya, lihat Setel kuota direktori untuk volume penyimpanan NAS dinamis.