Jumat, 20 September 2024

KUBERNETES-nfs

 

Berbagi Penyimpanan NFS di Kubernetes

Shyju krishnan
Komunitas Teknologi Cloudnloud

https://medium.com/cloudnloud/nfs-storage-share-in-kubernetes-d5efc7b22a60

Bahasa Indonesia:

Dalam blog ini, kami akan membahas secara rinci cara menyajikan pemasangan file NFS ke kluster Kubernetes yang berjalan pada sistem operasi Ubuntu. NFS (Network File System) adalah protokol berbagi file populer yang memungkinkan pengguna mengakses file yang terletak di server jarak jauh seolah-olah file tersebut disimpan secara lokal.

Memasang sistem berkas NFS ke kluster Kubernetes memberikan beberapa manfaat, termasuk peningkatan fleksibilitas dan skalabilitas. Dalam posting ini, kita akan membahas langkah-langkah yang diperlukan untuk memasang sistem berkas NFS ke kluster Kubernetes yang berjalan di Ubuntu. Kita akan membahas prasyarat, langkah-langkah konfigurasi yang diperlukan untuk menginstal dan menyiapkan server dan klien NFS, dan terakhir, langkah-langkah untuk memasang share NFS ke kluster Kubernetes.

Di akhir postingan ini, Anda akan memiliki pemahaman yang jelas tentang cara menyiapkan sistem berkas NFS dan menyajikannya ke kluster Kubernetes yang berjalan di Ubuntu. Jadi, mari kita mulai!

Ada dua cara untuk mengakses data melalui NFS dalam Kubernetes:

Volume Persisten dengan NFS: ini memungkinkan Anda mengatur sumber daya terkelola dalam kluster yang diakses melalui NFS.

Petakan volume NFS secara langsung ke pod: Kubernetes memungkinkan Anda memasang Volume sebagai drive lokal pada kontainer.

Langkah 1: Volume persisten dengan NFS

Persyaratan: Server NFS

Konfigurasi Server NFS: https://medium.com/cloudnloud/nfs-server-and-client-configuration-62a7e9c8bad8

Diagram

Pembuatan PV

root@Kubernet-Master:~#  cat  pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
labels:
name: mynfs # nama dapat berupa apa saja
spec:
storageClassName: manual # kelas penyimpanan yang sama dengan pvc
kapasitas:
storage: 200Mi
accessModes:
- ReadWriteMany
nfs:
server: 192.168 .100 .102 # alamat IP server NFS
path: "/mnt/nfs_share" # lokasi berbagi NFS
root@Kubernet-Master:~#

Status PV

root@Kubernet-Master:~# kubectl get pv@Kubernet - Master : ~ # kubectl get pv 
NAMA KAPASITAS MODE AKSES KLAIM KEBIJAKAN STATUS KLAIM KELAS PENYIMPANAN ALASAN USIA nfs - pv 200Mi RWX Pertahankan Terikat default / nfs - pvc manual 41j

Pembuatan PVC

root@Kubernet-Master:~# cat pvc.yaml@Kubernet-Master :~# cat pvc.yaml 
apiVersion : v1
kind : PersistentVolumeClaim
metadata :
name : nfs-pvc
spec :
storageClassName : manual
accessModes :
- ReadWriteMany # harus sama dengan PersistentVolume
resources :
requests :
storage : 50 Mi

Status PVC

root@Kubernet-Master:~# kubectl get pvc@Kubernet - Master : ~ # kubectl dapatkan pvc
NAMA STATUS VOLUME KAPASITAS MODE AKSES KELAS PENYIMPANAN USIA
nfs-pvc Terikat nfs-pv 200 Mi RWX manual 41 jam
root @Kubernet - Master : ~ #

Membuat contoh penyebaran nginx dengan PVC

apiVersion:  apps/v1 
kind: Deployment
metadata:
labels:
app: nginx
name: nfs-nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
volumes:
- name: nfs-test
persistentVolumeClaim:
claimName: nfs-pvc # nama pvc yang sama yang dibuat
containers:
- image: nginx
name: nginx
volumeMounts:
- name: nfs-test # nama volume harus cocok dengan claimName volume
mountPath: /usr/share/nginx/html # mount di dalam container

Membuat penyebaran

root@Kubernet-Master:~# kubectl create -f deployment.yaml deployment.apps# kubectl create -f deployment.yaml
deployment.apps/nfs-nginx dibuat

Menguji status pod

