Anda dapat membuat subdirektori di dalam File Storage NAS (NAS) sistem file dan memetakan subdirektori ke volume persisten (PV) yang diprovisioning secara dinamis untuk aplikasi. Topik ini menjelaskan cara memasang volume NAS yang diprovisioning secara dinamis.
Prasyarat
Sebuah kluster Container Service for Kubernetes (ACK) telah dibuat dan plugin FlexVolume telah diinstal di dalam kluster. Untuk informasi lebih lanjut, lihat Buat Kluster ACK yang Dikelola.
Komponen alicloud-nas-controller telah diterapkan di dalam kluster. Untuk informasi lebih lanjut, lihat Instal dan Tingkatkan FlexVolume.
Perhatian
Jika parameter securityContext.fsgroup disetel dalam template aplikasi, kubelet melakukan operasi chmod atau chown setelah volume dipasang, yang meningkatkan waktu konsumsi.
Untuk informasi lebih lanjut tentang cara mempercepat proses pemasangan ketika parameter securityContext.fsgroup disetel, lihat Mengapa Dibutuhkan Waktu Lama untuk Memasang Volume NAS?.
Buat volume NAS yang diprovisioning secara dinamis
Konfigurasikan StorageClass.
Contoh kode:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: alicloud-nas mountOptions: - nolock,tcp,noresvport - vers=3 parameters: server: "23a9649583-i****.cn-shenzhen.nas.aliyuncs.com:/nasroot1/" driver: flexvolume provisioner: alicloud/nas reclaimPolicy: DeleteParameter
Deskripsi
mountOptions
Opsi pemasangan PV. Volume NAS dipasang berdasarkan opsi pemasangan yang ditentukan.
server
Daftar target pemasangan yang digunakan untuk provisioning PV. Formatnya adalah nfsurl1:/path1,nfsurl2:/path2. Saat beberapa server ditentukan, PV yang diprovisioning oleh StorageClass ini menggunakan server secara bergantian. Untuk sistem file Extreme NAS, path harus dimulai dengan /share.
driver
FlexVolume dan NFS didukung. Driver default adalah NFS.
reclaimPolicy
Kebijakan reclaim PV. Kami menyarankan Anda untuk menyetel nilainya menjadi Retain.
Jika Anda menyetel nilainya menjadi Delete, nama subdirektori yang dipetakan ke PV akan otomatis berubah setelah Anda menghapus PV. Sebagai contoh, path-name berubah menjadi archived-path-name.
Jika Anda ingin menghapus subdirektori di dalam sistem file NAS, atur
archiveOnDeletemenjadi false dalam konfigurasi StorageClass.
Gunakan Volume NAS yang Diprovitioning Secara Dinamis dalam StatefulSet.
Buat Service dan StatefulSet dengan menggunakan contoh kode berikut:
apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 5 volumeClaimTemplates: - metadata: name: html spec: accessModes: - ReadWriteOnce storageClassName: alicloud-nas resources: requests: storage: 2Gi template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:alpine volumeMounts: - mountPath: "/data" name: html