Volume Network Attached Storage (NAS) sangat ideal untuk skenario seperti analitik data besar, berbagi data, aplikasi web, dan persistensi log. Alih-alih membuat dan mengonfigurasi sumber daya penyimpanan statis secara manual, Anda dapat menggunakan klaim volume persisten (PVC) dan StorageClass untuk menyediakannya secara dinamis. Dengan cara ini, sistem akan secara otomatis membuat volume persisten (PV) untuk Anda. Volume NAS yang disediakan secara dinamis dapat dipasang menggunakan tiga metode: subpath, sharepath, dan filesystem.
Prasyarat
Plugin CSI telah diinstal di kluster. Jika diperlukan peningkatan, lihat Tingkatkan csi-plugin dan csi-provisioner.
CatatanJika kluster Anda menggunakan FlexVolume, tingkatkan ke CSI karena FlexVolume sudah tidak digunakan lagi. Untuk detailnya, lihat Tingkatkan dari FlexVolume ke CSI. Untuk memverifikasi jenis komponen penyimpanan Anda, buka , lalu klik tab Storage.
Layanan Penyimpanan File NAS telah diaktifkan.
Jika Anda menggunakannya untuk pertama kali, ikuti petunjuk di layar pada halaman produk Penyimpanan File NAS untuk mengaktifkan layanan tersebut.
Batasan
Pemasangan sistem file NAS yang menggunakan protokol SMB tidak didukung.
Sistem file NAS hanya dapat dipasang ke pod dalam virtual private cloud (VPC) yang sama. Pemasangan lintas-VPC tidak didukung.
CatatanDalam VPC yang sama, volume NAS dapat dipasang lintas zona ketersediaan (AZ) yang berbeda.
Sistem file NAS tujuan umum dan Ekstrem memiliki batasan berbeda terkait konektivitas, jumlah sistem file, dan jenis protokol. Untuk detailnya, lihat Batasan.
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 menyertakan 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 pemasangan. Melakukannya dapat menyebabkan sistem tidak merespons.
Metode pemasangan
Parameter volumeAs dalam StorageClass menentukan hubungan antara PV dan sistem file NAS atau subdirektori-nya. Pilih metode pemasangan sesuai kebutuhan.
Metode pemasangan | Deskripsi | Kasus penggunaan |
Membuat PV bertipe subdirektori, di mana setiap PV sesuai dengan subdirektori unik dalam sistem file NAS yang sama. |
| |
Membuat PV yang semuanya mengarah ke direktori bersama yang sama yang ditentukan dalam StorageClass. Tidak ada subdirektori baru yang dibuat per PV. | Beberapa pod di namespace berbeda perlu memasang subdirektori NAS yang sama. | |
Menggunakan filesystem (Tidak disarankan) | Otomatis membuat sistem file NAS untuk setiap PV. Satu PV sesuai dengan satu sistem file NAS lengkap. | Aplikasi memerlukan sistem file NAS khusus yang perlu dibuat dan dihapus secara dinamis bersama beban kerja. |
Pasang menggunakan metode subpath
Metode subpath memerlukan versi komponen Container Storage Interface (CSI) 1.31.4 atau lebih baru. Untuk meningkatkan, lihat Tingkatkan csi-plugin dan csi-provisioner.
Langkah 1: Dapatkan informasi sistem file NAS dan titik pemasangan
Masuk ke Konsol NAS. Di panel navigasi kiri, pilih .
Buat sistem file NAS dan titik pemasangan.
Pastikan sistem file menggunakan protokol Network File System (NFS) dan titik pemasangan berada dalam VPC yang sama dengan node kluster Anda.
Jika Anda memiliki sistem file NAS yang sudah ada, pastikan sistem tersebut memenuhi persyaratan ini.
Jika Anda belum memiliki sistem file NAS, buat satu. Untuk petunjuknya, lihat Buat sistem file dan Kelola titik pemasangan.
Dapatkan alamat titik pemasangan.
Klik ID sistem file. Di panel navigasi kiri, klik Mount Targets.
Di bagian Mount Target, pastikan statusnya Available dan salin alamat titik pemasangan.
Langkah 2: Buat StorageClass
kubectl
Modifikasi manifes 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. Kami merekomendasikan penggunaan NFSv3. NAS Ekstrem hanya mendukung NFSv3.
parametersvolumeAsMetode pemasangan. Dalam contoh ini, nilainya diatur ke
subpathuntuk membuat PV bertipe subdirektori. Satu PV sesuai dengan satu subdirektori dalam sistem file NAS.serverAlamat titik pemasangan dan subdirektori sistem file NAS yang akan dipasang. Formatnya adalah
<alamat titik pemasangan NAS>:<direktori pemasangan>. Jika Anda tidak menentukan subdirektori, direktori root/akan dipasang secara default.archiveOnDeleteMenentukan apakah data penyimpanan backend akan dihapus ketika
reclaimPolicydiatur keDelete. Parameter ini ditambahkan sebagai konfirmasi karena NAS adalah layanan penyimpanan bersama.true(default): Direktori atau file dipertahankan dan diganti namanya menjadiarchived-{pvName}.{timestamp}.false: Sumber daya penyimpanan backend dihapus secara permanen.
CatatanUntuk beban kerja berlalu lintas tinggi, tidak disarankan mengatur parameter ini ke
false. Untuk informasi lebih lanjut, lihat FAQ volume NAS.Untuk menghapus sepenuhnya data penyimpanan backend, Anda harus mengatur
parameters.archiveOnDeletekefalsemenggunakan kubectl.
provisionerJenis driver. Nilainya harus diatur ke
nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI NAS Alibaba Cloud digunakan.reclaimPolicyKebijakan pengembalian PV. Nilai default-nya adalah
Delete.Retainjuga didukung.Delete: Nilai ini harus digunakan bersamaarchiveOnDelete.Ketika
archiveOnDeleteadalahtrue, file dalam sistem file NAS diganti namanya tetapi tidak dihapus saat PVC dihapus.Ketika
archiveOnDeleteadalahfalse, file dalam sistem file NAS dihapus saat PVC dihapus.PentingDirektori subpath dan file-nya dalam sistem file NAS akan dihapus. Sistem file NAS itu sendiri dipertahankan. Untuk menghapus sistem file NAS, lihat Hapus sistem file.
Retain: Saat PVC dihapus, PV dan file dalam sistem file NAS dipertahankan. Anda harus menghapusnya secara manual.
Jika keamanan data menjadi prioritas tinggi, kami merekomendasikan mengatur parameter ini ke
Retainuntuk mencegah kehilangan data yang tidak disengaja.allowVolumeExpansionDidukung hanya untuk sistem file NAS tujuan umum. Jika diatur ke
true, kuota direktori dikonfigurasi untuk PV yang dibuat secara dinamis oleh StorageClass untuk membatasi kapasitas yang tersedia. Anda juga dapat memperbarui PVC untuk memperluas kapasitas volume. Untuk informasi lebih lanjut, lihat Atur kuota direktori untuk volume NAS yang disediakan secara dinamis.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. Lihat Kuota direktori.
Buat StorageClass.
kubectl create -f alicloud-nas-subpath.yaml
Konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Di halaman StorageClasses, klik Create.
Pada kotak dialog yang muncul, konfigurasi parameter dan klik OK.
Tabel berikut menjelaskan konfigurasi:
Konfigurasi
Deskripsi
Contoh
Name
Nama StorageClass. Lihat UI untuk persyaratan format.
alicloud-nas-subpath
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 Subdirectory untuk menggunakan metode subpath. Subdirektori unik akan dibuat secara otomatis di bawah path pemasangan untuk setiap PV. Data disimpan di
<titik pemasangan NAS>:<path pemasangan>/<nama-pv>/.CatatanMode ini memerlukan versi komponen CSI 1.31.4 atau lebih baru. Jika tidak, sistem akan menggunakan mode Shared Directory secara default.
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 memasang subdirektori pada sistem file NAS Ekstrem,pathharus dimulai dengan/share, seperti/share/data./k8s
Reclaim Policy
Kebijakan pengembalian PV. Retain direkomendasikan untuk mencegah kehilangan data yang tidak disengaja.
Delete: Parameter ini harus dikonfigurasi bersama
archiveOnDelete. Di konsol, memilih Delete tidak akan benar-benar menghapus data pada volume NAS saat Anda menghapus PVC. Hal ini karena parameterarchiveOnDeleteyang mendasarinya 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. Kami merekomendasikan penggunaan NFSv3. NAS Ekstrem hanya mendukung NFSv3.
Pertahankan nilai default
Setelah StorageClass dibuat, Anda dapat melihatnya di daftar StorageClasses.
Langkah 3: Buat PVC
kubectl
Modifikasi manifes 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-nya adalah
ReadWriteMany.ReadWriteOncedanReadOnlyManyjuga didukung.storageClassNameNama StorageClass yang akan diikat.
storageKapasitas volume yang ingin Anda minta.
PentingSecara default, kapasitas sebenarnya yang tersedia untuk volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi lebih lanjut, lihat NAS tujuan umum dan NAS Ekstrem.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI akan menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia untuk volume NAS.
Buat PVC.
kubectl create -f nas-pvc.yamlVerifikasi bahwa PV telah dibuat dan diikat ke PVC.
kubectl get pvcOutput harus menunjukkan
STATUSsebagaiBound, yang menunjukkan bahwa komponen CSI secara otomatis membuat PV berdasarkan StorageClass dan mengikat PV 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
Konsol
Di panel navigasi kiri halaman detail, pilih .
Di halaman Persistent Volume Claims, klik Create.
Pada kotak dialog Create PVC, konfigurasi parameter dan klik OK.
Konfigurasi
Deskripsi
Contoh
PVC Type
Pilih NAS.
NAS
Name
Nama PVC. Nama harus unik dalam namespace.
pvc-nasAllocation Mode
Dalam contoh ini, pilih Use StorageClass.
Use StorageClass
Existing StorageClass
Klik Select StorageClass dan pilih yang telah Anda buat pada langkah sebelumnya.
alicloud-nas-subpathCapacity
Kapasitas volume. Pengaturan ini tidak membatasi kapasitas maksimum yang dapat digunakan aplikasi.
PentingSecara default, kapasitas sebenarnya yang tersedia untuk volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi lebih lanjut, lihat NAS tujuan umum dan NAS Ekstrem.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI akan menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia untuk volume NAS.
20Gi
Access Mode
Nilai default-nya adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.
ReadWriteMany
Langkah 4: Buat aplikasi dan pasang volume NAS
kubectl
Buat dua Penyebaran dan pasang PVC yang sama ke keduanya. Hal ini memungkinkan mereka berbagi subdirektori yang sama dalam sistem file NAS yang sama.
Untuk menetapkan pod berbeda ke subdirektori unik pada sistem file NAS yang sama, buat StorageClass dan PVC berbeda untuk setiap direktori target.
Modifikasi manifes YAML berikut dan simpan file sebagai
nginx-1.yamldannginx-2.yamlmasing-masing.Konfigurasi berikut dalam
nginx-1.yamldannginx-2.yamlsama, kecuali nilaimetadata.name. Kedua aplikasi diikat 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 # Digunakan untuk mengikat PVCnginx-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 # Digunakan untuk mengikat PVCBuat dua Penyebaran tersebut.
kubectl create -f nginx-1.yaml -f nginx-2.yamlVerifikasi pod sedang berjalan.
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
Konsol
Ulangi langkah-langkah berikut untuk membuat dua Penyebaran yang memasang PVC yang sama, sehingga memungkinkan mereka berbagi satu subdirektori dalam sistem file NAS.
Di panel navigasi kiri halaman detail kluster, buka .
Di halaman Deployments, klik Create From Image.
Konfigurasi parameter untuk membuat aplikasi.
Tabel berikut menjelaskan parameter utama. Anda dapat mempertahankan pengaturan default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat beban kerja tanpa status (Deployment).
Langkah konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk Deployment. Nama harus memenuhi persyaratan format yang ditampilkan di konsol.
deployment-nas-1Replicas
Jumlah replika pod.
1
Container
Image Name
Alamat citra yang digunakan untuk menyebar aplikasi.
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6Required Resources
Sumber daya vCPU dan memori yang diperlukan.
0.25 vCPU, 512 MiB
Volume
Klik Add PVC dan konfigurasi parameter.
Mount Source: Pilih PVC yang telah Anda buat.
Container Path: Tentukan path kontainer tempat Anda ingin memasang sistem file NAS.
Mount Source:
pvc-nasContainer Path:
/data

