Pasang sistem file Apsara File Storage NAS (NAS) ke kluster Container Service for Kubernetes (ACK) menggunakan plugin FlexVolume. Topik ini mencakup metode berbasis YAML dan berbasis konsol untuk membuat persistent volume (PV), lalu memandu Anda melalui pembuatan persistent volume claim (PVC) dan penyebaran Pod yang menggunakan penyimpanan berbasis NAS.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki sistem file NAS dengan titik pemasangan yang ditambahkan. Buat di Konsol NAS. Titik pemasangan dan kluster ACK harus berada dalam virtual private cloud (VPC) yang sama.
Konsol NASFlexVolume ditingkatkan ke versi terbaru di kluster Anda.
kubectl dikonfigurasi untuk terhubung ke kluster. Untuk detailnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Cara kerja
Memasang sistem file NAS ke kluster ACK melibatkan tiga langkah:
Buat PV — Sebagai administrator kluster, definisikan PV yang didukung oleh sistem file NAS. PV belum dikaitkan dengan workload apa pun.
Buat PVC — Ajukan klaim terhadap PV tersebut. Kubernetes mengikat PVC ke PV yang sesuai berdasarkan kelas penyimpanan, mode akses, dan kapasitas.
Sebarkan Pod — Rujuk PVC dalam Penyebaran Anda. Sistem file NAS dipasang ke dalam kontainer pada path yang ditentukan.
Setelah FlexVolume diinstal di kluster, operasi pemasangan dan pencopotan pemasangan akan ditangani menggunakan protokol NFS.
Langkah 1: Buat PV
Buat PV menggunakan file YAML atau Konsol ACK.
Opsi 1: File YAML
Simpan kode berikut sebagai nas-pv.yaml, lalu jalankan kubectl apply -f nas-pv.yaml.
Ganti <mount-target-domain> dengan nama domain titik pemasangan NAS Anda, dan <subdirectory> dengan path dalam sistem file NAS yang akan dipasang (misalnya, /k8s).
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-nas
spec:
capacity:
storage: 5Gi
storageClassName: nas
accessModes:
- ReadWriteMany
flexVolume:
driver: "alicloud/nas"
options:
server: "<mount-target-domain>"
path: "<subdirectory>"
vers: "3"
options: "nolock,tcp,noresvport"Verifikasi bahwa PV telah dibuat dan berada dalam status Available:
kubectl get pv pv-nasOutput yang diharapkan:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS AGE
pv-nas 5Gi RWX Retain Available nas 5sOpsi 2: Konsol ACK
Masuk ke Konsol ACK.
Pada panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster target atau klik Details di kolom Actions.
Pada panel navigasi sebelah kiri, pilih Volumes > Persistent Volumes.
Klik Create di pojok kanan atas.
Pada dialog Create PV, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
| Parameter | Deskripsi | Wajib | Bawaan |
|---|---|---|---|
| PV type | Pilih NAS. | Ya | — |
| Volume name | Nama unik untuk PV dalam kluster. Contoh: pv-nas. | Ya | — |
| Volume plug-in | Pilih Flexvolume. | Ya | — |
| Capacity | Kapasitas PV. Tidak boleh melebihi kapasitas sistem file NAS. | Ya | — |
| Access mode | Mode akses. Sistem file NAS mendukung ReadWriteMany, yang memungkinkan beberapa node membaca dan menulis secara bersamaan. | Ya | ReadWriteMany |
| Mount target domain name | Nama domain titik pemasangan NAS. Lihat Manage mount targets. | Ya | — |
| Subdirectory | Subdirektori dalam sistem file NAS, dimulai dengan /. Jika subdirektori tidak ada, akan dibuat secara otomatis. Biarkan kosong untuk memasang direktori root. Untuk sistem file NAS Ekstrem, path harus dimulai dengan /share. | Tidak | Root directory |
| Permissions | Izin akses pada direktori yang dipasang, seperti 755, 644, atau 777. Hanya berlaku saat memasang subdirektori. Jika direktori berisi banyak file, hindari mengatur parameter ini agar perintah chmod tidak berjalan terlalu lama. | Tidak | Original permissions |
| chmod (Change Mode) | Cara perubahan izin diterapkan: Non-recursive (hanya memengaruhi direktori yang dipasang) atau Recursive (memengaruhi direktori yang dipasang beserta semua subdirektori dan file). Untuk versi FlexVolume sebelum V1.14.6.15-8d3b7e7-aliyun, izin selalu diterapkan secara rekursif. Untuk V1.14.6.15-8d3b7e7-aliyun dan versi setelahnya, gunakan parameter ini untuk mengontrol cakupannya. | Tidak | — |
| Version | Versi protokol NFS. NFSv3 direkomendasikan. Sistem file NAS Ekstrem hanya mendukung NFSv3. | Tidak | NFSv3 |
| Labels | Label yang akan ditambahkan ke PV. | Tidak | — |
Klik Create.
Jika Anda memilih Recursive untuk direktori yang dipasang dengan jumlah file yang sangat banyak, perintah chmod mungkin berjalan dalam waktu lama, sehingga menyebabkan operasi pemasangan atau pencopotan pemasangan gagal.
Langkah 2: Buat PVC
Simpan kode berikut sebagai nas-pvc.yaml, lalu jalankan kubectl apply -f nas-pvc.yaml.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-nas
spec:
accessModes:
- ReadWriteMany
storageClassName: nas
resources:
requests:
storage: 5GiKubernetes mengikat PVC ke PV pv-nas berdasarkan kesesuaian kelas penyimpanan, mode akses, dan kapasitas. Verifikasi pengikatan tersebut:
kubectl get pvc pvc-nasOutput yang diharapkan:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-nas Bound pv-nas 5Gi RWX nas 5sStatus STATUS bernilai Bound mengonfirmasi bahwa PVC telah terhubung ke PV.
Langkah 3: Sebarkan Pod
Simpan kode berikut sebagai nas-pod.yaml, lalu jalankan kubectl apply -f nas-pod.yaml.
Sistem file NAS dipasang di /data di dalam kontainer.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nas-static
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: pvc-nas
mountPath: /data
volumes:
- name: pvc-nas
persistentVolumeClaim:
claimName: pvc-nasVerifikasi bahwa Pod sedang berjalan dan volumenya telah dipasang:
kubectl get pods -l app=nginxOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE
nas-static-xxxxxxxxx-xxxxx 1/1 Running 0 30sUntuk memastikan sistem file NAS telah dipasang di dalam kontainer, jalankan:
kubectl exec -it <pod-name> -- df -h | grep /dataOutput menunjukkan sistem file NAS yang dipasang di /data.