Belajar Kubernetes Block Storage RWO - Persiapan Node & Prasyarat Longhorn
Episode 3 of 28

Belajar Kubernetes Block Storage RWO - Persiapan Node & Prasyarat Longhorn

Menyiapkan node worker agar siap dipakai Longhorn: persyaratan Kubernetes, instalasi open-iscsi di Debian/Ubuntu dan RHEL, mengenali disk kosong yang aman dipakai, serta verifikasi modul kernel iscsi_tcp dan nvme sebelum instalasi operator.

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

Pendahuluan

Di episode 2 kita memahami arsitektur Longhorn — Engine, Replica, dan V1/V2 engine. Di episode 3 kita turun ke level node: memastikan setiap worker node benar-benar siap menampung Longhorn. Ini langkah yang paling sering diskip oleh pemula, dan justru di sanalah akar banyak masalah: volume stuck attached, replica scheduling failed, atau iscsi error.

Mengapa episode ini penting? Karena Longhorn sangat bergantung pada prasyarat node: modul kernel, paket userspace, dan disk kosong. Satu worker node tanpa open-iscsi cukup untuk menggagalkan attach volume ke Pod. Mari kita bereskan semuanya dari awal.

Persyaratan Node

Berikut checklist minimum untuk setiap node yang akan menjalankan Longhorn:

PersyaratanDetail
KubernetesVersi ≥ 1.25; cluster sehat
Worker nodeSemua node yang dipakai schedule Pod volume harus punya prasyarat
open-iscsiTerinstall + service iscsid aktif
modul kerneliscsi_tcp (V1), nvme_tcp/nvme_rdma (V2)
Disk storagedisk kosong/partisi khusus — jangan satukan dengan rootfs
nfs-commonDiperlukan untuk backup NFS & RWX (opsional tapi disarankan)

Yang paling sering salah: memasang Longhorn di cluster single-node yang juga menjalankan control plane. Longhorn bisa jalan di situ, tapi replikasi antar node tidak akan punya "antar node" — tutup mata terhadap HA. Untuk series ini kita pakai worker-1 dan worker-2 sebagai data plane.

Instalasi open-iscsi

Debian / Ubuntu

Instalasi open-iscsi (Debian/Ubuntu)
sudo apt update
sudo apt install -y open-iscsi
sudo systemctl enable --now iscsid
systemctl status iscsid

Pastikan iscsid aktif. Jika kalian instal dari paket lama, enable --now akan mengaktifkan service startup.

RHEL / AlmaLinux / Rocky

Instalasi iscsi-initiator-utils (RHEL)
sudo dnf install -y iscsi-initiator-utils
sudo systemctl enable --now iscsid
systemctl status iscsid

Pada distro RHEL-family, service biasanya bernama iscsid juga. Verifikasi dengan perintah yang sama.

Tip

Periksa selalu systemctl is-active iscsid. Longhorn tidak melakukan auto-install paket; jika service mati, volume akan gagal attach dengan pesan iSCSI error di log CSI plugin. Baris ini wajib dicek di semua worker node, bukan hanya node pertama.

Setup Disk untuk Longhorn

Kenali Device yang Tersedia

Jalankan di kedua worker node:

List block device
lsblk -f

Output akan menunjukkan, misalnya:

text
NAME   FSTYPE   LABEL  MOUNTPOINT
sda    ext4            /
sdb                      # kosong — kandidat replika Longhorn

Sesuatu yang tidak punya FSTYPE dan tidak ter-mount adalah kandidat. /dev/sdb, /dev/nvme0n1, /dev/vdb adalah nama umum di VM.

JANGAN Diformat oleh Sistem

Ini poin penting: biarkan disk kosong (blank). Longhorn (via extend4/luks/device mapper) akan memformatnya sendiri sesuai kebutuhan. Jangan jalankan mkfs.ext4 /dev/sdb — kalau sudah ke-format, Longhorn menolak memakainya (device bukan block device kosong).

Jika disk pernah dipakai dan ingin di-reset, Longhorn menyediakan otomasi (di UI: disk → format). Untuk keperluan pre-req, cukup pastikan tidak ada mount dan tidak ada FSTYPE yang aktif.

Anotasi Node atau Setup Disk via UI

Longhorn menambahkan disk ke node lewat Longhorn Node object (bukan langsung mount!). Ada dua cara:

  1. Longhorn UI — setelah instalasi, menu Node → node status → Add Disk, isi path dan ukuran.
  2. K8s annotation / spec — lewat kubectl edit longhornnode atau hasil longhorn-manager.

Untuk episode berikutnya, kita pakai UI — tapi pahami bahwa yang terjadi di belakang adalah update ke CustomResource nodes.longhorn.io.

Verifikasi Environment

Cek Status Node dan Kernel Module

Verifikasi node siap
kubectl get nodes
lsmod | grep -E "iscsi_tcp|nvme_tcp"
cat /proc/scsi/iscsi/version 2>/dev/null || echo "iscsi (via open-iscsi) belum terdeteksi"

Pastikan iscsi_tcp terload. Jika tidak, muat manual dan buat persist:

Load module & persist
sudo modprobe iscsi_tcp
echo "iscsi_tcp" | sudo tee /etc/modules-load.d/longhorn.conf

Cek Mode iSCSI Initiator

bash
sudo cat /etc/iscsi/initiatorname.iscsi
iscsiadm -m iface -o show | head -5

Setiap node harus memiliki InitiatorName unik. Jika dua node berbagi nama yang sama, attach volume bisa konflik.

Warning

Jangan pernah menaruh disk Longhorn di rootfs (misalnya partisi /). Longhorn menulis data block yang besar; rootfs yang penuh akan membuat node tidak sehat. Gunakan disk eksternal atau volume terpisah untuk setiap node.

Ringkasan Node Ready

PengecekanPerintahHasil yang diinginkan
Cluster healthykubectl get nodesworker-1, worker-2 Ready
iscsid aktifsystemctl is-active iscsidactive
modul kernel`lsmodgrep iscsi_tcp`
disk kosonglsblk -f/dev/sdb tanpa FSTYPE
initiator unikcat /etc/iscsi/initiatorname.iscsiberbeda tiap node

Penutup

Inti yang harus dibawa pulang:

  • Kubernetes ≥ 1.25 + iscsid aktif di semua worker node adalah prasyarat Longhorn.
  • Disk untuk replika harus kosong/blank — jangan diformat sistem.
  • Modul kernel iscsi_tcp wajib ter-load; nvme_tcp untuk V2.
  • Blok database jangan pernah ditaruh di rootfs.

Di episode 4 selanjutnya kita akan menginstall Longhorn via Helm dan manifest — menambahkan chart, memasang ke namespace longhorn-system, memverifikasi Pod Running, membuka dashboard, dan mengenal StorageClass default. Siapkan worker node yang sudah lolos checklist tadi, dan sampai jumpa di episode 4!

Belajar Kubernetes Block Storage RWO - Persiapan Node & Prasyarat Longhorn | Belajar Kubernetes Block Storage RWO