root@Kubernet-Master:~# kubectl get pod@Kubernet - Master: ~ # kubectl get pod 
NAMA SIAP STATUS MULAI ULANG USIA
nfs - nginx -5 c89779fb6 - v8lnv 1 / 1 Berjalan 0 59 m

Menguji status volume

root@Kubernet-Master:~# kubectl exec -it nfs-nginx-5c89779fb6-v8lnv bash# kubectl exec -it nfs-nginx-5c89779fb6-v8lnv bash
kubectl exec [POD] [COMMAND] sudah TIDAK DIGUNAKAN LAGI dan akan dihapus di versi mendatang. Gunakan kubectl exec [POD] -- [COMMAND] sebagai gantinya.
root@nfs-nginx-5c89779fb6-v8lnv:/ # df -h
Ukuran Sistem Berkas yang Digunakan Tersedia Penggunaan% Dipasang pada
overlay 98G 13G 80G 14% /
tmpfs 64M 0 64M 0% /dev
tmpfs 957M 0 957M 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/sda5 98G 13G 80G 14% /etc/hosts
192.168.100.102:/mnt/nfs_share 98G 13G 80G 14% /usr/share/nginx/html
tmpfs 1.8G 12K 1.8G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 957 juta 0 957 juta 0% /proc/acpi
tmpfs 957 juta 0 957 juta 0% /proc/scsi
tmpfs 957 juta 0 957 juta 0% /sys/firmware

Langkah 2 Langsung memetakan volume NFS ke pod

Diagram

File manifes pembuatan Pod

Dalam file yang sama, sebutkan detail server NFS dan lokasi pemasangan

jenis:  Pod 
apiVersion: v1
metadata:
nama: nfs
spek:
kontainer:
- nama: aplikasi
gambar: httpd
volumeMounts:
- nama: nfs-volume
jalur pemasangan: /var/nfs # Harap ubah tujuan yang Anda inginkan untuk dipasangi berbagi
volumes:
- nama: nfs-volume
nfs:
server: 192.168 .100 .102 # Alamat IP Server NFS
jalur: /mnt/nfs_share # Lokasi berbagi Server NFS

Membuat pod

root@Kubernet-Master:~# kubectl buat -f NFSPOD.yaml# kubectl create -f NFSPOD.yaml
pod/nfs dibuat

Status POD

root@Kubernet-Master:~# kubectl get pod@Kubernet - Master : ~ # kubectl get pod
NAMA SIAP STATUS MULAI ULANG USIA
nfs 1 / 1 Berjalan 0 82 d
root @Kubernet - Master : ~ #

Memverifikasi titik pemasangan

root@Kubernet-Master:~# kubectl exec -it nfs bashBahasa Indonesia : # kubectl exec -it nfs bash
kubectl exec [POD] [COMMAND] SUDAH TIDAK DIGUNAKAN LAGI dan akan dihapus di versi mendatang. Gunakan kubectl exec [POD] -- [COMMAND] sebagai gantinya.
root@nfs: /usr/l ocal/apache2 # df -h
Ukuran Sistem Berkas yang Digunakan Tersedia Penggunaan% Dipasang pada
overlay 98 G 13 G 80 G 14 % /
tmpfs 64M 0 64M 0% /d
ev
tmpfs 957 M 0 957 M 0 % /sys/ fs/cgroup
192.168 . Bahasa Indonesia: 100.102 : /mnt/n fs_share 98 G 13 G 80 G 14 % /var/n fs
dev/sda5 98 G 13 G 80 G 14 % /etc/ hosts
shm 64 Jt 0 64 Jt 0 % /dev/s hm
tmpfs 1.8 G 12 K 1.8 G 1 % /run/s ecrets/kubernetes.io/serviceaccount
tmpfs 957 Jt 0 957 Jt 0 % /proc/a cpi
tmpfs 957 Jt 0 957 Jt 0 % /proc/s csi
tmpfs 957 Jt 0 957 Jt 0 % /sys/ firmware
root@nfs: /usr/l ocal/apache2 #

Dengan mengikuti langkah-langkah ini, Anda sekarang akan memiliki pemahaman yang baik tentang cara mengonfigurasi dan menggunakan NFS sebagai opsi penyimpanan persisten di aplikasi Kubernetes Anda. Kami harap postingan ini informatif dan bermanfaat.

Selamat Belajar 📚

Terima kasih!

Tidak ada komentar:

Posting Komentar