Container Network File System (CNFS) memungkinkan Anda mengelola sistem file NAS sebagai resource native Kubernetes. Dengan CNFS, Anda dapat membuat, mengelola, dan menggunakan NAS secara deklaratif. CNFS menyediakan volume persisten yang sederhana dan efisien untuk beban kerja seperti situs web dan analitik data, serta mendukung berbagai skenario bisnis, termasuk berbagi data dan isolasi.
Prasyarat
Anda harus memiliki kluster ACK Pro managed versi 1.20 atau lebih baru. Jika perlu melakukan upgrade kluster, lihat Upgrade kluster secara manual.
Jika Anda menggunakan kubectl untuk mengelola CNFS, kluster harus berada pada versi 1.20 atau lebih baru.
Komponen penyimpanan harus memenuhi persyaratan versi berikut. Jika perlu melakukan upgrade komponen, lihat Mengelola 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 NAS Capacity, NAS Performance, dan tipe Advanced yang didukung. NAS Extreme tidak didukung.
Setiap akun memiliki batas jumlah sistem file NAS yang dapat dibuat dalam satu wilayah.
Untuk mengenkripsi sistem file NAS dengan KMS, Anda harus mengaktifkan layanan KMS. Untuk informasi selengkapnya, lihat Aktifkan Key Management Service.
Membuat sistem file NAS
Buat dan sambungkan sistem file NAS
Sebelum memulai, pilih metode provisioning sistem file NAS untuk kluster Anda.
Metode | Deskripsi | Metode provisioning volume | Kasus Penggunaan |
CNFS secara otomatis membuat dan mengelola sistem file NAS dengan konfigurasi yang telah ditentukan untuk pemasangan cepat. | dynamic volume |
| |
CNFS membuat sistem file NAS yang sepenuhnya dapat dikustomisasi berdasarkan parameter yang Anda tentukan. |
| Ideal untuk skenario yang memerlukan konfigurasi spesifik untuk performa, enkripsi, atau biaya, atau kontrol detail halus terhadap penyimpanan. | |
Metode 3: Mengelola dan menggunakan sistem file NAS yang sudah ada | Mengintegrasikan sistem file NAS yang sudah ada ke dalam CNFS untuk pengelolaan terpusat. |
| Ideal untuk mengintegrasikan sistem file NAS yang sudah ada ke dalam kluster Anda secara mulus. |
Metode 1: Membuat sistem file NAS secara otomatis
Gunakan Container Network File System (CNFS) untuk membuat sistem file NAS secara otomatis dengan konfigurasi default. CNFS membuat sistem file berdasarkan lingkungan kluster, dan Enkripsi dinonaktifkan secara default. Jika NAS Capacity tidak didukung di wilayah saat ini, CNFS secara otomatis membuat sistem file NAS Performance sebagai gantinya.
Setelah membuat resource CNFS dan StorageClass, beban kerja dapat meminta penyimpanan menggunakan Persistent Volume Claim (PVC). Ini akan membuat PersistentVolume (PV) secara dinamis pada sistem file NAS dan memasangnya ke Pod.
kubectl
1. Buat resource CNFS Buat objek |
|
2. Buat StorageClass Buat objek | |
3. Buat PersistentVolumeClaim (PVC) Aplikasi meminta volume dengan menggunakan PVC yang mereferensikan StorageClass sebagai templat konfigurasi. | |
4. Buat aplikasi dan pasang PVC Setelah PVC dibuat, deploy aplikasi contoh, seperti Deployment atau StatefulSet, dan pasang PVC ke aplikasi. |
|
5. Verifikasi hasil |
|
Konsol
1. Buat resource CNFS |
|
2. Buat StorageClass |
|
3. Buat PVC |
|
4. Buat aplikasi dan pasang volume NAS | Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container. Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer. Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Metode 2: Membuat sistem file NAS kustom
Gunakan CNFS untuk membuat sistem file NAS dengan parameter kustom.
Definisikan resource
ContainerNetworkFileSystemuntuk membuat sistem file NAS baru.Ekspos sistem file tersebut ke aplikasi dalam kluster dengan membuat PV statis atau StorageClass dinamis.
kubectl
1. Buat sistem file NAS kustom Buat objek |
|
2. Buat PV atau StorageClass Setelah membuat resource CNFS, pilih cara aplikasi Anda mengakses sistem file NAS.
| Static PVUntuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis. StorageClassUntuk informasi selengkapnya tentang parameter StorageClass, lihat Gunakan volume NAS dinamis. |
3. Buat PVC Buat PVC yang menggunakan static PV atau StorageClass yang telah Anda buat. | Static PVDynamic Provisioning |
4. Buat aplikasi dan pasang volume NAS Pasang PVC sebagai volume dalam aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
StorageClass
|
|
|
| Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container. Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer. Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Metode 3: Mengelola dan menggunakan sistem file NAS yang sudah ada
Gunakan CNFS untuk mengelola sistem file NAS Apsara File Storage yang sudah ada dan menghubungkannya ke kluster, sehingga aplikasi dapat memasang dan menggunakannya.
kubectl
1. Buat resource CNFS dari sistem file NAS yang sudah ada Buat resource |
|
2. Buat PV atau StorageClass Setelah membuat resource CNFS, pilih cara aplikasi Anda mengakses sistem file NAS.
| Static PVUntuk informasi selengkapnya tentang parameter PV, lihat Gunakan volume NAS statis. StorageClassUntuk informasi selengkapnya tentang parameter StorageClass, lihat Gunakan volume NAS dinamis. |
3. Buat PVC Buat PVC yang menggunakan static PV atau StorageClass yang telah Anda buat. | Static PVDynamic Provisioning |
4. Buat aplikasi dan pasang volume NAS Pasang PVC sebagai volume dalam aplikasi Anda. | |
5. Verifikasi hasil |
|
Konsol
|
|
| PV
StorageClass
|
|
|
| Saat Anda membuat Deployment atau membuat StatefulSet, konfigurasikan PVC agar dipasang ke kontainer di bagian Volumes pada halaman Container. Contoh ini memasang sistem file NAS yang dibuat oleh CNFS ke path /data dalam kontainer. Atur Volume Type ke Cloud Storage, pilih PVC NAS CNFS yang sesuai (misalnya, |
Skenario aplikasi: Penyimpanan bersama dan terisolasi
Setelah membuat atau menambahkan sistem file NAS, konfigurasikan untuk berbagi data atau isolasi.
Konfigurasikan volume NAS bersama
Untuk berbagi data antar Pod, pasang direktori sistem file NAS yang sama ke beberapa Pod.
Mekanisme inti: Hal ini dicapai dengan menggunakan volume statis. Dalam PersistentVolume (PV),
pathyang dideklarasikan identik dengan path akhir yang dipasang oleh Container Storage Interface (CSI). Oleh karena itu, ketika beberapa Pod memasang PV statis ini dengan menggunakan PersistentVolumeClaim (PVC) yang sama, semuanya dapat mengakses direktori penyimpanan yang sama, sehingga memungkinkan berbagi data.Konfigurasi utama: Dalam templat Pod (
.spec.template) workload, di bawah fieldvolumes, atur parameterpersistentVolumeClaim.claimNameke nama PVC yang sama.
1. Buat PersistentVolume dan PersistentVolumeClaim yang mereferensikan direktori tertentu | |
2. Buat Deployment contoh | |
3. Verifikasi hasil |
Konfigurasikan volume NAS terisolasi
Untuk skenario yang memerlukan isolasi data, seperti multi-tenancy, sediakan direktori penyimpanan independen untuk setiap Pod atau kelompok Pod.
Mekanisme inti: Hal ini dicapai dengan menggunakan volume dinamis. Dalam StorageClass, CSI secara otomatis membuat sub-direktori terpisah dengan nama yang sama seperti PV dalam
pathyang dideklarasikan untuk berfungsi sebagai titik pemasangan. Akibatnya, setiap PVC terikat ke direktori penyimpanan terpisah, yang menyediakan isolasi data.Konfigurasi utama:
Dalam
StorageClassyang terkait denganStatefulSet, pengaturanvolumeAs: subpath(nilai default) dalamparametersmembuat subdirektori independen untuk setiap permintaan PVC.Dalam StatefulSet, Anda dapat mendefinisikan
volumeClaimTemplatesuntuk secara otomatis membuat dan mengikat PVC independen untuk setiap Pod.
1. Buat StorageClass yang mendukung sub-direktori dinamis | |
2. Buat StatefulSet contoh | |
3. Verifikasi hasil |
Rekomendasi untuk lingkungan produksi
Keamanan data
Enkripsi data: Saat membuat sistem file NAS, atur
encryptType: SSE-KMSdalamparametersCNFS untuk mengaktifkan Enkripsi sisi server dan meningkatkan keamanan data.Proteksi data dan kebijakan reclaim:
reclaimPolicyuntuk resource CNFS tetapRetain. Artinya, menghapus objek CNFS di Kubernetes tidak menghapus instans NAS backend. Namun, kebijakan reclaim untuk volume persisten ditentukan oleh StorageClass-nya. Untuk lingkungan produksi, atur kebijakan reclaim di StorageClass keRetainuntuk mencegah kehilangan data yang tidak disengaja.Keranjang daur ulang: Saat membuat sistem file NAS, aktifkan Keranjang daur ulang dengan mengatur parameter
enableTrashCan: "true"untuk mencegah penghapusan yang tidak disengaja.Penulisan konkuren: Saat beberapa Pod memasang volume penyimpanan bersama yang sama, kelola penulisan konkuren di tingkat aplikasi untuk mencegah korupsi file.
Manajemen operasi
Isolasi performa: Volume penyimpanan terisolasi hanya menyediakan isolasi tingkat data. Semua volume terisolasi berbagi IOPS dan throughput dari instans NAS backend yang sama. Untuk aplikasi inti dengan persyaratan performa I/O yang ketat dan latensi stabil, provisioning sistem file NAS khusus.
Manajemen kapasitas: Atur
allowVolumeExpansion: truedi StorageClass untuk mengaktifkan ekspansi kuota direktori volume penyimpanan.Nilai
requests.storagedalam klaim volume persisten terutama digunakan untuk keputusan penjadwalan dan tidak mewakili 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. Hal ini membantu Anda segera mengidentifikasi hambatan kapasitas atau performa.
Optimasi biaya
Tipe penyimpanan: Lihat Pilih tipe penyimpanan NAS untuk memilih tipe NAS yang sesuai berdasarkan sensitivitas biaya dan performa workload Anda. Misalnya, NAS Capacity lebih murah dan cocok untuk berbagi file atau workload arsip yang tidak sensitif terhadap latensi.
Rilis resource segera: Setelah aplikasi dihentikan, bersihkan semua resource yang tidak digunakan. Juga, pastikan apakah akan menghapus sistem file NAS backend untuk menghindari biaya tak terduga.
Informasi referensi
Verifikasi penyimpanan bersama, isolasi data, dan penyimpanan persisten
Setelah sistem file Network Attached Storage (NAS) dipasang, Anda dapat memverifikasi bahwa sistem tersebut berperilaku sesuai harapan.
Verifikasi penyimpanan bersama dan penyimpanan 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 Container Network File System (CNFS).
Contoh berikut menunjukkan YAML untuk cnfs-nas-filesystem. Output ini dihasilkan dengan menjalankan perintah kubectl get cnfs/cnfs-nas-filesystem -o yaml, seperti yang dijelaskan dalam 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 digunakan.
Hapus workload
Aksi: Hapus semua aplikasi yang menggunakan PersistentVolumeClaims terkait, seperti deployment dan StatefulSets. Tindakan ini menghentikan pod dan melepas volume penyimpanan.
Perintah contoh:
kubectl delete deployment <nama-deployment-anda>
Hapus PersistentVolumeClaims
Aksi: Hapus PersistentVolumeClaims yang terkait dengan aplikasi. Nasib PersistentVolume yang terikat bergantung pada
reclaimPolicy-nya.Retain(Direkomendasikan): Setelah PersistentVolumeClaim dihapus, data dan direktori pada sistem file NAS backend dipertahankan.Delete: Setelah PersistentVolumeClaim dihapus, PersistentVolume yang terikat juga dihapus. ParameterarchiveOnDeletedalamStorageClasskemudian menentukan bagaimana data dan direktori pada sistem file NAS backend diperlakukan."true"(default): Direktori dan isinya tidak dihapus tetapi diarsipkan dengan mengganti namanya menjadiarchived-{pvName}.{timestamp}."false": Data dihapus secara permanen. Tindakan ini tidak dapat dikembalikan.
Perintah contoh:
kubectl delete pvc <nama-pvc-anda>
Hapus PersistentVolumes
Aksi: Hapus PersistentVolume. Langkah ini terutama berlaku untuk PersistentVolumes statis atau PersistentVolumes yang memasuki status
ReleasedkarenareclaimPolicy-nya adalahRetain.Tindakan ini hanya menghapus definisi resource dari Kubernetes dan tidak menghapus data 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 dan tidak menghapus data 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 ini menghapus semua data pada sistem file NAS secara permanen dan tidak dapat dikembalikan. Lakukan dengan hati-hati. Sebelum melakukan tindakan ini, pastikan tidak ada workload yang bergantung pada sistem file NAS ini.