Volume Penyimpanan File NAS ideal untuk skenario seperti analitik data besar, berbagi data, aplikasi web, dan persistensi log. Selain menggunakan volume persisten statis, Anda dapat membuat klaim volume persisten (PVC) dan mengonfigurasi StorageClass untuk mengalokasikan resource penyimpanan secara dinamis. Pendekatan ini memungkinkan sistem menyediakan volume persisten (PV) secara otomatis, sehingga menghilangkan kebutuhan untuk membuat dan mengonfigurasi resource penyimpanan secara manual terlebih dahulu. Volume NAS yang diprovisikan secara dinamis dapat dipasang menggunakan metode subpath, sharepath, atau filesystem.
Prasyarat
Komponen CSI diinstal di kluster secara default. Untuk meningkatkan komponen tersebut, lihat Upgrade CSI components.
CatatanFlexVolume telah ditinggalkan. Jika kluster Anda menggunakan komponen FlexVolume, Anda harus melakukan migrasi dari FlexVolume ke CSI sebelum memasang volume. Untuk informasi selengkapnya, lihat Migrate from FlexVolume to CSI. Anda dapat memeriksa jenis komponen penyimpanan pada tab Storage di halaman .
Layanan File Storage NAS telah diaktifkan.
Jika Anda menggunakan File Storage NAS untuk pertama kalinya, ikuti petunjuk di layar pada File Storage NAS product page untuk mengaktifkan layanan tersebut.
Batasan
Pemasangan sistem file NAS yang menggunakan protokol SMB tidak didukung.
Sistem file NAS hanya dapat dipasang ke Pod dalam VPC yang sama. Pemasangan lintas-VPC tidak didukung.
CatatanDalam VPC yang sama, volume NAS dapat dipasang lintas zona.
Sistem file NAS tujuan umum dan Ekstrem memiliki batasan berbeda terkait konektivitas, jumlah sistem file, dan jenis protokol. Untuk informasi selengkapnya, lihat Limits.
Catatan penggunaan
NAS menyediakan penyimpanan bersama. Volume NAS dapat dipasang ke beberapa Pod. Jika beberapa Pod menulis data ke volume secara bersamaan, aplikasi Anda harus memastikan konsistensi data.
Untuk informasi lebih lanjut tentang batasan penulisan konkuren ke NAS, lihat How do I prevent exceptions that may occur when multiple processes or clients concurrently write data to a log file? dan How do I resolve the latency in writing data to an NFS file system?
Jika Anda mengonfigurasi parameter
securityContext.fsgroupdalam templat aplikasi, kubelet menjalankan operasichmodatauchownsetelah volume dipasang. Hal ini meningkatkan waktu pemasangan. Jika Anda telah mengonfigurasi parametersecurityContext.fsgroupdan ingin mengurangi waktu pemasangan, lihat Extended mount times for NAS volumes.Jangan menghapus titik pemasangan NAS setelah volume NAS dipasang. Jika tidak, sistem mungkin berhenti merespons.
Metode pemasangan
Parameter volumeAs dalam StorageClass menentukan hubungan antara PV dan sistem file NAS atau subdirektorinya. Anda dapat memilih metode pemasangan sesuai kebutuhan.
Metode pemasangan | Deskripsi | Kasus penggunaan |
Membuat PV bertipe subdirektori, di mana setiap PV berkorespondensi dengan subdirektori unik dalam sistem file NAS yang sama. |
| |
Membuat PV yang semuanya mengarah ke direktori bersama yang ditentukan dalam StorageClass. Tidak ada subdirektori baru yang dibuat per PV. | Beberapa Pod di namespace berbeda perlu memasang subdirektori NAS yang sama. | |
Mount using the filesystem method (Tidak disarankan) | Otomatis membuat sistem file NAS untuk setiap PV. Satu PV berkorespondensi dengan satu sistem file NAS utuh. | Sistem file NAS terpisah digunakan, yang dibuat dan dihapus secara dinamis bersama titik pemasangannya. |
Mount using the subpath method
Metode subpath memerlukan versi komponen CSI 1.31.4 atau yang lebih baru. Untuk meningkatkan komponen tersebut, lihat Upgrade CSI components.
Langkah 1: Dapatkan informasi sistem file NAS dan titik pemasangan
Login ke NAS console. Di panel navigasi sebelah kiri, pilih .
Buat sistem file NAS dan titik pemasangan.
Hanya sistem file NAS yang menggunakan protokol NFS yang dapat dipasang. Titik pemasangan dan node kluster harus berada dalam VPC yang sama.
Jika Anda memiliki sistem file NAS yang sudah ada, pastikan sistem tersebut memenuhi persyaratan.
Jika Anda belum memiliki sistem file NAS yang tersedia, buat sistem file NAS dan titik pemasangan yang memenuhi persyaratan. Untuk informasi selengkapnya, lihat Create a file system dan Manage mount targets.
Dapatkan informasi titik pemasangan.
Klik ID sistem file. Di panel navigasi sebelah kiri, klik Mount and Use.
Pada bagian Mount Target, pastikan status titik pemasangan adalah Available, lalu dapatkan alamat titik pemasangan tersebut.
Langkah 2: Buat StorageClass
kubectl
Ubah konten YAML berikut dan simpan sebagai alicloud-nas-subpath.yaml.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-subpath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: subpath server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/k8s" archiveOnDelete: "true" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: Retain allowVolumeExpansion: trueParameter
Deskripsi
mountOptionsOpsi pemasangan untuk volume NAS, termasuk versi protokol NFS. Secara default, protokol NFSv3 digunakan untuk pemasangan. Anda dapat menentukan versi protokol, misalnya
vers=4.0. Untuk informasi selengkapnya tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat NFS protocol.parametersvolumeAsMetode pemasangan. Dalam contoh ini, nilainya diatur ke
subpathuntuk membuat PV bertipe subdirektori. Satu PV berkorespondensi dengan satu subdirektori dalam sistem file NAS.serverAlamat titik pemasangan dan subdirektori sistem file NAS yang akan dipasang. Formatnya adalah
<NAS mount target address>:<mount directory>. Jika Anda tidak menentukan subdirektori, direktori root/dipasang secara default.archiveOnDeleteMenentukan apakah data penyimpanan backend dihapus ketika
reclaimPolicydiatur keDelete. Parameter ini ditambahkan sebagai konfirmasi karena NAS merupakan layanan penyimpanan bersama.true(default): Direktori atau file dipertahankan dan diganti namanya menjadiarchived-{pvName}.{timestamp}.false: Resource penyimpanan backend dihapus secara permanen.
CatatanUntuk workload dengan trafik tinggi, tidak disarankan mengatur parameter ini ke false. Untuk informasi selengkapnya, lihat The task queue of the controller is full and no new PVs can be created when you use a dynamically provisioned NAS volume.
Untuk menghapus data penyimpanan backend sepenuhnya, Anda harus mengatur
parameters.archiveOnDeletekefalsemenggunakan kubectl.
provisionerJenis driver. Nilainya harus diatur ke
nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin Alibaba Cloud NAS CSI digunakan.reclaimPolicyKebijakan reclaim PV. Nilai default adalah
Delete.Retainjuga didukung.Delete: Nilai ini harus digunakan bersamaarchiveOnDelete.Ketika
archiveOnDeletebernilaitrue, file dalam sistem file NAS diganti nama tetapi tidak dihapus saat PVC dihapus.Ketika
archiveOnDeletebernilaifalse, file dalam sistem file NAS dihapus saat PVC dihapus.PentingDirektori subpath dan file-file di dalamnya dalam sistem file NAS akan dihapus. Sistem file NAS itu sendiri tetap dipertahankan. Untuk menghapus sistem file NAS, lihat Delete a file system.
Retain: Saat PVC dihapus, PV dan file dalam sistem file NAS dipertahankan. Anda harus menghapusnya secara manual.
Jika keamanan data menjadi prioritas tinggi, kami menyarankan Anda mengatur parameter ini ke
Retainuntuk mencegah kehilangan data secara tidak sengaja.allowVolumeExpansionParameter ini hanya didukung untuk sistem file NAS tujuan umum. Jika Anda mengaktifkan parameter ini, kuota direktori dikonfigurasi untuk PV yang dibuat secara dinamis oleh StorageClass guna membatasi kapasitas yang tersedia. Anda juga dapat memperbarui PVC untuk memperluas kapasitas volume. Untuk informasi selengkapnya, lihat Set directory quotas for dynamically provisioned NAS volumes.
CatatanKuota NAS berlaku secara asinkron. Setelah PV dibuat secara dinamis, kuota direktori mungkin tidak langsung berlaku. Jika Anda menulis data dalam jumlah besar dalam waktu singkat, penggunaan penyimpanan mungkin melebihi batas kapasitas. Untuk informasi selengkapnya tentang kuota direktori NAS, lihat Directory quotas.
Buat StorageClass.
kubectl create -f alicloud-nas-subpath.yaml
Console
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman StorageClasses, klik Create.
Pada dialog Create, konfigurasi parameter StorageClass dan klik Create.
Berikut adalah item konfigurasi utama.
Item konfigurasi
Deskripsi
Nilai contoh
Name
Nama StorageClass. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di konsol.
alicloud-nas-subpath
Persistent Volume Type
Pilih NAS.
NAS
Select Mount Target
Alamat titik pemasangan sistem file NAS.
0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com
Volume Mode
Mode akses volume. Dalam contoh ini, pilih Subdirectory untuk menggunakan metode subpath. Subdirektori unik secara otomatis dibuat di bawah path pemasangan untuk setiap PV. Data disimpan di
<NAS mount target>:<mount path>/<pv-name>/.CatatanMode Subdirectory memerlukan versi komponen CSI 1.31.4 atau yang lebih baru. Jika tidak, sistem secara default menggunakan mode Shared Directory.
Subdirectory
Mount Path
Subdirektori pada sistem file NAS yang akan dipasang.
Jika tidak diatur, direktori root dipasang secara default.
Jika direktori yang ditentukan tidak ada, direktori tersebut akan dibuat secara otomatis lalu dipasang.
CatatanDirektori root adalah
/untuk sistem file NAS tujuan umum dan/shareuntuk sistem file NAS Ekstrem. Saat Anda memasang subdirektori pada sistem file NAS Ekstrem,pathharus dimulai dengan/share, seperti/share/data./k8s
Reclaim Policy
Kebijakan reclaim untuk PV. Kami menyarankan Anda memilih Retain untuk mencegah kehilangan data secara tidak sengaja.
Delete: Parameter ini harus dikonfigurasi dengan
archiveOnDelete. Di konsol, memilih Delete tidak berlaku. Artinya, PV dan data pada volume NAS tidak dihapus saat Anda menghapus PVC. Hal ini karena parameterarchiveOnDeleteyang mendasari tidak dapat dikonfigurasi melalui UI. Untuk mengonfigurasiarchiveOnDelete, buat PV menggunakan manifes YAML. Untuk templat YAML, lihat tab kubectl.Retain: Saat PVC dihapus, PV dan data pada volume NAS tidak dihapus. Anda harus menghapusnya secara manual.
Retain
Mount Options
Opsi pemasangan untuk volume NAS, termasuk versi protokol NFS. Secara default, protokol NFSv3 digunakan untuk pemasangan. Anda dapat menentukan versi protokol, misalnya
vers=4.0. Untuk informasi selengkapnya tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat NFS protocol.Biarkan nilai default
Setelah StorageClass dibuat, Anda dapat melihatnya dalam daftar StorageClasses.
Langkah 3: Buat PVC
kubectl
Ubah konten YAML dan simpan sebagai nas-pvc.yaml.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-subpath resources: requests: storage: 20GiParameter
Deskripsi
accessModesMode akses untuk volume. Nilai default adalah
ReadWriteMany.ReadWriteOncedanReadOnlyManyjuga didukung.storageClassNameNama StorageClass yang akan di-bind.
storageKapasitas volume yang ingin Anda minta.
PentingSecara default, kapasitas aktual yang tersedia pada volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi selengkapnya, lihat General-purpose NAS dan Extreme NAS.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia pada volume NAS.
Buat PVC.
kubectl create -f nas-pvc.yamlLihat PV.
kubectl get pvcOutput menunjukkan bahwa komponen CSI secara otomatis membuat PV berdasarkan StorageClass dan mengikat PV tersebut ke PVC.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-a7540d97-0f53-4e05-b7d9-557309****** 20Gi RWX Retain Bound default/nas-csi-pvc alicloud-nas-subpath <unset> 5m
Console
Di panel navigasi kiri halaman detail, pilih .
Pada halaman Persistent Volume Claims, klik Create.
Pada dialog Create PVC, konfigurasi parameter dan klik Create.
Item konfigurasi
Deskripsi
Nilai contoh
PVC Type
Pilih NAS.
NAS
Name
Nama PVC. Nama harus unik dalam namespace.
pvc-nas
Allocation Mode
Dalam contoh ini, pilih Use StorageClass.
Use StorageClass
Existing StorageClass
Klik Select StorageClass dan pilih StorageClass yang Anda buat pada langkah sebelumnya.
alicloud-nas-subpath
Capacity
Kapasitas volume. Pengaturan ini tidak membatasi kapasitas maksimum yang dapat digunakan aplikasi.
PentingSecara default, kapasitas aktual yang tersedia pada volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi selengkapnya, lihat General-purpose NAS dan Extreme NAS.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia pada volume NAS.
20Gi
Access Mode
Nilai default adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.
ReadWriteMany
Langkah 4: Buat aplikasi dan pasang volume NAS
kubectl
Buat dua deployment dan pasang PVC yang sama ke keduanya. Hal ini memungkinkan mereka berbagi subdirektori yang sama dalam sistem file NAS yang sama.
Untuk memasang subdirektori berbeda dari sistem file NAS yang sama ke beberapa Pod, buat StorageClass dan PVC berbeda untuk subdirektori tersebut, lalu pasang PVC ke Pod.
Ubah konten YAML berikut dan simpan file sebagai nginx-1.yaml dan nginx-2.yaml.
Templat YAML berikut menunjukkan bahwa konfigurasi dalam nginx-1.yaml dan nginx-2.yaml sama, kecuali nilai
metadata.name. Kedua aplikasi di-bind ke PVC yang sama.nginx-1.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nas-test-1 labels: app: nginx spec: 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: nas-pvc mountPath: "/data" # Path tempat volume NAS dipasang di dalam kontainer. volumes: - name: nas-pvc persistentVolumeClaim: claimName: nas-csi-pvc # Bind PVC.nginx-2.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nas-test-2 labels: app: nginx spec: 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: nas-pvc mountPath: "/data" # Path tempat volume NAS dipasang di dalam kontainer. volumes: - name: nas-pvc persistentVolumeClaim: claimName: nas-csi-pvc # Bind PVC.Buat kedua deployment tersebut.
kubectl create -f nginx-1.yaml -f nginx-2.yamlLihat informasi Pod.
kubectl get pod -l app=nginxOutput menunjukkan bahwa subdirektori yang sama dari sistem file NAS yang sama dipasang ke aplikasi berbeda.
NAME READY STATUS RESTARTS AGE nas-test-1-b75d5b6bc-vqwq9 1/1 Running 0 51s nas-test-2-b75d5b6bc-8k9vx 1/1 Running 0 44s
Console
Ulangi langkah-langkah berikut untuk membuat dua deployment yang memasang PVC yang sama. Hal ini memungkinkan mereka berbagi satu subdirektori dalam sistem file NAS.
Di panel navigasi kiri, pilih .
Pada halaman Stateless, klik Create From Image.
Konfigurasi parameter untuk membuat aplikasi.
Tabel berikut menjelaskan parameter utama. Anda dapat mempertahankan pengaturan default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Create a stateless workload (Deployment).
Item konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk deployment. Nama harus memenuhi persyaratan format yang ditampilkan di konsol.
deployment-nas-1
Number of Replicas
Jumlah replika deployment.
1
Container Configuration
Image Name
Alamat citra yang digunakan untuk men-deploy aplikasi.
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
Required Resources
Resource vCPU dan memori yang dibutuhkan.
0.25 vCPU, 512 MiB
Volume
Klik Add PVC dan konfigurasi parameter.
Mount Source: Pilih PVC yang Anda buat.
Container Path: Tentukan path kontainer tempat Anda ingin memasang sistem file NAS.
Mount Source: pvc-nas
Container Path: /data

