Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai objek Kubernetes native yang dapat dibuat dan digunakan secara deklaratif. Fitur ini menyediakan volume persisten yang sederhana dan efisien untuk beban kerja seperti situs web dan analitik data, serta mendukung berbagai kasus penggunaan seperti berbagi dan isolasi data.
Prasyarat
Diperlukan kluster ACK Pro managed versi 1.20 atau lebih baru. Untuk meningkatkan kluster, lihat Tingkatkan kluster secara manual.
Manajemen kubectl terhadap CNFS memerlukan versi 1.20 atau lebih baru.
Diperlukan versi add-on penyimpanan berikut. Untuk meningkatkan 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.
Layanan File Storage NAS harus diaktifkan. Batasan berikut berlaku untuk sistem file NAS. Untuk informasi selengkapnya, lihat Batasan.
Hanya sistem file NAS tujuan umum tipe Capacity, Performance, dan Premium yang didukung; NAS Extreme tidak didukung.
Terdapat batas maksimum jumlah sistem file NAS yang dapat dibuat per akun dalam satu wilayah.
Untuk menggunakan enkripsi KMS pada sistem file NAS, aktifkan layanan KMS. Untuk informasi selengkapnya, lihat Aktifkan Key Management Service.
Buat sistem file NAS
Buat dan gunakan sistem file NAS
Sebelum memulai, pilih cara menyediakan sistem file NAS untuk kluster Anda.
Metode | Deskripsi | Metode penyediaan volume | Kasus penggunaan |
CNFS secara otomatis membuat dan mengelola sistem file NAS dengan konfigurasi tetap untuk pemasangan cepat. | dynamic volume |
| |
CNFS membuat sistem file NAS baru yang dapat dikustomisasi berdasarkan parameter yang Anda tentukan. |
| Saat Anda memiliki kebutuhan spesifik terkait performa, enkripsi, atau biaya, atau memerlukan manajemen penyimpanan detail halus. | |
CNFS mengintegrasikan sistem file NAS yang sudah ada untuk manajemen terpusat. |
| Untuk mengintegrasikan sistem file NAS yang sudah ada ke dalam kluster Anda. |
Metode 1: Membuat sistem file NAS secara otomatis
Anda dapat menggunakan Container Network File System (CNFS) untuk membuat sistem file NAS secara otomatis dengan konfigurasi default. CNFS membuat sistem file berdasarkan lingkungan kluster Anda. Secara default, sistem file tersebut tidak dienkripsi. Jika NAS Capacity tidak didukung di wilayah saat ini, sistem file NAS Performance akan dibuat sebagai gantinya.
Setelah Anda membuat resource CNFS dan StorageClass, beban kerja Anda dapat meminta penyimpanan dengan menggunakan PersistentVolumeClaim (PVC). Hal ini secara dinamis membuat PersistentVolume (PV) pada sistem file NAS dan memasangnya ke Pod.
kubectl
1. Buat CNFS Buat objek |
|
2. Buat StorageClass Buat objek | |
3. Buat PVC Aplikasi meminta volume dengan menggunakan 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 CNFS |
|
2. Buat StorageClass |
|
3. Buat PVC |
|
4. Buat aplikasi dan pasang sistem file NAS | Saat membuat Deployment atau StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer. Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Metode 2: Buat sistem file NAS kustom
Gunakan Container Network File System (CNFS) untuk membuat sistem file NAS dengan parameter kustom.
Definisikan resource
ContainerNetworkFileSystemuntuk menyediakan sistem file NAS baru.Buat sistem file tersebut tersedia untuk aplikasi dalam kluster dengan membuat volume persisten statis (PV) atau StorageClass dinamis.
kubectl
1. Buat sistem file NAS kustom Buat objek |
|
2. Buat PV atau StorageClass Setelah membuat CNFS, pilih cara aplikasi Anda terhubung dan menggunakan sistem file NAS.
| Static PVUntuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis. Dynamic StorageClassUntuk informasi selengkapnya tentang parameter StorageClass, lihat Gunakan volume NAS dinamis. |
3. Buat PVC Buat klaim volume persisten (PVC) yang mereferensikan sistem file NAS berdasarkan volume persisten statis atau StorageClass dinamis yang telah Anda buat sebelumnya. | Static PVDynamic StorageClass |
4. Buat aplikasi dan pasang sistem file NAS Setelah klaim volume persisten (PVC) dibuat, pasang PV yang terikat ke aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
StorageClass
|
|
|
| Saat membuat Deployment atau StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer. Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Metode 3: Gunakan sistem file NAS yang sudah ada
Gunakan CNFS untuk menghubungkan sistem file NAS yang sudah ada ke kluster Anda, sehingga tersedia untuk aplikasi.
kubectl
1. Buat CNFS untuk sistem file NAS yang sudah ada Buat resource |
|
2. Buat PV atau StorageClass Setelah membuat CNFS, pilih cara aplikasi Anda terhubung dan menggunakan sistem file NAS.
| Static PVUntuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis. Dynamic StorageClassUntuk informasi selengkapnya tentang parameter StorageClass, lihat Gunakan volume NAS dinamis. |
3. Buat PVC Buat klaim volume persisten (PVC) yang mereferensikan sistem file NAS berdasarkan volume persisten statis atau StorageClass dinamis yang telah Anda buat sebelumnya. | Static PVDynamic StorageClass |
4. Buat aplikasi dan pasang sistem file NAS Setelah klaim volume persisten (PVC) dibuat, pasang PV yang terikat ke aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
StorageClass
|
|
|
| Saat membuat Deployment atau StatefulSet, Anda dapat memasang PVC ke kontainer di bagian Volumes pada halaman Container. Contoh berikut menunjukkan cara memasang sistem file NAS yang dibuat menggunakan CNFS ke path /data dalam kontainer. Detail konfigurasi: Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Konfigurasi penyimpanan bersama dan terisolasi
Setelah membuat sistem file NAS, Anda dapat mengonfigurasinya untuk penyimpanan bersama atau terisolasi sesuai kebutuhan aplikasi Anda.
Konfigurasi volume NAS bersama
Untuk berbagi data antar Pod, pasang direktori yang sama dari sistem file NAS ke beberapa Pod sebagai volume bersama.
Cara kerja: Metode ini menggunakan volume statis.
pathyang ditentukan dalam PersistentVolume (PV) adalah direktori persis yang dipasang oleh driver CSI. Saat beberapa Pod memasang PV ini menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya mengakses direktori yang sama, sehingga memungkinkan berbagi data.Konfigurasi utama: Di bagian
volumestemplat Pod workload Anda (.spec.template), atur parameterpersistentVolumeClaim.claimNameke nama PVC yang sama.
1. Buat PV dan PVC yang mengarah ke direktori tertentu | |
2. Buat Deployment contoh | |
3. Verifikasi hasil |
Konfigurasi volume NAS terisolasi
Untuk kasus penggunaan yang memerlukan isolasi data, seperti multi-tenancy, Anda dapat menyediakan setiap Pod atau kelompok Pod dengan direktori penyimpanan khusus.
Cara kerja: Metode ini menggunakan volume dinamis. Driver CSI secara otomatis membuat subdirektori khusus dengan nama yang sama seperti PV di bawah
pathyang ditentukan sebagai titik pemasangan. Karena setiap PVC terikat ke subdirektori terpisah, hal ini memastikan isolasi data.Konfigurasi utama:
Di bagian
parametersStorageClass Anda, pastikanvolumeAs: subpathdiatur. Pengaturan ini (yang merupakan default) membuat subdirektori khusus untuk setiap permintaan PVC.Dalam definisi StatefulSet, gunakan bagian
volumeClaimTemplatesuntuk secara otomatis membuat dan mengikat PVC unik untuk setiap Pod.
1. Buat StorageClass untuk pembuatan subdirektori dinamis | |
2. Buat StatefulSet contoh | |
3. Verifikasi hasil |
Rekomendasi produksi
Keamanan data
Enkripsi data: Saat membuat sistem file NAS baru, atur
encryptType: SSE-KMSdi bagianparametersobjek CNFS. Hal ini mengaktifkan enkripsi sisi server dan meningkatkan keamanan data.Proteksi data dan kebijakan pemulihan:
reclaimPolicyuntuk objek CNFS selaluRetain, yang berarti menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan pemulihan untuk PV ditentukan oleh StorageClass-nya. Untuk lingkungan produksi, atur kebijakan pemulihan keRetainuntuk mencegah kehilangan data yang tidak disengaja.Keranjang daur ulang: Saat membuat sistem file NAS, aktifkan Keranjang daur ulang dengan mengatur
enableTrashCan: "true"untuk mencegah penghapusan data yang tidak disengaja.Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, hindari beberapa instans aplikasi menulis ke file yang sama di tingkat aplikasi. Hal ini mencegah korupsi file akibat penulisan konkuren.
Operasi dan manajemen
Isolasi performa: Volume penyimpanan terisolasi hanya menyediakan isolasi di tingkat data. Semua volume terisolasi berbagi IOPS dan throughput dari instans NAS backend yang sama. Untuk aplikasi inti dengan kebutuhan performa I/O ketat dan latensi stabil, sediakan sistem file NAS khusus.
Manajemen kapasitas: Atur
allowVolumeExpansion: truedi StorageClass Anda untuk mengizinkan ekspansi kuota direktori volume penyimpanan.Nilai
requests.storagedalam PVC terutama digunakan untuk keputusan penjadwalan dan tidak menetapkan kuota keras pada seluruh sistem file NAS.Monitoring dan peringatan: Gunakan Container Storage Monitoring untuk mengonfigurasi peringatan untuk metrik utama seperti pemanfaatan kapasitas, IOPS, dan throughput sistem file NAS Anda. Hal ini membantu Anda segera mengidentifikasi hambatan kapasitas atau performa.
Optimasi biaya
Pilih tipe penyimpanan yang tepat: Pilih tipe NAS berdasarkan kebutuhan biaya dan performa Anda. Untuk panduan, lihat Pilih tipe NAS. Misalnya, NAS Capacity adalah opsi berbiaya lebih rendah yang cocok untuk tugas yang tidak sensitif terhadap latensi seperti berbagi file atau pengarsipan.
Lepaskan resource segera: Setelah menghentikan aplikasi, lepaskan semua resource yang tidak digunakan. Juga, hapus sistem file NAS backend jika tidak lagi diperlukan untuk menghindari biaya tak terduga.
Referensi
Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten
Setelah sistem file NAS dipasang, verifikasi bahwa penyimpanan berperilaku sesuai harapan.
Verifikasi penyimpanan bersama dan persisten untuk deployment
Verifikasi isolasi data dan penyimpanan persisten untuk StatefulSet
CNFS YAML
Jalankan kubectl get cnfs/<cnfsName> -o yaml untuk melihat konfigurasi lengkap dan status real-time objek CNFS.
Bagian ini memberikan contoh menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml di Metode 2 untuk melihat YAML cnfs-nas-filesystem.
Contoh YAML
Parameter
Pembersihan resource
Untuk menghindari biaya tak terduga dan memastikan keamanan data, ikuti langkah-langkah berikut untuk melepaskan resource yang tidak lagi digunakan.
Hapus workload
Aksi: Hapus semua aplikasi yang menggunakan PVC terkait, seperti deployment dan StatefulSet. Tindakan ini menghentikan pod dan melepas volume.
Perintah contoh:
kubectl delete deployment <NAMA-DEPLOYMENT-ANDA>
Hapus PVC
Aksi: Hapus PVC yang terkait dengan aplikasi. Hasil penghapusan PV bergantung pada kebijakan pemulihan (
reclaimPolicy).Retain(Direkomendasikan): Setelah Anda menghapus PVC, data dan direktori di NAS backend sepenuhnya dipertahankan.Delete: Saat PVC dihapus, PV yang terikat juga dihapus. Data dan direktori di NAS backend akan ditangani berdasarkan pengaturan parameterarchiveOnDeletediStorageClass."true"(default): Direktori atau file tidak benar-benar dihapus. Sebaliknya, namanya diubah menjadiarchived-{pvName}.{timestamp}."false": Data dihapus secara permanen. Operasi ini tidak dapat dikembalikan. Gunakan dengan hati-hati.
Perintah contoh:
kubectl delete pvc <NAMA-PVC-ANDA>
Hapus PV
Operasi: Hapus PV. Operasi ini terutama untuk PV statis atau PV yang berada dalam status
Releasedsetelah kebijakanRetaindigunakan pada langkah sebelumnya.Tindakan ini hanya menghapus definisi resource dari Kubernetes. Tindakan ini tidak menghapus data di NAS backend.
Perintah contoh:
kubectl delete pv <NAMA-PV-ANDA>
Hapus definisi penyimpanan Kubernetes (Opsional)
Aksi: Hapus objek StorageClass dan CNFS yang tidak lagi diperlukan.
Tindakan ini hanya menghapus definisi resource dari Kubernetes. Tindakan ini tidak menghapus data di NAS backend.
Perintah contoh:
kubectl delete sc <NAMA-STORAGECLASS-ANDA>dankubectl delete cnfs <NAMA-CNFS-ANDA>
Hapus sistem file NAS backend
Aksi: Lihat Hapus sistem file. Tindakan yang tidak dapat dikembalikan ini menghapus semua data di NAS secara permanen. Gunakan dengan sangat hati-hati. Sebelum melanjutkan, pastikan tidak ada layanan lain yang bergantung pada sistem file NAS ini.