Volume NAS menyediakan persistensi data—mencegah kehilangan data saat Pod dibuat ulang—dan memungkinkan berbagi data melalui akses baca-tulis simultan oleh beberapa Pod. Container Service for Kubernetes (ACK) memungkinkan Anda memasang sistem file NAS yang sudah ada ke workload sebagai volume persisten statis.
-
Volume statis: Anda harus membuat PersistentVolume (PV) terlebih dahulu untuk merepresentasikan sumber daya penyimpanan yang sudah ada, seperti sistem file NAS. Aplikasi kemudian membuat PersistentVolumeClaim (PVC) untuk meminta penyimpanan, dan sistem mengikat PVC tersebut ke PV yang telah disediakan sebelumnya. Ini merupakan metode umum untuk mengelola sumber daya penyimpanan yang sudah ada. Namun, PVC yang terikat tidak mendukung ekspansi online secara default.
Untuk menggunakan ekspansi volume otomatis, lihat Gunakan volume NAS dinamis atau Gunakan CNFS untuk memperluas volume NAS secara otomatis.
-
Volume dinamis: Anda tidak perlu membuat PV terlebih dahulu. Saat aplikasi membuat PVC, sistem secara otomatis menyediakan volume baru beserta PV-nya sesuai permintaan, berdasarkan StorageClass yang ditentukan dalam PVC. Pendekatan ini lebih fleksibel dan mendukung ekspansi volume.
Alur kerja
Diagram ini menunjukkan alur kerja untuk memasang volume penyimpanan NAS statis di kluster ACK.
|
|
|
Prasyarat
-
Komponen csi-plugin dan csi-provisioner telah dipasang.
Komponen CSI dipasang secara default. Pastikan komponen tersebut tetap aktif. Anda dapat memeriksa status pemasangannya di halaman . Kami merekomendasikan memperbarui komponen CSI ke versi terbaru.
-
Sistem file NAS Anda harus memenuhi kondisi berikut. Jika tidak, buat sistem file atau gunakan volume NAS yang disediakan secara dinamis.
NAS memiliki batasan pada konektivitas pemasangan, jumlah sistem file, dan jenis protokol.
-
Protocol Type: Harus NFS.
-
VPC: Sistem file NAS harus berada di VPC yang sama dengan kluster. NAS mendukung pemasangan lintas zona ketersediaan, tetapi tidak mendukung pemasangan lintas-VPC.
-
Mount Target: Tambahkan titik pemasangan di VPC yang sama dengan kluster. Statusnya harus Available. Untuk detailnya, lihat Kelola titik pemasangan. Catat alamat titik pemasangannya.
-
(Opsional) Encryption Type: Untuk mengenkripsi data volume, konfigurasikan jenis enkripsi saat membuat sistem file NAS.
-
Catatan penggunaan
-
Jangan menghapus titik pemasangan: Untuk mencegah error I/O pada node, jangan hapus titik pemasangan di konsol NAS selama volumenya sedang digunakan.
-
Tulisan konkuren: NAS menyediakan penyimpanan bersama. Saat beberapa Pod memasang volume yang sama, aplikasi Anda harus menangani potensi masalah konsistensi data akibat tulisan konkuren.
Untuk informasi lebih lanjut tentang batasan tulisan konkuren ke NAS, lihat Beberapa proses menulis ke file log yang sama dan Latensi dalam membaca konten file yang diperbarui di berbagai instance ECS.
-
Kinerja pemasangan: Jika Anda mengonfigurasi parameter
securityContext.fsgroupdi aplikasi Anda, kubelet menjalankan perintahchmodatauchownsecara rekursif setelah volume dipasang, sehingga waktu startup Pod meningkat secara signifikan.Untuk mengoptimalkan kinerja pemasangan, lihat FAQ volume NAS.
Langkah 1: Buat PersistentVolume
Buat PersistentVolume (PV) agar sistem file NAS yang sudah ada tersedia di kluster Anda.
Kubectl
-
Buat file bernama
pv-nas.yamldengan konten berikut.apiVersion: v1 kind: PersistentVolume metadata: # Nama PV, yang harus unik di dalam kluster. name: pv-nas # Label PV, digunakan untuk pencocokan dengan PVC. labels: alicloud-pvname: pv-nas spec: capacity: # Kapasitas ini hanya untuk tujuan pencocokan. Kapasitas aktual ditentukan oleh sistem file NAS. storage: 5Gi accessModes: - ReadWriteMany # Kebijakan reclaim untuk PV. persistentVolumeReclaimPolicy: Retain csi: # Driver. Nilai ini tetap saat Anda menggunakan volume NAS. driver: nasplugin.csi.alibabacloud.com # Harus sama dengan metadata.name. volumeHandle: pv-nas volumeAttributes: server: "0c47****-mpk25.cn-shenzhen.nas.aliyuncs.com" # Ganti nilai ini dengan alamat titik pemasangan NAS Anda. # Subdirektori NAS yang akan dipasang. Jika subdirektori tidak ada, akan dibuat secara otomatis. path: "/csi" mountOptions: - nolock,tcp,noresvport - vers=3Parameter
Deskripsi
storageKapasitas PV. Nilai ini hanya digunakan untuk pencocokan dengan PersistentVolumeClaim (PVC) dan tidak membatasi kapasitas aktual yang tersedia. Kapasitas penyimpanan yang tersedia untuk aplikasi Anda dibatasi oleh total kapasitas sistem file NAS.
Kapasitas maksimum sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi lebih lanjut, lihat General-purpose NAS dan Extreme NAS.
accessModesMode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai baca-tulis oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai baca-tulis oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
persistentVolumeReclaimPolicyKebijakan reclaim untuk PV. Kebijakan ini menentukan apa yang terjadi pada PV dan data backend NAS ketika PersistentVolumeClaim (PVC) yang terikat dihapus.
-
Retain(Direkomendasikan): Setelah PVC dihapus, PV masuk ke statusReleased. Data backend NAS dipertahankan dan harus dihapus secara manual. -
Delete: Menghapus PV saat PVC terkait dihapus. Kebijakan ini memerlukanarchiveOnDelete. Namun, PV statis tidak mendukungarchiveOnDelete. Oleh karena itu, ketika kebijakan ini diatur keDelete, menghapus PVC tidak menghapus PV atau file di sistem file NAS.Untuk mengonfigurasi
archiveOnDelete, lihat Gunakan volume NAS yang disediakan secara dinamis.
driverDriver. Atur parameter ini ke
nasplugin.csi.alibabacloud.comsaat Anda menggunakan plug-in CSI Alibaba Cloud NAS.volumeHandleIdentifikasi unik untuk volume di sistem penyimpanan backend. Nilai ini harus sama dengan nama PV (
metadata.name). Jika Anda menggunakan beberapa PV, nilai ini harus unik untuk setiap PV.serverAlamat titik pemasangan NAS.
Untuk menemukan alamat titik pemasangan, lihat Kelola titik pemasangan.
pathSubdirektori NAS yang akan dipasang. Jika parameter ini tidak ditentukan, direktori root dipasang secara default.
Jika direktori tidak ada di sistem file NAS, direktori tersebut akan dibuat secara otomatis lalu dipasang.
-
General-purpose NAS: Direktori root adalah
/. -
Extreme NAS: Direktori root adalah
/share. Saat Anda memasang subdirektori,pathharus dimulai dengan/share, seperti/share/data.
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. -
-
Buat PV.
kubectl create -f pv-nas.yaml -
Periksa status dan properti PV.
kubectl get pvOutput yang diharapkan:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pv-nas 5Gi RWX Retain Available <unset> 25sOutput menunjukkan bahwa PV berhasil dibuat dengan kapasitas 5 Gi dan memiliki status
Available, artinya belum terikat ke PersistentVolumeClaim (PVC).
Konsol
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Persistent Volumes, klik Create. Di kotak dialog yang muncul, konfigurasikan parameter lalu klik Create.
Parameter
Deskripsi
PV Type
Pilih NAS.
Volume Name:
Nama PV, yang harus unik di dalam kluster.
Capacity
Kapasitas PV. Nilai ini hanya digunakan untuk pencocokan dengan PersistentVolumeClaim (PVC) dan tidak membatasi kapasitas aktual yang tersedia. Kapasitas penyimpanan yang tersedia untuk aplikasi Anda dibatasi oleh total kapasitas sistem file NAS.
Kapasitas maksimum sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi lebih lanjut, lihat General-purpose NAS dan Extreme NAS.
Access Mode
Konfigurasikan mode akses. Nilai yang valid:
-
ReadWriteMany: Volume dapat dipasang sebagai baca-tulis oleh beberapa node.
-
ReadWriteOnce: Volume dapat dipasang sebagai baca-tulis oleh satu node.
Enable CNFS
Menentukan apakah akan menggunakan Container Network File System (CNFS) untuk menggunakan fiturnya dalam O&M otomatis, akselerasi cache, dan pemantauan kinerja.
Untuk menggunakan CNFS dalam mengelola sistem file NAS yang sudah ada, lihat Buat sistem file NAS yang dikelola CNFS (Direkomendasikan).
Mount Target Domain Name:
Parameter ini hanya ditampilkan saat CNFS dinonaktifkan.
Alamat titik pemasangan NAS.
Untuk mendapatkan alamatnya, lihat Kelola titik pemasangan.
-
Select Mount Target: Pilih alamat titik pemasangan yang telah ditambahkan sebelumnya.
-
Custom: Gunakan nama domain kustom sebagai alamat pemasangan. Pastikan nama domain kustom tersebut mengarah ke titik pemasangan NAS target.
Advanced Options (Optional)
Mount Path
Subdirektori NAS yang akan dipasang. Jika parameter ini tidak ditentukan, direktori root dipasang secara default.
Jika direktori tidak ada di sistem file NAS, direktori tersebut akan dibuat secara otomatis lalu dipasang.
-
General-purpose NAS: Direktori root adalah
/. -
Extreme NAS: Direktori root adalah
/share. Saat Anda memasang subdirektori,pathharus dimulai dengan/share, seperti/share/data.
Reclaim Policy
-
Retain (default): Saat PVC dihapus, PV dan file NAS tidak dihapus. Anda harus menghapusnya secara manual.
-
Delete: Menghapus PV saat PVC terkait dihapus. Kebijakan ini memerlukan
archiveOnDelete. Namun, PV statis tidak mendukungarchiveOnDelete. Oleh karena itu, saat kebijakan ini diatur keDelete, menghapus PVC tidak menghapus PV atau file di sistem file NAS.Untuk mengonfigurasi
archiveOnDelete, lihat Gunakan volume NAS yang disediakan secara dinamis.
Mount Options
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.Labels
Label yang diterapkan ke PV.
Setelah PV dibuat, Anda dapat melihatnya di halaman Persistent Volumes.
-
Langkah 2: Buat PVC
Buat PersistentVolumeClaim (PVC) untuk meminta penyimpanan persisten bagi aplikasi Anda.
kubectl
-
Buat file bernama
pvc-nas.yamluntuk mengikat ke PV yang telah dibuat sebelumnya.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-nas # Nama PVC, yang harus unik dalam namespace. spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-nas # Mencocokkan PV yang dibuat sebelumnya berdasarkan labelnya.Parameter
Deskripsi
accessModesMode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai baca-tulis oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai baca-tulis oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
storageNilai ini digunakan untuk menemukan PV yang cocok dan tidak membatasi kapasitas penyimpanan aktual.
Kapasitas maksimum sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi lebih lanjut, lihat General-purpose NAS dan Extreme NAS.
matchLabelsMenentukan label yang digunakan untuk memilih PV untuk pengikatan.
-
-
Buat PVC.
kubectl create -f pvc-nas.yaml -
Periksa status PVC.
kubectl get pvcOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-nas Bound pv-nas 5Gi RWX <unset> 5sOutput menunjukkan bahwa PVC pvc-nas terikat ke PV pv-nas dan siap digunakan oleh aplikasi.
Konsol
Di panel navigasi kiri halaman manajemen kluster, pilih .
-
Di halaman Persistent Volume Claims, klik Create dan konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut.
Parameter
Deskripsi
PVC Type
Pilih NAS.
Name
Nama PVC, yang harus unik dalam namespace.
Allocation Mode
Pilih Existing Persistent Volume.
Topik ini menggunakan PV yang dibuat pada langkah sebelumnya. Jika Anda belum membuat PV, Anda dapat mengatur Allocation Mode ke Create PV.
Existing Volumes
Pilih PV yang telah dibuat sebelumnya.
Capacity
Nilai ini digunakan untuk menemukan PV yang cocok dan tidak membatasi kapasitas penyimpanan aktual.
Kapasitas maksimum sistem file NAS ditentukan oleh spesifikasinya. Untuk informasi lebih lanjut, lihat General-purpose NAS dan Extreme NAS.
Access Mode
Mode akses. Nilai yang valid:
-
ReadWriteMany(default): Volume dapat dipasang sebagai baca-tulis oleh banyak node. -
ReadWriteOnce: Volume dapat dipasang sebagai baca-tulis oleh satu node. -
ReadOnlyMany: Volume dapat dipasang sebagai read-only oleh banyak node.
-
Langkah 3: Buat aplikasi dan pasang NAS
Setelah membuat PVC, Anda dapat memasang PV yang terikat di aplikasi.
kubectl
-
Buat file bernama
deploy.yamldengan konten berikut. Manifes ini merujuk ke PVC yang telah Anda buat sebelumnya.Pengaturan ini memungkinkan Anda memverifikasi fitur penyimpanan bersama NAS.
-
Buat Deployment.
kubectl create -f deploy.yaml -
Periksa status Pod.
kubectl get pod -l app=nginxOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-test-****-***a 1/1 Running 0 32s nas-test-****-***b 1/1 Running 0 32s
Konsol
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Deployments, klik Create from Image dan konfigurasikan parameter aplikasi.
Tabel berikut menjelaskan parameter utama. Anda dapat mempertahankan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat workload tanpa status (Deployment).
Kategori
Parameter
Deskripsi
Basic Information
Application Name
Nama Deployment.
Replicas:
Jumlah replika untuk Deployment.
Pengaturan ini memungkinkan Anda memverifikasi fitur penyimpanan bersama NAS.
Container
Image Name
Alamat gambar aplikasi.
Required Resources
Sumber daya vCPU dan memori yang diperlukan.
Volume
Klik Add PVC dan konfigurasikan parameter.
-
Mount Source: Pilih PVC yang telah Anda buat sebelumnya.
-
Container Path: Jalur dalam kontainer untuk memasang sistem file NAS, seperti
/data.
Setelah deployment selesai, buka halaman Deployments dan klik nama aplikasi. Di tab Pods, verifikasi bahwa Pod berada dalam status Running.
-
Verifikasi penyimpanan bersama dan persisten
Setelah men-deploy aplikasi, verifikasi bahwa volume berfungsi sesuai harapan.
|
Penyimpanan bersama |
Penyimpanan persisten |
|
Untuk memverifikasi penyimpanan bersama, buat file di satu Pod lalu periksa keberadaannya di Pod lain.
|
Untuk memverifikasi penyimpanan persisten, restart Deployment dan periksa apakah data tetap ada di Pod baru.
|
Kesiapan produksi
-
Keamanan dan manajemen akses
-
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.
-
-
Optimasi 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 berbagai nilairsizedanwsizeuntuk mengoptimalkan throughput baca dan tulis.
-
-
Operasi dan keandalan
-
Konfigurasikan pemeriksaan kesehatan: Konfigurasikan liveness probe untuk Pod aplikasi Anda guna memverifikasi bahwa titik pemasangan dalam kondisi sehat. Jika titik pemasangan menjadi tidak responsif, ACK secara otomatis me-restart Pod, memicu pemasangan ulang volume penyimpanan.
-
Siapkan pemantauan dan peringatan: Gunakan pemantauan penyimpanan kontainer untuk mengonfigurasi peringatan guna mendeteksi masalah volume penyimpanan atau bottleneck kinerja secara cepat.
-
Gunakan kebijakan reclaim
Retain: Untuk data produksi, aturpersistentVolumeReclaimPolicyuntuk PV keRetain. Hal ini mencegah kehilangan data secara tidak sengaja pada sistem file NAS backend saat PVC terkait dihapus.
-
Lepaskan sumber daya
Untuk menghindari biaya tak terduga, lepaskan sumber daya dalam urutan berikut saat Anda tidak lagi memerlukan volume NAS.
-
Hapus workload
-
Hapus semua aplikasi, seperti Deployment dan StatefulSet, yang menggunakan volume NAS. Tindakan ini melepas pemasangan volume dari Pod dan menghentikan semua akses baca-tulis.
-
Contoh perintah:
kubectl delete deployment <nama-deployment-anda>
-
-
Hapus PVC
-
Hapus PVC yang terkait dengan aplikasi. Setelah PVC dihapus, apa yang terjadi pada PV yang terikat bergantung pada
persistentVolumeReclaimPolicy-nya. -
Kebijakan reclaim:
-
Retain(direkomendasikan): Setelah PVC dihapus, PV yang terikat masuk ke statusReleased. Objek PV dan data pada sistem file NAS backend dipertahankan. Anda harus menghapusnya secara manual. -
Delete: Setelah PVC dihapus, objek PV terkait juga dihapus. Perhatikan hal berikut:-
Jika PV mengarah ke direktori root sistem file NAS, data pada sistem file tersebut dipertahankan untuk mencegah penghapusan tidak sengaja.
-
Jika
volumeHandledari PV statis merupakan akhiran daripath-nya (misalnya, jikavolumeHandleadalahappdanpathadalah/exports/app), menghapus PVC memicu penghapusan otomatis subdirektori pada sistem file NAS backend. Gunakan fitur ini dengan hati-hati.
-
-
-
Contoh perintah:
kubectl delete pvc <nama-pvc-anda>
-
-
Hapus PV
-
Anda dapat menghapus PV saat statusnya
AvailableatauReleased. Tindakan ini hanya menghapus definisi PV dari kluster Kubernetes tetapi tidak menghapus data pada sistem file NAS backend. -
Contoh perintah:
kubectl delete pv <nama-pv-anda>
-
-
Hapus sistem file NAS backend (opsional)
-
Lihat Hapus sistem file. Tindakan ini menghapus permanen semua data pada sistem file NAS dan tidak dapat dikembalikan. Sebelum melanjutkan, pastikan tidak ada workload yang bergantung pada sistem file tersebut.
-
Referensi
-
Jika Anda mengalami masalah saat memasang atau menggunakan volume NAS, lihat dokumen berikut:
-
CNFS memungkinkan Anda mengelola sistem file NAS secara independen untuk meningkatkan kinerja dan menyediakan kontrol QoS. Untuk informasi lebih lanjut, lihat Mengelola sistem file NAS dengan CNFS.