Lihat status deployment aplikasi.
Pada halaman Stateless, klik nama aplikasi.
Pada tab Pods, pastikan Pod berada dalam status Running.
Mount using the sharepath method
Langkah 1: Dapatkan informasi sistem file NAS dan titik pemasangan
Login ke NAS console. Di panel navigasi sebelah kiri, pilih .
Buat sistem file NAS dan titik pemasangan.
Hanya sistem file NAS yang menggunakan protokol NFS yang dapat dipasang. Titik pemasangan dan node kluster harus berada dalam VPC yang sama.
Jika Anda memiliki sistem file NAS yang sudah ada, pastikan sistem tersebut memenuhi persyaratan.
Jika Anda belum memiliki sistem file NAS yang tersedia, buat sistem file NAS dan titik pemasangan yang memenuhi persyaratan. Untuk informasi selengkapnya, lihat Create a file system dan Manage mount targets.
Dapatkan informasi titik pemasangan.
Klik ID sistem file. Di panel navigasi sebelah kiri, klik Mount and Use.
Pada bagian Mount Target, pastikan status titik pemasangan adalah Available, lalu dapatkan alamat titik pemasangan tersebut.
Langkah 2: Buat StorageClass
kubectl
Simpan konten berikut ke file alicloud-nas-sharepath.yaml dan ubah parameter sesuai kebutuhan.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas-sharepath mountOptions: - nolock,tcp,noresvport - vers=3 parameters: volumeAs: sharepath server: "0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com:/sharepath" provisioner: nasplugin.csi.alibabacloud.com reclaimPolicy: RetainParameter
Deskripsi
mountOptionsOpsi pemasangan untuk volume NAS, termasuk versi protokol NFS. Secara default, protokol NFSv3 digunakan untuk pemasangan. Anda dapat menentukan versi protokol, misalnya
vers=4.0. Untuk informasi selengkapnya tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat NFS protocol.parametersvolumeAsMetode pemasangan. Dalam contoh ini, nilainya diatur ke
sharepath, yang menunjukkan bahwa saat PV dibuat, tidak ada direktori aktual yang dibuat. Sebaliknya, path yang ditentukan dalam StorageClass digunakan. Artinya, setiap PV memetakan ke direktori NAS yang sama.serverAlamat titik pemasangan dan subdirektori sistem file NAS yang akan dipasang. Formatnya adalah
<NAS mount target address>:<mount directory>.Jika Anda tidak menentukan subdirektori, direktori root
/dipasang secara default.Jika direktori tidak ada dalam sistem file NAS, direktori tersebut akan dibuat secara otomatis lalu dipasang.
Direktori root sistem file NAS tujuan umum adalah
/, dan direktori root sistem file NAS Ekstrem adalah/share. Saat Anda memasang subdirektori sistem file NAS Ekstrem,pathharus dimulai dengan/share, seperti/share/data.provisionerJenis driver. Nilainya harus diatur ke
nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin Alibaba Cloud NAS CSI digunakan.reclaimPolicyKebijakan reclaim PV. Saat Anda menggunakan metode sharepath, Anda harus mengatur parameter ini ke
Retain.Buat StorageClass.
kubectl create -f alicloud-nas-sharepath.yaml
Console
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman StorageClasses, klik Create.
Pada dialog Create, konfigurasi parameter StorageClass dan klik Create.
Item konfigurasi utama dijelaskan di bawah ini.
Item konfigurasi
Deskripsi
Nilai contoh
Name
Nama StorageClass. Untuk informasi selengkapnya tentang persyaratan format, lihat petunjuk di konsol.
alicloud-nas-sharepath
PV Type
Pilih NAS.
NAS
Select Mount Target
Alamat titik pemasangan sistem file NAS.
0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.com
Volume Mode
Mode akses volume. Dalam contoh ini, pilih Shared Directory untuk menggunakan metode sharepath. Saat PV dibuat, tidak ada direktori aktual yang dibuat. Sebaliknya, path yang ditentukan dalam StorageClass digunakan. Artinya, setiap PV memetakan ke direktori NAS yang sama. Metode ini ideal untuk skenario di mana Anda perlu berbagi direktori lintas namespace.
Shared Directory
Mount Path
Subdirektori pada sistem file NAS yang akan dipasang.
Jika tidak diatur, direktori root dipasang secara default.
Jika direktori yang ditentukan tidak ada, direktori tersebut akan dibuat secara otomatis lalu dipasang.
CatatanDirektori root adalah
/untuk sistem file NAS tujuan umum dan/shareuntuk sistem file NAS Ekstrem. Saat Anda memasang subdirektori pada sistem file NAS Ekstrem,pathharus dimulai dengan/share, seperti/share/data./sharepath
Reclaim Policy
Saat Anda menggunakan metode sharepath, Anda harus mengatur parameter ini ke
Retain.Retain
Mount Options
Opsi pemasangan untuk volume NAS, termasuk versi protokol NFS. Secara default, protokol NFSv3 digunakan untuk pemasangan. Anda dapat menentukan versi protokol, misalnya
vers=4.0. Untuk informasi selengkapnya tentang protokol NFS yang didukung oleh berbagai jenis NAS, lihat NFS protocol.Biarkan nilai default
Setelah StorageClass dibuat, Anda dapat melihatnya dalam daftar StorageClasses.
Langkah 3: Buat PVC
Contoh berikut menunjukkan cara membuat PVC di dua namespace berbeda.
kubectl
Untuk memasang volume NAS ke Pod di namespace berbeda, pertama-tama buat dua namespace.
Buat namespace ns1 dan ns2.
kubectl create ns ns1 kubectl create ns ns2Ubah konten YAML berikut dan simpan sebagai pvc.yaml.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns1 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: nas-csi-pvc namespace: ns2 spec: accessModes: - ReadWriteMany storageClassName: alicloud-nas-sharepath resources: requests: storage: 20GiParameter
Deskripsi
accessModesMode akses untuk volume. Nilai default adalah
ReadWriteMany.ReadWriteOncedanReadOnlyManyjuga didukung.storageClassNameNama StorageClass yang akan di-bind.
storageKapasitas volume yang ingin Anda minta.
PentingSecara default, kapasitas aktual yang tersedia pada volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi selengkapnya, lihat General-purpose NAS dan Extreme NAS.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia pada volume NAS.
Buat PVC.
kubectl create -f pvc.yamlLihat PV.
kubectl get pvOutput menunjukkan bahwa komponen CSI secara otomatis membuat dua PV berdasarkan StorageClass dan mengikatnya ke dua PVC di namespace berbeda.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE nas-0b448885-6226-4d22-8a5b-d0768c****** 20Gi RWX Retain Bound ns1/nas-csi-pvc alicloud-nas-sharepath <unset> 74s nas-bcd21c93-8219-4a11-986b-fd934a****** 20Gi RWX Retain Bound ns2/nas-csi-pvc alicloud-nas-sharepath <unset> 74s
Console
Buat namespace ns1 dan ns2. Untuk informasi selengkapnya, lihat Create a namespace.
Di panel navigasi kiri halaman detail, pilih .
Buat klaim volume persisten (PVC) di namespace ns.
Pada halaman Persistent Volume Claims, atur Namespace ke ns1 dan klik Create.
Pada dialog Create PVC, konfigurasi parameter dan klik Create.
Item konfigurasi
Deskripsi
Nilai contoh
PVC Type
Pilih NAS.
NAS
Name
Nama PVC. Nama harus unik dalam namespace.
pvc-nas
Allocation Mode
Dalam contoh ini, pilih Use StorageClass.
Dynamic provisioning with a StorageClass
Existing StorageClass
Klik Select StorageClass dan pilih StorageClass yang Anda buat.
alicloud-nas-sharepath
Capacity
Kapasitas volume.
20Gi
Access Mode
Nilai default adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.
ReadWriteMany
Ulangi langkah sebelumnya untuk membuat PVC lain di namespace ns2.
Kembali ke halaman Persistent Volume Claims. Di namespace ns1 dan ns2, pastikan kedua PVC diikat ke PV yang dibuat secara otomatis.
Langkah 4: Buat aplikasi dan pasang volume NAS
Buat aplikasi di dua namespace berbeda dan pasang PVC di namespace yang sesuai. Aplikasi tersebut akan berbagi direktori NAS yang ditentukan dalam StorageClass.
kubectl
Ubah konten YAML berikut dan simpan file sebagai nginx-ns1.yaml dan nginx-ns2.yaml.
Templat YAML berikut menunjukkan bahwa konfigurasi dalam nginx-ns1.yaml dan nginx-ns2.yaml sama, kecuali nilai
metadata.namespace. Kedua aplikasi di-bind ke PVC di namespace masing-masing.nginx-ns1.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nas-test namespace: ns1 spec: 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: nas-pvc mountPath: "/data" volumes: - name: nas-pvc persistentVolumeClaim: claimName: nas-csi-pvcnginx-ns2.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nas-test namespace: ns2 spec: 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: nas-pvc mountPath: "/data" volumes: - name: nas-pvc persistentVolumeClaim: claimName: nas-csi-pvcBuat kedua deployment tersebut.
kubectl create -f nginx-ns1.yaml -f nginx-ns2.yamlLihat informasi Pod.
kubectl get pod -A -l app=nginxOutput menunjukkan bahwa subdirektori yang sama dari sistem file NAS yang sama dipasang ke Pod di namespace berbeda.
NAMESPACE NAME READY STATUS RESTARTS AGE ns1 nas-test-b75d5b6bc-ljvfd 1/1 Running 0 2m19s ns2 nas-test-b75d5b6bc-666hn 1/1 Running 0 2m11s
Console
Di panel navigasi kiri, pilih .
Buat deployment di namespace ns1 dan pasang PVC yang sesuai.
Atur Namespace ke ns1 dan klik Create from Image.
Konfigurasi parameter untuk membuat aplikasi.
Tabel berikut menjelaskan parameter utama. Anda dapat mempertahankan pengaturan default untuk parameter lainnya. Untuk informasi selengkapnya, lihat Create a stateless workload (Deployment).
Item konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk deployment. Nama harus memenuhi persyaratan format yang ditampilkan di konsol.
nginx
Replicas
Jumlah replika deployment.
2
Container Configuration
Image Name
Alamat citra yang digunakan untuk men-deploy aplikasi.
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
Required Resources
Resource vCPU dan memori yang dibutuhkan.
0.25 vCPU, 512 MiB
Volume
Klik Add PVC dan konfigurasi parameter.
Mount Source: Pilih PVC yang Anda buat.
Container Path: Tentukan path kontainer tempat Anda ingin memasang sistem file NAS.
Mount Source: pvc-nas
Container Path: /data

