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