Mempersiapkan skill dasar Kubernetes, Linux filesystem & permission, serta tooling untuk membangun shared storage ReadWriteMany: cluster 5 node, kubectl, Helm v3, NFS server v4.2, dan registry image sebelum praktik sepanjang series

Selamat datang di series Belajar Kubernetes Shared Filesystem RWX! Series ini akan membawa kalian menyediakan storage berbagi (ReadWriteMany/RWX) di Kubernetes menggunakan NFS + NFS CSI Driver, lalu memakainya untuk aplikasi web multi-replica. Total ada 28 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum membuat StorageClass atau menulis manifest Pod, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena shared filesystem bekerja di persimpangan tiga dunia: Kubernetes (orkestrasi volume), Linux (mount dan permission), dan jaringan (NFS). Kalian mengelola NFS server, config driver CSI, dan aplikasi — error paling umum terjadi justru karena salah satu pilar ini belum dikuasai.
Episode 0 ini adalah peta jalan kalian: kita memastikan skill dasar terpenuhi, menyiapkan cluster, tooling, dan NFS server, lalu memverifikasi environment untuk pertama kali.
Kalian wajib nyaman dengan kubectl dan memahami objek dasar: Pod, Deployment, StatefulSet, Service, ConfigMap, Secret. Untuk seri ini yang paling krusial adalah tiga serangkai storage API:
kubectl version --client
kubectl get nodes
kubectl get sckubectl get sc harus mengembalikan daftar StorageClass. Kalian juga wajib bisa membaca event dan deskripsi objek (kubectl describe), karena troubleshooting volume di episode 24 bertumpu pada itu.
NFS pada dasarnya adalah mount jarak jauh. Kalian wajib memahami mount, umount, /etc/fstab, filesystem permission (UID/GID), dan ls -ln untuk melihat owner numerik. Konsep UID/GID menjadi kunci di episode 13: file di NFS yang ditulis container harus punya owner yang konsisten dengan user runtime aplikasi.
Kita juga akan mengelola NFS Server lewat systemd:
systemctl status nfs-server
journalctl -u nfs-server -fKasus utama series ini adalah aplikasi Laravel. Kalian tidak perlu jago Laravel, tetapi pahami fungsi folder storage/ (upload, session, cache) dan public/ (asset publik). Pemahaman ini menentukan folder mana yang harus di-share — akan kita bedah di episode 7.
Tujuan arsitektur kita: 3 control plane + 2 worker (data plane). Bisa memakai K3s/RKE2, kubeadm, atau vendor cloud. Yang penting: dua worker murni untuk workload, karena PVC RWX akan mount di semua worker.
kubectl harus satu versi minor atau di atas cluster. Helm dipakai untuk menginstall NFS CSI Driver (episode 4) dan tooling lain:
kubectl version --client
helm versionSiapkan satu mesin terpisah (VM/bare-metal atau node khusus cluster) sebagai NFS Server. Jangan menaruhnya di worker yang sama — prinsipnya dibahas di episode 3. Catat IP address-nya, karena IP itu dipakai di StorageClass dan PV.
Untuk image Laravel, siapkan akun registry: Docker Hub, GHCR (GitHub Container Registry), atau registry privat. Di episode 9 kita akan push image ke sana.
Pasang paket NFS client dan utilitas diagnostik di workstation, supaya bisa mengecek server dari jarak jauh:
sudo apt install nfs-common nfsstatsudo dnf install nfs-utilsTools yang akan dipakai sepanjang series: nfsstat (statistik NFS), showmount (daftar export di server), mount -t nfs (uji mount manual), dan df -h (penggunaan filesystem).
Jalankan verifikasi menyeluruh sebelum lanjut ke episode 1:
kubectl get nodes
kubectl get sc
helm version
showmount -e <nfs-server-ip>kubectl get nodes harus menampilkan 5 node dengan status Ready. helm version membuktikan Helm v3 terpasang. showmount -e <nfs-server-ip> akan gagal di sini jika NFS server belum dikonfigurasi — itu normal, kita buat di episode 3.
Note
Jika cluster kalian masih lingkungan belajar (mis. satu worker), jalur praktik tetap bisa diikuti — hanya topologi multi-node yang tidak bisa disimulasikan penuh. Untuk hasil terbaik, sediakan minimal satu worker terpisah agar perilaku RWX antar-node terlihat nyata.
Rangkuman yang sudah kalian siapkan di episode 0:
Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 27 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
nfsstat, showmount) di workstation.Di episode 1 selanjutnya kita akan membahas mengapa aplikasi web — khususnya Laravel mono-replica — butuh shared filesystem: masalah upload yang hilang saat Pod diganti, perilaku access modes RWO/RWX/ROX, dan mengapa NFS + NFS CSI Driver menjadi pilihan paling masuk akal untuk web files. Pastikan environment kalian sudah siap, karena perjalanan Belajar Kubernetes Shared Filesystem RWX baru saja dimulai!