Berbagi Penyimpanan NFS di Kubernetes
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