Cara Menyiapkan Penyediaan NFS Dinamis di Kubernetes Cluster

Dalam postingan ini, kami akan menunjukkan cara menyiapkan penyediaan nfs dinamis di kluster Kubernetes (k8s).

Penyediaan penyimpanan NFS dinamis di Kubernetes memungkinkan Anda menyediakan dan mengelola volume NFS (Sistem File Jaringan) secara otomatis untuk aplikasi Kubernetes sesuai permintaan. Ini memungkinkan pembuatan volume persisten (PV) dan klaim volume persisten (PVC) tanpa memerlukan intervensi manual atau penyimpanan yang telah disediakan sebelumnya.

Penyedia NFS bertanggung jawab untuk membuat PV secara dinamis dan mengikatnya ke PVC. Ini berinteraksi dengan server NFS untuk membuat direktori atau volume untuk setiap PVC.
PrasyaratKluster Kubernetes yang sudah diinstal sebelumnyaPengguna reguler yang memiliki hak admin di kluster KubernetesKonektivitas Internet
Tanpa penundaan lebih lanjut, mari selami lebih dalam langkah-langkahnya

Langkah1) Siapkan Server NFS

Dalam kasus saya, saya akan pergi untuk menginstal server NFS di node master Kubernetes saya (Ubuntu 22.04). Login ke master node dan jalankan perintah berikut,
$ sudo apt update
$ sudo apt install nfs-kernel-server -y

Buat folder berikut dan bagikan menggunakan nfs,
$ sudo mkdir /opt/dynamic-storage
$ sudo chown -R none:nogroup /opt/dynamic-storage
$ sudo chmod 777 /opt/dynamic-storage

Tambahkan entri berikut di /etc/exports file
$ sudo vi /etc/exports
/opt/dynamic-storage 192.168.1.0/24(rw,sync,no_subtree_check)

Simpan dan tutup file.

Catatan: Jangan lupa untuk mengubah jaringan dalam file ekspor yang sesuai dengan penerapan Anda.

Untuk membuat perubahan di atas menjadi efek, run
$ sudo exportfs -a
$ sudo systemctl restart nfs-kernel-server
$ sudo systemctl status nfs-kernel-server

Pada node pekerja, instal paket nfs-common menggunakan perintah apt berikut.
$ sudo apt install nfs-common -y

Langkah 2) Instal dan Konfigurasi Penyedia Klien NFS

NFS subdir penyedia eksternal menyebarkan penyedia klien NFS di kluster Kubernetes Anda. Penyedia bertanggung jawab untuk secara dinamis membuat dan mengelola Persistent Volumes (PVs) dan Persistent Volume Claims (PVCs) yang didukung oleh penyimpanan NFS.

Jadi, untuk menginstal penyedia eksternal subdirektori NFS, pertama instal helm menggunakan serangkaian perintah berikut,
$ curl -fsSL – o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Aktifkan repo helm dengan menjalankan perintah berikut di bawah,
$ repo helm tambahkan nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner

Deploy provider menggunakan helm berikut command
$ helm install -n nfs-provisioning –create-namespace nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner –set nfs.server=192.168.1.139 –set nfs .path=/opt/dynamic-storage

Atas perintah helm akan secara otomatis membuat namespace nfs-provisioning dan akan menginstal nfs provisioner pod/deployment, kelas penyimpanan dengan nama (nfs-client) dan akan membuat rbac.
$ kubectl get all -n yang diperlukan penyediaan nfs
$ kubectl get sc -n nfs-provisioning

Perfect, output di atas mengonfirmasi bahwa pod penyedia dan kelas penyimpanan berhasil dibuat. PVC akan meminta penyimpanan dalam jumlah tertentu dari StorageClass (klien-nfs).
$ vi demo-pvc.yml
jenis: PersistentVolumeClaim
versi api: v1
metadata:
nama: demo-klaim
namespace: penyediaan nfs
spek:
storageClassName: nfs-klien
mode akses:
– Baca Tulis Banyak
sumber daya:
permintaan:
penyimpanan: 10Mi

simpan & tutup file.

Jalankan perintah kubectl berikut untuk membuat pvc menggunakan file yml yang dibuat di atas,
$ kubectl create -f demo-pvc.yml

Verifikasi apakah PVC dan PV dibuat atau tidak,
$ kubectl dapatkan pv,pvc -n nfs-provisioning

Bagus, keluaran di atas menunjukkan bahwa pv dan pvc berhasil dibuat. yml
jenis: Pod
versi api: v1
metadata:
nama: test-pod
namespace: penyediaan nfs
spek:
kontainer:
– nama: test-pod
gambar: busybox: terbaru
memerintah:
– “/bin/sh”
argumen:
– “-C”
– “sentuh /mnt/SUKSES && tidur 600”
volumeMount:
– nama: nfs-pvc
mountPath: “/ mnt”
restartPolicy: “Tidak pernah”
volume:
– nama: nfs-pvc
persistenVolumeClaim:
claimName: demo-claim

Deploy pod menggunakan perintah kubectl berikut,
$ kubectl create -f test-pod.yml

Verifikasi status test-pod,
$ kubectl get pods -n nfs-provisioning

Login ke pod dan verifikasi bahwa volume nfs sudah terpasang atau tidak.
$ kubectl exec -it test-pod -n nfs-provisioning /bin/sh

Bagus, keluaran di atas dari pod mengonfirmasi bahwa volume NFS dinamis sudah terpasang dan dapat diakses.

Terakhir, hapus pod dan PVC dan periksa apakah pv dihapus secara otomatis atau tidak.
$ kubectl delete -f test-pod.yml
$ kubectl delete -f demo-pvc.yml
$ kubectl get pv,pvc -n  nfs-provisioning

Sekian dari postingan ini, semoga informatif bagi Anda. Jangan ragu untuk memposting pertanyaan dan umpan balik Anda di bagian komentar di bawah ini.

Baca Juga: Cara Memasang Ansible AWX di Kubernetes Cluster

Scroll to Top