Alibaba Cloud File Storage NAS (Network Attached Storage) adalah sistem file terdistribusi yang mendukung akses bersama, skalabilitas elastis, keandalan tinggi, dan kinerja tinggi. Layanan ini ideal untuk kasus penggunaan seperti analitik data besar, berbagi data, aplikasi web, dan penyimpanan log. Dengan menggunakan plugin Container Storage Interface (CSI), Anda dapat membuat Persistent Volume (PV) dan Persistent Volume Claim (PVC) dari sistem file NAS yang sudah ada serta memasangnya ke dalam beban kerja Kubernetes, sehingga memungkinkan penyimpanan data persisten dan bersama di seluruh kontainer dan Pod.
Prasyarat
Plugin CSI telah diinstal di kluster. Jika diperlukan peningkatan, lihat Upgrade csi-plugin dan csi-provisioner.
CatatanJika kluster Anda menggunakan FlexVolume, lakukan upgrade ke CSI karena FlexVolume sudah tidak didukung lagi. Untuk detailnya, lihat Upgrade dari FlexVolume ke CSI. Untuk memverifikasi jenis komponen penyimpanan Anda, buka , lalu klik tab Storage.
Pastikan sistem file NAS yang sudah ada memenuhi persyaratan berikut. Jika tidak, buat sistem file atau pasang volume NAS yang disediakan secara dinamis.
Jenis protokol:
Harus merupakan Network File System (NFS).
ACK tidak mendukung pemasangan sistem file NAS yang menggunakan protokol Server Message Block (SMB).
Titik pemasangan:
Harus berada dalam VPC yang sama dengan node kluster.
Status-nya harus Available.
Untuk petunjuk membuat titik pemasangan, lihat Kelola titik pemasangan.
Batasan VPC:
NAS hanya dapat dipasang ke Pod yang berjalan dalam VPC yang sama.
Pemasangan lintas-VPC tidak didukung, bahkan jika Peering VPC atau Cloud Enterprise Network (CEN) telah dikonfigurasi.
Hal ini memastikan konektivitas berlatensi rendah dan aman antara node komputasi dan sistem penyimpanan.
Dalam VPC yang sama, NAS mendukung pemasangan lintas-AZ.
Untuk mengenkripsi data dalam volume NAS, konfigurasikan enkripsi saat membuat sistem file NAS.
Catatan Penggunaan
NAS adalah layanan penyimpanan bersama. Satu volume NAS dapat dipasang ke beberapa Pod. Jika beberapa Pod menulis data secara bersamaan, aplikasi harus secara mandiri memastikan konsistensi data.
Untuk informasi lebih lanjut tentang batasan penulisan konkuren ke NAS, lihat Bagaimana cara mencegah pengecualian yang mungkin terjadi ketika beberapa proses atau klien menulis data secara konkuren ke file log? dan Bagaimana cara mengatasi latensi saat menulis data ke sistem file NFS?
Jika templat aplikasi Anda mencakup parameter
securityContext.fsgroup, kubelet akan menjalankan operasichmodatauchownsetelah pemasangan, yang dapat meningkatkan waktu pemasangan.Hindari pengaturan ini untuk mengurangi latensi. Untuk detail lebih lanjut, lihat Waktu pemasangan yang diperpanjang untuk volume NAS.
Jangan menghapus titik pemasangan NAS setelah dipasang. Melakukannya dapat menyebabkan sistem menjadi tidak responsif.
Pasang volume NAS yang disediakan secara statis (menggunakan kubectl)
Langkah 1: Buat PV
Ubah templat YAML berikut dan simpan sebagai pv-nas.yaml:
apiVersion: v1 kind: PersistentVolume metadata: name: pv-nas labels: alicloud-pvname: pv-nas spec: capacity: storage: 5Gi accessModes: - ReadWriteMany csi: driver: nasplugin.csi.alibabacloud.com volumeHandle: pv-nas # Masukkan nama PV. volumeAttributes: server: "0c47****-mpk25.cn-shenzhen.nas.aliyuncs.com" # Alamat titik pemasangan. VPC tempat titik pemasangan berada harus sama dengan VPC tempat kluster berada. path: "/csi" # Tentukan subdirektori sistem file NAS. mountOptions: - nolock,tcp,noresvport - vers=3Parameter
Deskripsi
nameNama PV.
labelsLabel untuk PV.
storageKapasitas PV.
PentingKapasitas yang tersedia sebenarnya ditentukan oleh spesifikasi sistem file NAS, bukan nilai ini. Lihat General-purpose NAS dan Extreme NAS untuk detailnya.
accessModesMode akses. Default:
ReadWriteMany. Juga mendukungReadWriteOncedanReadOnlyMany.driverHarus
nasplugin.csi.alibabacloud.com. Ini menunjukkan bahwa plugin CSI yang disediakan oleh Alibaba Cloud digunakan.volumeHandlePengidentifikasi unik untuk PV. Harus sesuai dengan nama PV. Setiap PV harus memiliki nilai yang unik.
serverAlamat titik pemasangan NAS. Titik pemasangan harus berada dalam VPC yang sama dengan kluster. Lihat Kelola titik pemasangan.
pathSubdirektori dalam sistem file NAS yang akan dipasang.
Jika tidak diatur, default ke root (
/untuk General-purpose NAS,/shareuntuk Extreme NAS).Jika direktori tidak ada, direktori tersebut akan dibuat.
CatatanUntuk Extreme NAS, jalur harus dimulai dengan
/share, seperti/share/data.mountOptionsParameter pemasangan NAS, termasuk versi protokol NFS. Kami merekomendasikan penggunaan protokol NFS v3 karena Extreme NAS hanya mendukung NFS v3. Untuk informasi lebih lanjut tentang protokol NFS, lihat Protokol NFS.
Buat PV:
kubectl create -f pv-nas.yamlLihat 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> 25s
Langkah 2: Buat PVC
Simpan templat YAML berikut sebagai pvc-nas.yaml:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-nas spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-nasParameter
Deskripsi
nameNama PVC.
accessModesHarus sesuai dengan mode akses PV. Default:
ReadWriteMany. Anda juga dapat mengatur nilainya menjadiReadWriteOnceatauReadOnlyMany.storageKapasitas penyimpanan yang diminta. Tidak boleh melebihi kapasitas PV.
PentingKapasitas yang tersedia sebenarnya ditentukan oleh spesifikasi sistem file NAS, bukan nilai ini. Lihat General-purpose NAS dan Extreme NAS untuk detailnya.
matchLabelsLabel yang digunakan untuk mengikat PVC ke PV.
Buat PVC:
kubectl create -f pvc-nas.yamlLihat PVC:
kubectl get pvcOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE pvc-nas Bound pv-nas 5Gi RWX <unset> 5s
Langkah 3: Buat aplikasi dan pasang volume NAS
Simpan YAML berikut sebagai nas.yaml:
apiVersion: apps/v1 kind: Deployment metadata: name: nas-test labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: "/data" volumes: - name: pvc-nas persistentVolumeClaim: claimName: pvc-nasParameter
Deskripsi
mountPathJalur kontainer tempat volume NAS dipasang.
claimNameNama PVC yang akan diikat.
Terapkan aplikasi:
kubectl create -f nas.yamlPeriksa 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
Pasang volume NAS yang disediakan secara statis (menggunakan konsol)
Langkah 1: Buat PV
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih .
Di halaman Persistent Volumes, klik Create.
Pada kotak dialog yang muncul, konfigurasikan parameter-parameter berikut.
Parameter
Deskripsi
Contoh
PV Type
Pilih NAS.
NAS
Volume Name
Nama volume. Nama harus unik dalam kluster.
pv-nas
Capacity
Kapasitas PV.
PentingKapasitas yang tersedia sebenarnya ditentukan oleh spesifikasi sistem file NAS, bukan nilai ini. Lihat General-purpose NAS dan Extreme NAS untuk detailnya.
5Gi
Access Mode
Pilih ReadWriteMany atau ReadWriteOnce.
ReadWriteMany
Enable CNFS
Tentukan apakah akan mengaktifkan Container Network File System (CNFS). Menggunakan CNFS untuk mengelola NAS dapat meningkatkan kinerja dan kontrol Quality of Service (QoS) NAS.
Panduan ini menggunakan pemasangan NAS langsung. Untuk informasi lebih lanjut tentang cara mengonfigurasi sistem file NAS yang sudah ada dengan CNFS, lihat Gunakan CNFS untuk mengelola sistem file NAS (disarankan).
Disable
Mount Target Domain Name
Diperlukan saat CNFS dinonaktifkan.
Pilih Select Mount Target atau Custom untuk mengonfigurasi sistem file NAS yang ingin Anda pasang. Untuk detail cara melihat alamat titik pemasangan, lihat Kelola titik pemasangan.
0c47****-mpk25.cn-shenzhen.nas.aliyuncs.co
Advanced Options (Optional)
Mount Path
Subdirektori dalam sistem file NAS yang akan dipasang.
Jika tidak diatur, default ke root (
/untuk General-purpose NAS,/shareuntuk Extreme NAS).Jika direktori tidak ada, direktori tersebut akan dibuat.
CatatanUntuk Extreme NAS, jalur harus dimulai dengan
/share, seperti/share/data./data
Reclaim Policy
Nilai default adalah Retain. Ini menunjukkan bahwa ketika PVC dihapus, PV dan sistem file NAS terkait tetap dipertahankan dan hanya dapat dihapus secara manual.
CatatanDelete harus digunakan dengan
archiveOnDelete. Karena PV statis tidak mendukungarchiveOnDelete, ketika Anda memilih Delete di sini, PV dan sistem file NAS tidak benar-benar dihapus saat PVC dihapus. Jika Anda ingin mengonfigurasiarchiveOnDelete, gunakan volume NAS yang disediakan secara dinamis.Retain
Mount Options
Parameter pemasangan NAS, termasuk versi protokol NFS. Kami merekomendasikan penggunaan protokol NFS v3 karena Extreme NAS hanya mendukung NFS v3. Untuk informasi lebih lanjut tentang protokol NFS, lihat Protokol NFS.
nolock,tcp,noresvport
vers=3
Label
Label opsional untuk PV.
pv-nas
Klik Create. PV akan muncul di halaman Persistent Volumes.
Langkah 2: Buat PVC
Di panel navigasi kiri halaman detail, pilih .
Di halaman Persistent Volume Claims, klik Create.
Pada kotak dialog yang muncul, konfigurasikan parameter dan klik Create.
Parameter
Deskripsi
Contoh
Storage Claim Type
Pilih NAS.
NAS
Name
Nama PVC. Nama harus unik dalam kluster.
pvc-nas
Allocation Mode
Pilih Existing Volumes.
CatatanJika belum ada PV yang dibuat, Anda dapat mengatur parameter Allocation Mode menjadi Create Volume dan mengonfigurasi parameter yang diperlukan untuk membuat PV.
Select Existing Volumes
Existing Storage Volume
Klik Select Existing Volume, temukan PV yang ingin Anda gunakan, lalu klik Select di kolom Actions.
pv-nas
Capacity
Kapasitas PV. Kapasitas yang diminta tidak boleh melebihi kapasitas total PV.
PentingKapasitas yang tersedia sebenarnya ditentukan oleh spesifikasi sistem file NAS, bukan nilai ini. Lihat General-purpose NAS dan Extreme NAS untuk detailnya.
5
Access Mode
Nilai default adalah ReadWriteMany. Anda juga dapat mengatur nilainya menjadi ReadWriteOnce atau ReadOnlyMany.
ReadWriteMany
Langkah 3: Buat aplikasi dan pasang volume NAS
Di panel navigasi kiri halaman detail kluster, buka .
Di halaman Deployments, klik Create From Image.
Konfigurasikan parameter aplikasi. Setelah selesai, klik Create.
Tabel berikut menjelaskan parameter utama. Gunakan pengaturan default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat aplikasi tanpa status menggunakan Deployment.
Bagian
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk Deployment. Nama harus memenuhi persyaratan format yang ditampilkan di konsol.
nas-test
Replicas
Jumlah replika Pod.
2
Container
Image Name
Citra kontainer.
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
Required Resources
CPU dan memori.
0,25 Core, 512 MiB
Volume
Klik Add PVC dan konfigurasikan parameter.
Mount Source: Pilih PVC yang telah Anda buat.
Container Path: Tentukan jalur kontainer tempat Anda ingin memasang sistem file NAS.
Mount Source: pvc-nas
Container Path: /data
Lihat status penerapan aplikasi.
Di halaman Deployments, klik nama aplikasi.
Di tab Pods, pastikan Pod berada dalam status Running.
FAQ
Jika Anda mengalami masalah saat memasang atau menggunakan volume NAS, lihat:
Referensi
CNFS memungkinkan pengelolaan independen sistem file NAS, meningkatkan kinerja dan kontrol QoS. Untuk praktik terbaik, lihat Gunakan CNFS untuk mengelola sistem file NAS (disarankan).