Container Service for Kubernetes (ACK) memungkinkan Anda memasang dan menggunakan Container Network File System (CNFS) sebagai volume NAS bersama. Anda dapat memasang direktori yang sama dari sistem file NAS ke beberapa aplikasi atau pod menggunakan CNFS, sehingga mengatasi masalah berbagi data di antara pod. Topik ini menjelaskan cara menggunakan CNFS untuk mengelola volume NAS bersama dengan menggunakan aplikasi StatefulSet sebagai contoh.
Prasyarat
NAS telah diaktifkan.
Jika ini pertama kalinya Anda mengunjungi halaman produk NAS, ikuti petunjuk di layar untuk mengaktifkan layanan NAS.
Kluster Container Service for Kubernetes (ACK) yang menjalankan Kubernetes versi 1.20 atau lebih baru telah dibuat. Plugin Container Storage Interface (CSI) digunakan sebagai plugin volume. Untuk informasi selengkapnya, lihat Create an ACK managed cluster.
Versi csi-plugin dan csi-provisioner adalah v1.24.11-5221f79-aliyun atau lebih baru. Untuk informasi selengkapnya tentang cara memperbarui csi-plugin dan csi-provisioner, lihat Install and update the CSI components.
Versi storage-operator adalah v1.24.105-825188d-aliyun atau lebih baru. Untuk informasi selengkapnya tentang cara memperbarui storage-operator, lihat Manage components.
Klien kubectl telah terhubung ke kluster Anda. Untuk informasi selengkapnya, lihat Get a cluster kubeconfig and connect to the cluster using kubectl.
CatatanUntuk informasi selengkapnya tentang CNFS, lihat CNFS.
Untuk informasi selengkapnya tentang cara menggunakan CNFS untuk mengelola sistem file NAS, lihat Use CNFS to manage NAS file systems (recommended).
Langkah 1: Buat workload untuk volume bersama
Buat persistent volume (PV) bernama
cnfs-nas-static-pv. PV tersebut harus mereferensikan objek CNFS bernamacnfs-nas-filesystem, yang merepresentasikan sistem file NAS yang sudah ada.Buat persistent volume claim (PVC) bernama
cnfs-nas-static-pvcdan bind ke PV tersebut.Buat StatefulSet bernama
cnfs-nas-static-sts. Di dalam StatefulSet tersebut, gunakan citra busybox untuk memasang PVC dan menulis file temporary berukuran 1 GB bernama1G.tmpfileke titik pemasangan.
Langkah 2: Lihat status pemasangan
Jalankan perintah berikut untuk melihat status pemasangan.
kubectl exec cnfs-nas-static-sts-0 -- mount |grep nfsOutput yang diharapkan:
971134b0e8-****.cn-zhangjiakou.nas.aliyuncs.com:/ on /data type nfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other)Output yang diharapkan menunjukkan titik pemasangan, yang mengindikasikan bahwa volume berhasil dipasang.
Langkah 3: Periksa apakah data persisten berhasil ditulis
Jalankan perintah berikut untuk menulis file temporary berukuran 1 GB.
kubectl exec cnfs-nas-static-sts-0 -ti -- sh -c 'dd if=/dev/zero of=/data/1G.tmpfile bs=1G count=1;'Jalankan perintah berikut untuk memverifikasi bahwa file temporary 1 GB telah dibuat.
kubectl exec cnfs-nas-static-sts-0 -- ls -arlth /dataOutput yang diharapkan:
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfileOutput yang diharapkan menunjukkan bahwa file temporary 1 GB 1G.tmpfile telah berhasil ditulis ke direktori /data.
Langkah 4: Periksa apakah data yang ditulis dibagikan ke pod lain
Jalankan perintah berikut untuk memeriksa apakah file temporary 1 GB dibagikan ke pod lain, yaitu cnfs-nas-static-sts-1.
kubectl exec cnfs-nas-static-sts-1 -- ls -arlth /dataOutput yang diharapkan:
total 1G
-rw-r--r-- 1 root root 1.0G Dec 15 12:11 1G.tmpfileOutput yang diharapkan menunjukkan bahwa file temporary 1 GB 1G.tmpfile dibagikan antara pod cnfs-nas-static-sts-0 dan pod cnfs-nas-static-sts-1.
Saat Anda menulis data ke penyimpanan bersama dari pod yang berbeda, CNFS tidak menjamin konsistensi data. Untuk mencegah kerusakan file, hindari menulis ke file yang sama dari beberapa pod sekaligus.
Referensi
Untuk memasang direktori berbeda dalam sistem file NAS ke aplikasi atau pod yang berbeda demi isolasi penyimpanan, lihat Use CNFS to manage isolated NAS volumes (recommended).
Untuk secara otomatis melakukan scale out volume NAS saat penggunaannya melebihi ambang batas tertentu, lihat Use CNFS to automatically scale out NAS volumes.