Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai sumber daya native Kubernetes. Gunakan pendekatan deklaratif untuk membuat, mengadopsi, dan memasang penyimpanan NAS bagi beban kerja seperti situs web dan analitik data, dengan dukungan fleksibel untuk berbagi data dan isolasi.
Prasyarat
Anda memiliki kluster ACK Pro yang menjalankan versi 1.20 atau lebih baru. Untuk memperbarui kluster Anda, lihat Memperbarui kluster ACK secara manual.
CNFS mendukung versi 1.20 saat digunakan dengan kubectl.
Pastikan komponen penyimpanan memenuhi persyaratan versi berikut. Untuk memperbarui komponen, lihat Komponen.
csi-plugin dan csi-provisioner: v1.24.11-5221f79-aliyun atau lebih baru.
storage-operator: v1.26.2-1de13b6-aliyun atau lebih baru.
Anda telah mengaktifkan Apsara File Storage NAS. Batasan berikut berlaku untuk sistem file NAS. Untuk informasi selengkapnya, lihat Batasan.
Hanya tipe penyimpanan Capacity, Performance, dan Extreme dari General-purpose NAS yang didukung. Extreme Speed NAS tidak didukung.
Jumlah sistem file NAS yang dapat Anda buat per akun dalam satu wilayah dibatasi.
Untuk menggunakan enkripsi KMS pada sistem file NAS Anda, Anda harus mengaktifkan Key Management Service (KMS). Untuk informasi selengkapnya, lihat Membeli instans KMS khusus.
Buat sistem file NAS
Metode menambahkan sistem file NAS
Pilih cara menambahkan sistem file NAS ke kluster Anda.
Metode | Deskripsi | Mode penyediaan volume | Kasus penggunaan |
Metode 1: Secara otomatis membuat dan menggunakan sistem file NAS | CNFS secara otomatis membuat dan mengelola sistem file NAS dengan konfigurasi tetap untuk pemasangan cepat. | Volume dinamis |
|
Metode 2: Membuat dan menggunakan sistem file NAS dengan parameter kustom | CNFS membuat sistem file NAS baru yang dapat dikustomisasi berdasarkan parameter yang Anda tentukan. |
| Ideal untuk kasus penggunaan dengan kebutuhan spesifik terkait performa, enkripsi, atau biaya, atau yang memerlukan kontrol penyimpanan detail halus. |
Metode 3: Mengadopsi dan menggunakan sistem file NAS yang sudah ada | CNFS mengadopsi sistem file NAS yang sudah ada untuk pengelolaan terpadu. |
| Untuk mengintegrasikan sistem file NAS yang sudah ada ke dalam kluster Anda secara mulus. |
Metode 1: Secara otomatis membuat dan menggunakan sistem file NAS
CNFS secara otomatis membuat sistem file NAS dengan konfigurasi default berdasarkan lingkungan kluster Anda. Enkripsi dinonaktifkan secara default. Jika Capacity NAS tidak tersedia di wilayah saat ini, Performance NAS akan digunakan sebagai gantinya.
Setelah Anda membuat resource CNFS dan StorageClass, beban kerja dapat meminta penyimpanan melalui PersistentVolumeClaim (PVC), yang secara dinamis menyediakan PersistentVolume (PV) pada sistem file NAS dan memasangnya ke pod.
kubectl
1. Buat resource CNFS Buat objek |
|
2. Buat StorageClass Buat objek | |
3. Buat PersistentVolumeClaim Aplikasi meminta volume penyimpanan menggunakan PersistentVolumeClaim (PVC) dan mereferensikan StorageClass sebagai templat konfigurasinya. | |
4. Buat aplikasi dan pasang PVC Setelah PVC dibuat, deploy aplikasi contoh, seperti Deployment atau StatefulSet, dan pasang PV yang terikat ke PVC ke aplikasi. |
|
5. Verifikasi hasil |
|
Konsol
1. Buat resource CNFS |
|
2. Buat StorageClass |
|
3. Buat PersistentVolumeClaim |
|
4. Buat aplikasi dan pasang volume NAS | Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer. Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan |
Metode 2: Membuat dan menggunakan sistem file NAS kustom
Gunakan CNFS untuk membuat sistem file NAS dengan parameter kustom.
Definisikan resource
ContainerNetworkFileSystemuntuk menyediakan sistem file NAS baru.Buat sistem file tersebut tersedia untuk aplikasi di kluster Anda dengan membuat volume persisten statis atau kelas penyimpanan.
kubectl
1. Buat sistem file NAS kustom Buat objek |
|
2. Buat volume persisten atau kelas penyimpanan Setelah Anda membuat resource CNFS, pilih cara aplikasi akan mengakses sistem file NAS.
| Penyediaan statisUntuk informasi selengkapnya tentang parameter volume persisten, lihat Menggunakan volume NAS statis. Penyediaan dinamisUntuk informasi selengkapnya tentang parameter kelas penyimpanan, lihat Menggunakan volume NAS dinamis. |
3. Buat klaim volume persisten Buat klaim volume persisten yang menggunakan volume persisten statis atau kelas penyimpanan yang telah Anda buat. | Penyediaan statisPenyediaan dinamis |
4. Buat aplikasi dan pasang sistem file NAS Setelah klaim volume persisten dibuat, pasang di aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
Kelas penyimpanan
|
|
|
| Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer. Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan |
Metode 3: Menggunakan sistem file NAS yang sudah ada
Gunakan CNFS untuk mengadopsi sistem file NAS yang sudah ada ke dalam kluster Anda sehingga aplikasi dapat memasang dan mengaksesnya.
kubectl
1. Buat resource CNFS dari sistem file NAS yang sudah ada Buat resource |
|
2. Buat volume persisten atau kelas penyimpanan Setelah Anda membuat resource CNFS, pilih cara aplikasi akan mengakses sistem file NAS.
| Penyediaan statisUntuk informasi selengkapnya tentang parameter volume persisten, lihat Menggunakan volume NAS statis. Penyediaan dinamisUntuk informasi selengkapnya tentang parameter kelas penyimpanan, lihat Menggunakan volume NAS dinamis. |
3. Buat klaim volume persisten Buat klaim volume persisten yang menggunakan volume persisten statis atau kelas penyimpanan yang telah Anda buat. | Penyediaan statisPenyediaan dinamis |
4. Buat aplikasi dan pasang sistem file NAS Setelah klaim volume persisten dibuat, pasang di aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
Kelas penyimpanan
|
|
|
| Saat Anda membuat Deployment atau membuat StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh ini menunjukkan cara memasang PVC ke path /data di kontainer. Untuk Volume Type, pilih Cloud Volume. Untuk Mount Source, pilih cnfs-nas-pvc. Untuk Container Path, masukkan |
Mengonfigurasi penyimpanan bersama dan terisolasi
Setelah Anda membuat atau mengintegrasikan sistem file NAS, konfigurasikan untuk berbagi data atau isolasi data sesuai kebutuhan beban kerja Anda.
Konfigurasikan volume NAS bersama
Untuk berbagi data antar pod, pasang direktori yang sama dari sistem file NAS ke beberapa pod.
Mekanisme inti: Metode ini menggunakan volume penyimpanan statis. Di volume persisten (PV),
pathyang dideklarasikan identik dengan path akhir yang dipasang oleh Container Storage Interface (CSI). Oleh karena itu, saat beberapa pod memasang PV statis ini menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya mengakses direktori penyimpanan yang sama, memungkinkan berbagi data.Konfigurasi utama: Di templat pod (
.spec.template) beban kerja Anda, atur parameterpersistentVolumeClaim.claimNamedi bawah fieldvolumeske nama PVC yang sama.
1. Buat PV dan PVC yang mengarah ke direktori tertentu | |
2. Buat deployment contoh | |
3. Verifikasi hasil |
Konfigurasikan volume NAS terisolasi
Untuk mencapai isolasi data untuk skenario seperti multi-tenancy, Anda dapat menyediakan direktori penyimpanan independen dan terisolasi untuk setiap pod atau kelompok pod.
Mekanisme inti: Metode ini menggunakan volume penyimpanan dinamis. Di kelas penyimpanan, driver CSI secara otomatis membuat subdirektori terpisah dengan nama yang sama seperti PV di bawah
pathyang dideklarasikan. Subdirektori ini berfungsi sebagai titik pemasangan. Akibatnya, setiap PVC terikat ke direktori penyimpanan terpisah, memungkinkan isolasi data.Konfigurasi utama:
Di kelas penyimpanan yang terkait dengan statefulset, gunakan parameter
volumeAs: subpath(nilai default) di bawahparametersuntuk membuat subdirektori terisolasi untuk setiap permintaan PVC.Di statefulset, definisikan
volumeClaimTemplatesuntuk secara otomatis membuat dan mengikat PVC terpisah untuk setiap pod.
1. Buat kelas penyimpanan yang mendukung subdirektori dinamis | |
2. Buat statefulset contoh | |
3. Verifikasi hasil |
Rekomendasi untuk lingkungan produksi
Keamanan data
Enkripsi data: Saat membuat sistem file NAS baru, atur
parameterskeencryptType: SSE-KMSdi CNFS untuk mengaktifkan enkripsi data saat diam di server NAS dan meningkatkan keamanan data.Proteksi data dan kebijakan pemulihan:
reclaimPolicyuntuk CNFS tetapRetain. Menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan pemulihan PV ditentukan oleh StorageClass-nya. Di lingkungan produksi, kami merekomendasikan agar Anda mengatur kebijakan keRetainuntuk mencegah penghapusan yang tidak disengaja.Fitur keranjang daur ulang: Saat membuat NAS, kami merekomendasikan agar Anda mengaktifkan fitur keranjang daur ulang dengan parameter
enableTrashCan: "true"untuk mencegah penghapusan yang tidak disengaja.Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, rancang aplikasi Anda untuk mencegah penulisan konkuren ke file yang sama, yang dapat menyebabkan korupsi data.
Operasi dan manajemen
Isolasi performa: Meskipun volume penyimpanan terisolasi memberikan isolasi tingkat data, semuanya berbagi IOPS dan throughput dari instans NAS backend yang sama. Untuk aplikasi inti yang memerlukan performa I/O ketat dan latensi stabil, sediakan sistem file NAS khusus.
Manajemen kapasitas: Atur
allowVolumeExpansion: truedi StorageClass untuk memperluas kuota direktori volume penyimpanan.Nilai
requests.storagedi PVC terutama digunakan untuk keputusan penjadwalan dan bukan batas kuota untuk seluruh sistem file NAS.Pemantauan dan peringatan: Gunakan pemantauan penyimpanan kontainer untuk mengonfigurasi peringatan untuk metrik utama seperti utilisasi kapasitas, IOPS, dan throughput untuk secara proaktif mengidentifikasi hambatan kapasitas atau performa.
Optimasi biaya
Pilih tipe penyimpanan yang tepat: Pilih tipe NAS berdasarkan kebutuhan biaya dan performa Anda. Untuk panduan, lihat Memilih tipe NAS. Misalnya, Capacity NAS menawarkan harga lebih rendah dan cocok untuk beban kerja berbagi file atau arsip yang tidak memerlukan latensi rendah.
Lepaskan resource segera: Saat aplikasi dihentikan, bersihkan resource yang tidak digunakan. Konfirmasi apakah Anda perlu menghapus sistem file NAS backend untuk menghindari biaya yang tidak perlu.
Referensi
Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten
Setelah memasang sistem file NAS, ikuti langkah-langkah berikut untuk memverifikasi bahwa penyimpanan berfungsi sesuai harapan.
Verifikasi penyimpanan bersama dan persisten untuk deployment
Verifikasi isolasi data dan penyimpanan persisten untuk StatefulSet
CNFS YAML
Jalankan perintah kubectl get cnfs/<cnfsName> -o yaml untuk melihat konfigurasi lengkap dan status real-time objek CNFS.
Bagian ini memberikan contoh output dari menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml untuk skenario yang dijelaskan di Metode 2.
Contoh YAML
Parameter
Pembersihan resource
Untuk menghindari biaya tak terduga dan memastikan keamanan data, ikuti langkah-langkah berikut untuk melepaskan resource yang tidak lagi Anda butuhkan.
Hapus beban kerja
Aksi: Hapus semua aplikasi yang menggunakan PVC terkait, seperti deployment dan StatefulSets. Tindakan ini menghentikan pod dan melepas volume penyimpanan.
Perintah contoh:
kubectl delete deployment <your-deployment-name>
Hapus PVC
Aksi: Hapus PVC yang terkait dengan aplikasi. Hasil penghapusan PV bergantung pada
reclaimPolicy.Retain(direkomendasikan): Setelah Anda menghapus PVC, data dan direktori di NAS backend dipertahankan.Delete: Setelah Anda menghapus PVC, PV yang terikat juga dihapus. Cara NAS backend menangani data dan direktori bergantung pada parameterarchiveOnDeletediStorageClass."true"(default): Alih-alih dihapus, direktori dan file diganti namanya menjadiarchived-{pvName}.{timestamp}."false": Data dihapus secara permanen. Tindakan ini tidak dapat dibatalkan. Gunakan pengaturan ini dengan hati-hati.
Perintah contoh:
kubectl delete pvc <your-pvc-name>
Hapus PV
Aksi: Hapus PV. Langkah ini terutama berlaku untuk PV yang disediakan secara statis atau PV yang berada dalam status
Releasedkarena kebijakan pemulihannya diatur keRetain.Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data NAS backend.
Perintah contoh:
kubectl delete pv <your-pv-name>
Hapus definisi penyimpanan Kubernetes (Opsional)
Aksi: Hapus objek StorageClass dan CNFS jika tidak lagi diperlukan.
Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data NAS backend.
Perintah contoh:
kubectl delete sc <your-storageclass-name>,kubectl delete cnfs <your-cnfs-name>
Hapus sistem file NAS backend
Aksi: Lihat Menghapus sistem file. Tindakan ini menghapus semua data di NAS secara permanen dan tidak dapat dibatalkan. Lakukan dengan hati-hati. Sebelum melakukan tindakan ini, pastikan tidak ada beban kerja yang bergantung pada NAS ini.