Lihat status penyebaran aplikasi.
Di halaman Deployments, klik nama aplikasi.
Di tab Pods, pastikan pod berada dalam status Running.
Pasang menggunakan metode sharepath
Langkah 1: Dapatkan informasi sistem file NAS dan titik pemasangan
Masuk ke Konsol NAS. Di panel navigasi kiri, pilih .
Buat sistem file NAS dan titik pemasangan.
Pastikan sistem file menggunakan protokol Network File System (NFS) dan titik pemasangan berada dalam VPC yang sama dengan node kluster Anda.
Jika Anda memiliki sistem file NAS yang sudah ada, pastikan sistem tersebut memenuhi persyaratan ini.
Jika Anda belum memiliki sistem file NAS, buat satu. Untuk petunjuknya, lihat Buat sistem file dan Kelola titik pemasangan.
Dapatkan alamat titik pemasangan.
Klik ID sistem file. Di panel navigasi kiri, klik Mount Targets.
Di bagian Mount Target, pastikan statusnya Available dan salin alamat titik pemasangan.
Langkah 2: Buat StorageClass
kubectl
Buat file bernama
alicloud-nas-sharepath.yamldengan manifes YAML berikut dan modifikasi 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. Kami merekomendasikan penggunaan NFSv3. NAS Ekstrem hanya mendukung NFSv3.
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 akan digunakan. Artinya, setiap PV akan memetakan ke direktori NAS yang sama.serverAlamat titik pemasangan dan subdirektori sistem file NAS yang akan dipasang. Formatnya adalah
<alamat titik pemasangan NAS>:<direktori pemasangan>.Jika Anda tidak menentukan subdirektori, direktori root
/akan 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
/, sedangkan untuk sistem file NAS Ekstrem adalah/share. Saat 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 CSI NAS Alibaba Cloud digunakan.reclaimPolicyKebijakan pengembalian PV. Saat menggunakan metode sharepath, Anda harus mengatur parameter ini ke
Retain.Buat StorageClass.
kubectl create -f alicloud-nas-sharepath.yaml
Konsol
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel kiri, pilih .
Di halaman StorageClasses, klik Create.
Pada kotak dialog yang muncul, konfigurasi parameter dan klik OK.
Tabel berikut menjelaskan konfigurasi utama:
Konfigurasi
Deskripsi
Contoh
Name
Nama StorageClass. Lihat UI untuk persyaratan format.
alicloud-nas-sharepathPV Type
Pilih NAS.
NAS
Select Mount Target
Alamat titik pemasangan sistem file NAS.
0cd8b4a576-g****.cn-hangzhou.nas.aliyuncs.comVolume 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 akan 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 memasang subdirektori pada sistem file NAS Ekstrem,pathharus dimulai dengan/share, seperti/share/data./sharepathReclaim Policy
Saat menggunakan metode sharepath, Anda harus mengatur parameter ini ke
Retain.Retain
Mount Options
Opsi pemasangan untuk volume NAS, termasuk versi protokol NFS. Kami merekomendasikan penggunaan NFSv3. NAS Ekstrem hanya mendukung NFSv3.
Pertahankan nilai default
Setelah StorageClass dibuat, Anda dapat melihatnya di daftar Storage Classes.
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
ns1danns2.kubectl create ns ns1 kubectl create ns ns2Modifikasi manifes 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-nya adalah
ReadWriteMany.ReadWriteOncedanReadOnlyManyjuga didukung.storageClassNameNama StorageClass yang akan diikat.
storageKapasitas volume yang ingin Anda minta.
PentingSecara default, kapasitas sebenarnya yang tersedia untuk volume NAS tidak dibatasi oleh konfigurasi ini. Kapasitas ditentukan oleh spesifikasi sistem file NAS. Untuk informasi lebih lanjut, lihat NAS tujuan umum dan NAS Ekstrem.
Jika Anda menggunakan sistem file NAS tujuan umum dan mengatur
allowVolumeExpansionStorageClass ketrue, komponen CSI akan menetapkan kuota direktori berdasarkan konfigurasi ini untuk membatasi kapasitas yang tersedia untuk volume NAS.
Buat PVC.
kubectl create -f pvc.yamlVerifikasi bahwa PV telah dibuat dan diikat ke PVC.
kubectl get pvOutput harus 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
Konsol
Buat namespace
ns1danns2. Untuk detailnya, lihat Buat namespace.Di panel navigasi kiri halaman detail, pilih .
Buat PVC di namespace
ns1.Di halaman Persistent Volume Claims, atur Namespace ke ns1 dan klik Create.
Pada kotak dialog Create PVC, konfigurasi parameter dan klik OK.
Konfigurasi
Deskripsi
Contoh
PVC Type
Pilih NAS.
NAS
Name
Nama PVC. Nama harus unik dalam namespace.
pvc-nasAllocation Mode
Dalam contoh ini, pilih Use StorageClass.
Use StorageClass
Existing StorageClass
Klik Select StorageClass dan pilih yang telah Anda buat.
alicloud-nas-sharepathCapacity
Kapasitas volume.
20Gi
Access Mode
Nilai default-nya adalah ReadWriteMany. Anda juga dapat memilih ReadWriteOnce atau ReadOnlyMany.
ReadWriteMany
Ulangi langkah-langkah sebelumnya untuk membuat PVC lain di namespace
ns2.Kembali ke halaman Persistent Volume Claims. Di namespace
ns1danns2, 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 akan berbagi direktori NAS yang didefinisikan dalam StorageClass.
kubectl
Simpan konten YAML berikut sebagai
nginx-ns1.yamldannginx-ns2.yamlmasing-masing, dan modifikasi sesuai kebutuhan.Konfigurasi berikut dalam
nginx-ns1.yamldannginx-ns2.yamlsama, kecuali nilaimetadata.namespace. Kedua aplikasi diikat 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 dua Penyebaran tersebut.
kubectl create -f nginx-ns1.yaml -f nginx-ns2.yamlVerifikasi bahwa pod sedang berjalan.
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
Konsol
Di panel navigasi kiri halaman detail kluster, buka .
Buat Deployment di namespace
ns1dan 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 lebih lanjut, lihat Buat beban kerja tanpa status (Deployment).
Langkah konfigurasi
Parameter
Deskripsi
Contoh
Basic Information
Name
Masukkan nama kustom untuk Deployment. Nama harus memenuhi persyaratan format yang ditampilkan di konsol.
nginxReplicas
Jumlah replika pod.
2
Container
Image Name
Alamat citra yang digunakan untuk menyebar aplikasi.
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6Required Resources
Sumber daya vCPU dan memori yang diperlukan.
0.25 vCPU, 512 MiB
Volume
Klik Add PVC dan konfigurasi parameter.
Mount Source: Pilih PVC yang telah Anda buat.
Container Path: Tentukan path kontainer tempat Anda ingin memasang sistem file NAS.
Mount Source:
pvc-nasContainer Path:
/data

