Volume NAS adalah sistem file terdistribusi yang menyediakan akses bersama, skalabilitas, keandalan tinggi, dan kinerja tinggi. Topik ini menjelaskan cara menggunakan volume Alibaba Cloud NAS yang disediakan secara statis untuk menerapkan penyimpanan persisten dan bersama.
Prasyarat
Kluster ACK Serverless telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK Serverless.
Sistem file NAS telah dibuat. Untuk informasi selengkapnya, lihat Buat sistem file.
Jika Anda ingin mengenkripsi data dalam volume NAS, Anda harus mengonfigurasi jenis enkripsi saat membuat sistem file NAS.
Titik pemasangan NAS telah dibuat. Untuk informasi selengkapnya, lihat Kelola titik pemasangan.
Titik pemasangan NAS harus berada dalam VPC yang sama dengan node kluster.
Anda telah terhubung ke kluster menggunakan kubectl. Untuk informasi selengkapnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Skenario
Aplikasi yang memiliki persyaratan tinggi terhadap I/O disk.
Anda dapat menerapkan berbagi file lintas host. Misalnya, Anda dapat menggunakan volume NAS sebagai server file.
Pertimbangan
Saat menggunakan sistem file NAS Ekstrem,
pathvolume harus merupakan subdirektori dari /share. Misalnya, Anda dapat mengatur subdirektori sistem file NAS yang dipasang ke pod menjadi /share/path1.Sistem file NAS dapat dipasang ke beberapa pod secara bersamaan. Dalam kasus ini, pod-pod tersebut mungkin memodifikasi data yang sama. Aplikasi Anda harus mampu menyinkronkan data.
CatatanAnda tidak dapat memodifikasi izin, pemilik, atau kelompok direktori / pada sistem file NAS.
Jika Anda mengatur parameter securityContext.fsgroup dalam templat aplikasi, Kubelet akan menjalankan operasi
chmodatauchownsetelah volume dipasang. Hal ini memperpanjang waktu pemasangan.CatatanJika Anda telah mengatur parameter securityContext.fsgroup dan ingin mengurangi waktu pemasangan, lihat Waktu pemasangan volume NAS diperpanjang.
Gunakan volume NAS yang disediakan secara statis di konsol
Step 1: Create a Persistent Volume (PV)
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik nama kluster tersebut atau klik Details di kolom Actions. Halaman detail kluster akan muncul.
Di panel navigasi sebelah kiri halaman detail kluster, pilih .
Pada halaman Persistent Volumes, klik Create di pojok kanan atas.
Pada kotak dialog Create Persistent Volume, atur parameter-parameter berikut.
Parameter
Deskripsi
Volume Type
Pada contoh ini, pilih NAS.
Name
Nama PV. Nama harus unik dalam kluster. Pada contoh ini, digunakan pv-nas.
Capacity
Kapasitas PV. Perhatikan bahwa sistem file NAS tidak memiliki batas kapasitas. Parameter ini menentukan kapasitas PV, bukan batas kapasitas sistem file NAS.
Access Mode
Pilih ReadWriteMany atau ReadWriteOnce. Nilai default-nya adalah ReadWriteMany.
Mount Target Domain Name
Anda dapat Select Mount Target atau menentukan titik pemasangan Custom sebagai alamat pemasangan bagi kluster untuk mengakses sistem file NAS.
Advanced Options (Optional)
Mount Path
Subdirektori dalam sistem file NAS yang akan dipasang.
Jika tidak diatur, nilai default-nya adalah root (
/untuk NAS tujuan umum,/shareuntuk NAS Ekstrem).Jika direktori tidak ada, direktori tersebut akan dibuat.
CatatanUntuk NAS Ekstrem, path harus dimulai dengan
/share, seperti/share/data.Reclaim Policy
Nilai default-nya adalah Retain. Ini menunjukkan bahwa ketika PVC dihapus, PV dan sistem file NAS terkait tetap dipertahankan dan hanya dapat dihapus secara manual.
Mount Options
Parameter pemasangan NAS, termasuk versi protokol NFS. Kami merekomendasikan penggunaan protokol NFS v3 karena NAS Ekstrem hanya mendukung NFS v3. Untuk informasi lebih lanjut tentang protokol NFS, lihat Protokol NFS.
Labels
Tambahkan label ke PV.
Setelah mengatur parameter, klik Create.
Step 2: Create a Persistent Volume Claim (PVC)
Di panel navigasi sebelah kiri halaman detail, pilih .
Pada halaman Persistent Volume Claims, klik Create di pojok kanan atas.
Pada kotak dialog Create Persistent Volume Claim, atur parameter-parameter berikut.
Parameter
Deskripsi
Storage Claim Type
Pada contoh ini, pilih NAS.
Name
Nama PVC. Nama harus unik dalam kluster.
Allocation Mode
Pilih Volume yang Ada.
CatatanJika belum ada PV yang dibuat, Anda dapat mengatur Allocation Mode menjadi Create Volume dan atur parameter untuk membuat PV. Untuk informasi selengkapnya, lihat Buat PV.
Existing Volume
Klik Select Existing Volume, temukan PV yang dituju, lalu klik Select di kolom Tindakan.
Capacity
Kapasitas PV.
CatatanKapasitas yang diklaim oleh PVC tidak boleh melebihi kapasitas PV yang terikat ke PVC tersebut.
Klik Create.
Setelah PVC dibuat, Anda dapat melihatnya dalam daftar. Status PVC berubah menjadi Bound, yang menunjukkan bahwa PVC tersebut telah terikat ke PV yang sesuai.
Step 3: Create an application
Di panel navigasi sebelah kiri halaman detail kluster, buka .
Pada 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 selengkapnya, 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 path kontainer tempat Anda ingin memasang sistem file NAS.
Sumber Pemasangan: pvc-nas
Path Kontainer: /data
Lihat status deployment aplikasi.
Pada halaman Deployments, klik nama aplikasi.
Pada tab Pods, pastikan pod berada dalam status Running.
Gunakan volume NAS yang disediakan secara statis menggunakan kubectl
Jalankan perintah berikut untuk membuat PV yang disediakan secara statis.
kubectl create -f pv-nas.yamlKode berikut menyediakan contoh file YAML untuk membuat PV yang disediakan secara statis.
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 volumeAttributes: server: "2564f4****-ysu87.cn-shenzhen.nas.aliyuncs.com" path: "/csi" mountOptions: - nolock,tcp,noresvport - vers=3Parameter
Deskripsi
name
Nama PV.
labels
Label PV.
storage
Kapasitas tersedia sistem file NAS.
accessModes
Mode akses.
driver
Jenis driver. Pada contoh ini, nilainya adalah
nasplugin.csi.alibabacloud.com, yang menunjukkan bahwa plugin CSI Alibaba Cloud NAS digunakan.volumeHandle
ID unik PV. Jika Anda ingin menggunakan beberapa PV secara bersamaan, nilai parameter ini harus unik untuk setiap PV.
server
Titik pemasangan NAS.
path
Subdirektori yang akan dipasang. Untuk sistem file NAS Ekstrem, subdirektori harus merupakan subdirektori dari /share.
vers
Nomor versi protokol NFS yang digunakan untuk memasang volume NAS. Kami merekomendasikan penggunaan v3. Sistem file NAS Ekstrem hanya mendukung v3.
Jalankan perintah berikut untuk membuat PVC yang disediakan secara statis.
Buat PVC untuk sistem file NAS. Gunakan bidang
selectoruntuk memfilter PV dan mengikat PVC ke PV tertentu.kubectl create -f pvc-nas.yamlKode berikut menyediakan contoh file YAML untuk membuat PVC yang disediakan secara statis.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-nas spec: accessModes: - ReadWriteMany resources: requests: storage: 5Gi selector: matchLabels: alicloud-pvname: pv-nasParameter
Deskripsi
name
Nama PVC.
accessModes
Mode akses.
storage
Kapasitas yang diminta oleh aplikasi. Nilainya tidak boleh lebih besar daripada kapasitas total PV.
matchLabels
Label PV yang akan diasosiasikan.
Jalankan perintah berikut untuk membuat aplikasi bernama nas-static dan memasang PVC tersebut.
kubectl create -f nas.yamlKode berikut menyediakan contoh file nas.yaml untuk membuat aplikasi nas-static.
apiVersion: apps/v1 kind: Deployment metadata: name: nas-static labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80 volumeMounts: - name: pvc-nas mountPath: "/data" volumes: - name: pvc-nas persistentVolumeClaim: claimName: pvc-nasParameter
Deskripsi
mountPath
Path tempat volume NAS dipasang di dalam kontainer.
claimName
Nama PVC yang akan diikat.
Jalankan perintah berikut untuk melihat informasi pod.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-static-5b5cdb85f6-n**** 1/1 Running 0 32s nas-static-c5bb4746c-4**** 1/1 Running 0 32s
Verifikasi persistensi volume NAS
Lihat aplikasi yang dideploy dan file NAS.
Jalankan perintah berikut untuk melihat nama pod aplikasi yang dideploy.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-static-5b5cdb85f6-n**** 1/1 Running 0 32s nas-static-c5bb4746c-4**** 1/1 Running 0 32sJalankan perintah berikut untuk melihat file di path /data salah satu pod aplikasi. Topik ini menggunakan pod bernama
nas-static-5b5cdb85f6-n****sebagai contoh.kubectl exec nas-static-5b5cdb85f6-n**** -- ls /dataPerintah tidak menghasilkan output, yang menunjukkan bahwa tidak ada file di path /data.
Jalankan perintah berikut untuk membuat file bernama nas di path /data pod
nas-static-5b5cdb85f6-n****.kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nasJalankan perintah berikut untuk melihat file di path /data pod
nas-static-5b5cdb85f6-n****.kubectl exec nas-static-5b5cdb85f6-n**** -- ls /dataOutput yang diharapkan:
nasJalankan perintah berikut untuk menghapus pod.
kubectl delete pod nas-static-5b5cdb85f6-n****Di jendela lain, jalankan perintah berikut untuk memantau penghapusan pod dan pembuatan pod baru oleh Kubernetes.
kubectl get pod -w -l app=nginxVerifikasi bahwa file yang dibuat di volume NAS masih ada setelah pod dihapus.
Jalankan perintah berikut untuk melihat nama pod yang dibuat ulang oleh Kubernetes.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-static-5b5cdb85f6-n**** 1/1 Running 0 32s nas-static-c5bb4746c-4**** 1/1 Running 0 32sJalankan perintah berikut untuk melihat file di path /data pod
nas-static-5b5cdb85f6-n****.kubectl exec nas-static-5b5cdb85f6-n**** -- ls /dataOutput yang diharapkan:
nasFile nas masih ada, yang menunjukkan bahwa data dalam volume NAS bersifat persisten.
Verifikasi penyimpanan bersama volume NAS
Lihat pod tempat aplikasi dideploy dan file NAS.
Jalankan perintah berikut untuk melihat nama pod tempat aplikasi dideploy.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nas-static-5b5cdb85f6-n**** 1/1 Running 0 32s nas-static-c5bb4746c-4**** 1/1 Running 0 32sJalankan perintah berikut untuk melihat file di path /data kedua pod.
kubectl exec nas-static-5b5cdb85f6-n**** -- ls /data kubectl exec nas-static-c5bb4746c-4**** -- ls /data
Jalankan perintah berikut untuk membuat file bernama nas di path /data salah satu pod.
kubectl exec nas-static-5b5cdb85f6-n**** -- touch /data/nasJalankan perintah berikut untuk melihat file di path /data kedua pod.
Jalankan perintah berikut untuk melihat file di path /data pod bernama
nas-static-5b5cdb85f6-n****.kubectl exec nas-static-5b5cdb85f6-n**** -- ls /dataOutput yang diharapkan:
nasJalankan perintah berikut untuk melihat file di path /data pod bernama
nas-static-c5bb4746c-4****.kubectl exec nas-static-c5bb4746c-4**** -- ls /dataOutput yang diharapkan:
nasJika file yang dibuat di path /data salah satu pod juga ada di path /data pod lainnya, hal ini menunjukkan bahwa kedua pod berbagi volume NAS yang sama.