Ulangi langkah sebelumnya untuk membuat deployment lain di namespace ns2 dan pasang PVC yang sesuai.
Kembali ke halaman Stateless dan periksa status kedua Deployment di namespace ns1 dan ns2 untuk memastikan Pod berjalan dan memiliki PVC yang sesuai terpasang.
Mount using the filesystem method
Jika aplikasi Anda perlu membuat dan menghapus sistem file NAS serta titik pemasangan secara dinamis, gunakan metode filesystem untuk memasang volume NAS. Saat menggunakan metode filesystem, setiap PV berkorespondensi dengan sistem file NAS dan titik pemasangan baru.
Secara default, saat PV bertipe filesystem yang diprovisikan secara dinamis dihapus, sistem file NAS dan titik pemasangan yang sesuai dipertahankan. Untuk menghapus sistem file dan titik pemasangan secara otomatis saat PV dihapus, Anda harus mengatur reclaimPolicy ke Delete dan deleteVolume ke true dalam StorageClass.
Langkah 1: Atur dan berikan izin RAM (Diperlukan hanya untuk ACK dedicated clusters)
Langkah 2: Buat StorageClass
Langkah 3: Buat PVC
Langkah 4: Buat aplikasi dan pasang volume NAS
Verifikasi penyimpanan bersama dan persisten NAS
Pod yang dibuat pada contoh sebelumnya memasang sistem file NAS yang sama. Anda dapat melakukan operasi berikut untuk memverifikasi penyimpanan:
Buat file di satu Pod, lalu lihat file tersebut dari Pod lain untuk memverifikasi penyimpanan bersama.
Buat ulang deployment dan periksa apakah data dalam sistem file masih ada di Pod yang baru dibuat untuk memverifikasi penyimpanan persisten.
Kueri informasi Pod.
kubectl get pod | grep nas-testContoh output:
nas-test-*****a 1/1 Running 0 40s nas-test-*****b 1/1 Running 0 40sVerifikasi fitur penyimpanan bersama.
Buat file di sebuah Pod.
Contoh berikut menggunakan Pod bernama
nas-test-*****a:kubectl exec nas-test-*****a -- touch /data/test.txtLihat file dari Pod lain.
Contoh berikut menggunakan Pod bernama
nas-test-*****b:kubectl exec nas-test-*****b -- ls /dataOutput yang diharapkan menunjukkan bahwa file baru
test.txtdibagikan:test.txt
Verifikasi fitur penyimpanan persisten.
Buat ulang deployment.
kubectl rollout restart deploy nas-testKueri Pod dan tunggu hingga Pod baru dibuat.
kubectl get pod | grep nas-testContoh output:
nas-test-*****c 1/1 Running 0 67s nas-test-*****d 1/1 Running 0 49sPeriksa apakah data dalam sistem file ada di Pod baru.
Contoh berikut menggunakan Pod bernama
nas-test-*****c:kubectl exec nas-test-*****c -- ls /dataOutput yang diharapkan menunjukkan bahwa data dalam sistem file NAS masih ada dan dapat diambil dari direktori pemasangan Pod baru:
test.txt
FAQ
Jika Anda mengalami masalah saat memasang atau menggunakan volume NAS, lihat topik berikut untuk troubleshooting.
Referensi
Anda dapat menggunakan Container Network File System (CNFS) untuk mengelola sistem file NAS secara independen dan meningkatkan performa serta kontrol Quality of Service (QoS). Untuk informasi selengkapnya, lihat Use CNFS to manage NAS file systems.
Sistem file NAS tujuan umum yang dipasang menggunakan metode subpath mendukung fitur kuota direktori. Anda dapat menetapkan batas kapasitas untuk PV subdirektori guna meningkatkan pemanfaatan resource. Untuk informasi selengkapnya, lihat Set directory quotas for dynamically provisioned NAS volumes.