Ulangi langkah-langkah sebelumnya untuk membuat Deployment lain di namespace
ns2dan pasang PVC yang sesuai.Kembali ke halaman Deployments. Di namespace
ns1danns2, lihat status dua Deployment tersebut. Pastikan pod sedang berjalan dan PVC yang sesuai dipasang.
Pasang menggunakan metode filesystem
Jika aplikasi Anda perlu membuat dan menghapus sistem file NAS serta titik pemasangan secara dinamis, gunakan metode filesystem untuk memasang volume NAS. Pod yang menggunakan volume NAS bertipe filesystem hanya dapat membuat satu sistem file dan satu titik pemasangan.
Secara default, saat volume NAS bertipe filesystem yang disediakan secara dinamis dihapus, sistem file dan titik pemasangan dipertahankan. Untuk melepas sistem file NAS dan titik pemasangan secara bersamaan dengan pelepasan sumber daya PV, Anda harus mengatur reclaimPolicy ke Delete dan deleteVolume ke true dalam StorageClass.
Langkah 1: Berikan izin RAM (Diperlukan hanya untuk kluster khusus ACK)
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 dalam contoh sebelumnya semuanya memasang sistem file NAS yang sama. Anda dapat menggunakan langkah-langkah berikut untuk memverifikasi perilakunya:
Untuk memverifikasi penyimpanan bersama, buat file dari satu pod dan pastikan file tersebut terlihat dari pod kedua.
Untuk memverifikasi persistensi, mulai ulang Deployment dan periksa apakah file tersebut masih ada setelah pod baru berjalan.
Lihat informasi pod.
kubectl get pod | grep nas-testHasil contoh:
nas-test-*****a 1/1 Running 0 40s nas-test-*****b 1/1 Running 0 40sVerifikasi penyimpanan bersama.
Buat file di pod.
Dalam contoh ini, pod
nas-test-*****adigunakan:kubectl exec nas-test-*****a -- touch /data/test.txtLihat file dari pod lain.
Dalam contoh ini, pod
nas-test-*****bdigunakan:kubectl exec nas-test-*****b -- ls /dataOutput yang diharapkan menunjukkan bahwa file yang baru dibuat
test.txtdibagikan:test.txt
Verifikasi penyimpanan persisten.
Buat ulang Deployment.
kubectl rollout restart deploy nas-testTunggu hingga pod dibuat ulang.
kubectl get pod | grep nas-testHasil contoh:
nas-test-*****c 1/1 Running 0 67s nas-test-*****d 1/1 Running 0 49sMasuk ke pod yang dibuat ulang dan periksa apakah file tersebut masih ada di sistem file.
Dalam contoh ini, pod
nas-test-*****cdigunakan:kubectl exec nas-test-*****c -- ls /dataOutput berikut menunjukkan bahwa file tersebut masih ada di sistem file NAS dan dapat diakses dari direktori pemasangan di pod yang dibuat ulang.
test.txt
FAQ
Jika Anda mengalami masalah saat memasang atau menggunakan volume NAS, lihat:
Referensi
Sistem file NAS tujuan umum yang dipasang menggunakan metode
subpathmendukung fitur kuota direktori. Tetapkan batas kapasitas untuk PV subdirektori untuk meningkatkan pemanfaatan sumber daya. Untuk petunjuknya, lihat Atur kuota direktori untuk volume NAS yang disediakan secara dinamis.
