Belajar Kubernetes Block Storage RWO - Pre-Requisites Skill & Setup Environment
Episode 0 of 28

Belajar Kubernetes Block Storage RWO - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh Longhorn, kalian perlu menguasai dasar Kubernetes, konsep PV/PVC/StorageClass, block device Linux, serta SQL dan database. Di episode 0 ini kalian menyiapkan cluster Kubernetes 5 node, memasang open-iscsi dan nfs-common di semua worker, lalu memverifikasi seluruh environment siap dipakai sepanjang series.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Selamat datang di series Belajar Kubernetes Block Storage RWO! Series ini akan membawa kalian menguasai penyediaan block storage ber-replikasi untuk Kubernetes menggunakan Longhorn — fokus utama untuk database dan aplikasi stateful. Total ada 28 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.

Sebelum menyentuh helm install longhorn atau membuat StorageClass pertama, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena block storage di Kubernetes hidup di persimpangan dua dunia: dunia Kubernetes (Pod, PVC, StorageClass) dan dunia Linux block device (ext4, mount, iSCSI). Tanpa memahami dua lapisan ini, kalian akan kesulitan saat volume terasa lambat, gagal attach, atau data hilang.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar terpenuhi, menyiapkan cluster 5 node, memasang paket prasyarat Longhorn, dan memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

Dasar Kubernetes

Longhorn berjalan sebagai operator di dalam Kubernetes dan menyediakan volume melalui CSI driver. Kalian wajib nyaman dengan:

  • kubectl: get, describe, logs, apply, edit, drain, cordon.
  • Workload: Pod, Deployment, StatefulSet, Service, ConfigMap, Secret.
  • Storage API: PersistentVolume (PV), PersistentVolumeClaim (PVC), dan StorageClass.

Kalian tidak perlu menjadi expert, tetapi harus paham siklus hidup resource. Episode 5 dan 6 akan membedah storage API lebih dalam, jadi pastikan dasar kubectl kalian sudah cair dulu.

Konsep PersistentVolume dan StorageClass

Poin paling penting di series ini: memahami perbedaan tiga lapisan storage:

  1. StorageClass: resep provisioning — berapa replica, filesystem apa, lokasi mana.
  2. PVC: permintaan storage oleh workload (ukuran + access mode).
  3. PV: hasil provisioning — unit storage nyata yang dilekatkan ke node.

Longhorn bekerja dengan cara membuat PV secara dinamis dari StorageClass. Kalau kalian belum paham hubungan ketiganya, luangkan waktu membaca episode 5 saat tiba waktunya.

Dasar Linux Block Device dan Filesystem

Longhorn memformat disk node menjadi replica block device. Kalian wajib paham perintah berikut:

Cek block device dan filesystem
lsblk -f
mount | grep -E "ext4|xfs"
mkfs.ext4 -V

lsblk -f menampilkan semua disk dan filesystem yang ada. Longhorn memakai disk kosong yang tidak diformat untuk replica — jadi kalian harus bisa membedakan disk yang punya data dan yang benar-benar kosong.

Dasar SQL dan Database

Seluruh series memakai studi kasus Laravel + PostgreSQL. Kalian tidak perlu jadi DBA, tetapi wajib paham:

  • Perbedaan database stateful vs aplikasi stateless.
  • Konsep transaksi, fsync, dan mengapa data harus persisten.
  • Perintah SQL dasar untuk verifikasi (SELECT, INSERT).
  • pg_dump/pg_restore untuk latihan backup.

Perangkat Software dan Hardware yang Disiapkan

Cluster Kubernetes 5 Node

Kita memakai topologi yang realistis untuk production:

NodePeran
cp-1, cp-2, cp-3Control plane (etcd + API server)
worker-1, worker-2Data plane — menjalankan Longhorn + workload

Kalian boleh memakai k3s, kubeadm, RKE2, atau managed cluster — selama versi Kubernetes ≥ 1.25 sesuai dukungan Longhorn. Dua worker node adalah batas minimum agar replikasi 3 memang memungkinkan (2 node = 2 replica + 1 di node lain, tapi idealnya 3 node; untuk lab 2 node cukup dengan replica-soft-anti-affinity).

kubectl dan Helm v3

Verifikasi kubectl dan helm
kubectl version --client
kubectl get nodes
helm version

Kedua tool wajib terinstall dan bisa mengakses cluster. Verifikasi bahwa semua 5 node berstatus Ready.

open-iscsi (prasyarat Longhorn V1 Data Engine)

Longhorn V1 Data Engine mengattach volume via iSCSI. Setiap worker node wajib memiliki open-iscsi dengan layanan iscsid aktif:

Install open-iscsi (Debian/Ubuntu)
sudo apt update && sudo apt install -y open-iscsi
sudo systemctl enable --now iscsid
iscsiadm -m session

iscsiadm -m session boleh kosong (belum ada sesi) — yang penting binary ada dan service aktif. Tanpa ini, Pod tidak akan pernah bisa mengattach volume Longhorn.

nfs-common di Semua Node

Paket ini diperlukan untuk dukungan RWX (Share Manager memakai NFSv4) dan untuk backup target NFS di episode 15:

Install nfs-common
sudo apt update && sudo apt install -y nfs-common

Meski fokus series ini RWO, memasang nfs-common sejak awal menghindari kejutan di episode yang memakai backup NFS.

S3-Compatible Storage (Opsional)

Untuk backup target di episode 15-16, kalian bisa memakai AWS S3 atau MinIO self-hosted. Ini opsional — kalian bisa mulai dengan backup NFS dan upgrade ke S3 nanti.

Registry Container

Image aplikasi Laravel dan PostgreSQL akan kita deploy. Siapkan akses ke Docker Hub, GHCR, atau registry internal.

Verifikasi Environment

Jalankan verifikasi menyeluruh sebelum melanjutkan:

Verifikasi environment
kubectl get nodes -o wide
kubectl get pods -A --sort-by=.metadata.name | head -20
for node in worker-1 worker-2; do
  kubectl debug node/$node --image=alpine -- sh -c 'iscsiadm -m session 2>&1; cat /proc/modules | grep -E "iscsi_tcp" || true'
done

Pastikan lima node Ready, core system (kube-system) Running, dan modul kernel iscsi_tcp tersedia di worker node — ini kernel module yang dipakai transport iSCSI.

Note

Untuk lab berjalan mulus, setidaknya 2 worker node dengan 2 vCPU + 4 GB RAM masing-masing. Longhorn menjalankan komponen engine per volume, jadi node yang terlalu kecil akan cepat kehabisan memori saat kita deploy PostgreSQL.

Penutup

Inti yang harus dibawa pulang:

  • Pahami dulu tiga lapisan storage Kubernetes: StorageClass, PVC, dan PV.
  • Siapkan cluster 5 node (3 control plane + 2 worker) dengan Kubernetes ≥ 1.25.
  • Install open-iscsi + aktifkan iscsid di semua worker node — wajib untuk Longhorn V1.
  • Install nfs-common untuk dukungan RWX dan backup NFS di episode-episode berikutnya.

Di episode 1 selanjutnya kita akan membahas mengapa database butuh block storage — studi kasus Laravel + PostgreSQL, kenapa shared filesystem berbahaya untuk transaksi database, perbedaan access mode RWO vs RWX, serta mengapa StatefulSet lebih cocok untuk database daripada Deployment. Pastikan environment kalian sudah siap, karena perjalanan Belajar Kubernetes Block Storage RWO dimulai!

Belajar Kubernetes Block Storage RWO - Pre-Requisites Skill & Setup Environment | Belajar Kubernetes Block Storage RWO