Belajar Kubernetes Distributed Storage - Prerequisites & Persiapan Node/Disk
Episode 3 of 28

Belajar Kubernetes Distributed Storage - Prerequisites & Persiapan Node/Disk

Memastikan node dan disk benar-benar siap untuk OSD Ceph: persyaratan versi Kubernetes, raw device tanpa partisi tanpa filesystem tanpa LVM, mengenali lsblk dan tidak memformat, menandai node dengan label, serta memeriksa modul kernel dan konektivitas registry.

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

Pendahuluan

Di episode 2 kita memahami arsitektur Ceph dan Rook. Episode 3 adalah pengecekan dua level di bawah: node dan disk. Inilah bagian yang sering diremehkan — dan justru di sinilah banyak masalah lahir: OSD tidak muncul, daemon crash, atau disk terdeteksi salah.

Mengapa penting? Persyaratan raw device adalah kontrak keras. Ceph (melalui Rook) memformat sendiri disk yang aman untuk dipakai. Jika disk sudah punya partisi/filesystem/LVM, Rook menolaknya. Memahami aturan ini mencegah frustrasi di episode 5.

Persyaratan Node

PersyaratanDetail
Kubernetesv1.31 – v1.36 (didukung Rook v1.20)
Arsitekturamd64 / arm64
Node storageSetidaknya 2 worker (lab kita), ideal 3+ untuk fault domain
Raw device≥ 1 disk/node tanpa partisi/filesystem/LVM
Aplikasi lainJangan pakai rootfs node untuk OSD

Spesifikasi yang disarankan per worker storage: ≥ 2 vCPU, ≥ 4 GB RAM, network gigabit. Ceph OSD cukup rakus — kekurangan resource = OSD crash mendadak.

Persiapan Disk (List & Format-Free)

Kenali Device

List block device dengan filesystem
lsblk -f

Output yang benar:

text
NAME   FSTYPE LABEL  MOUNTPOINT
sda    ext4          /
sdb                  # raw → kandidat OSD

/dev/sdb tanpa FSTYPE dan tanpa MOUNTPOINT = raw device yang aman untuk OSD.

Jangan mkfs!

Sangat penting: jangan pernah menjalankan mkfs pada disk yang mau dipakai OSD. Biarkan raw. Rook menggunakan sgdisk --zap-all bila perlu untuk membersihkan (misal bekas disk). Jika kalian pernah memformat disk tersebut, Rook mungkin tidak mengenali sebagai device pecahan.

Mencatat Device Path

Catat nama device (/dev/sdb atau /dev/nvme0n1) untuk digunakan di CephCluster.spec.storage.nodes pada episode 5.

Label Node (Opsional)

Untuk membatasi OSD hanya pada node storage, beri label:

Label node storage
kubectl label node worker-1 storage-node=true
kubectl label node worker-2 storage-node=true

Nanti di CephCluster kita memakai storage.useAllNodes: false dan mendaftarkan node secara eksplisit — lebih aman daripada biarkan Ceph memakai semua disk di semua node.

Check Kernel & Modul

RBD Util di Client

Client (workload) memakai image RBD via CSI driver. Pastikan modul rbd tersedia di node:

Cek modul rbd di client node
modprobe rbd
lsmod | grep rbd

Jika tidak ada, install package ceph-common/rbd sesuai distro, atau pastikan CSI deployer menanganinya (Rook menangani ini via init container pada csi-rbdplugin).

Konektivitas Registry

Rook men-pull image rook/ceph:v1.20.2. Pastikan node punya akses ke registry publik atau mirror internal:

Tes pull image
ctr image pull docker.io/rook/ceph:v1.20.2 2>/dev/null || echo "cek koneksi registry"

Pada cluster offline, import image ke registry internal dan setting cephVersion.image menunjuk ke sana.

Warning

Jangan pernah menunjuk rootfs (/) untuk OSD. Rootfs biasanya punya filesystem & dipakai OS — Ceph menolak dan kalian kehabisan boot disk. Gunakan disk terpisah (bare metal) atau kosong volume (VM/cloud).

Verifikasi Environment

Jalankan checklist menyeluruh di kedua worker:

Verifikasi kesiapan node
kubectl get nodes -o wide
kubectl label node worker-1 storage-node=true   # sudah
lsblk -f
free -h
nproc

Checklist:

  • [1] node Ready, versi Kubernetes 1.31–1.36.
  • [2] disk raw tersedia (/dev/sdb tanpa FSTYPE).
  • [3] rootfs tidak terpilih sebagai OSD.
  • [4] modul rbd & ceph-common tersedia di node.
  • [5] akses registry rook/ceph:v1.20.2.

Penutup

Inti yang harus dibawa pulang:

  • Node storage wajib punya raw device — tanpa partisi, filesystem, atau LVM.
  • Jangan jalankan mkfs pada disk OSD; biarkan Rook yang memformat (sgdisk --zap-all).
  • Gunakan label node untuk membatasi OSD pada node yang tepat.
  • Pastikan modul rbd, resource cukup, dan akses image build.

Di episode 4 selanjutnya kita akan menginstall Rook operator — via Helm chart atau manifest, memverifikasi Pod operator Running, memeriksa CRDs terdaftar, dan mengenal csi-operator untuk driver RBD/CephFS. Sampai jumpa di episode 4!