Belajar Kubernetes Simple Shared Storage - Scaling Storage, Volume Expansion & Capacity
Episode 15 of 28

Belajar Kubernetes Simple Shared Storage - Scaling Storage, Volume Expansion & Capacity

Mengelola kapasitas volume yang terus tumbuh: menambah disk node dan menumbuhkan LVM secara online, mengaktifkan allowVolumeExpansion di StorageClass, memahami bahwa PVC NFS RWX mengikuti backing volume, serta memantau kapasitas per node

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

Pendahuluan

Media aplikasi dan database tumbuh terus — kapasitas volume yang tetap adalah resep downtime. Episode 15 membahas cara menambah kapasitas dengan benar di ekosistem OpenEBS: dari level node (menambah disk) sampai level PVC (ekspansi online).

Ada perbedaan penting yang harus dipahami: untuk Local PV LVM/ZFS, volume bisa di-resize secara native; untuk hostpath, kapasitas berarti ruang folder node; dan PVC NFS RWX hanya berguna bila backing volume-nya di-expand lebih dulu.

Menambah Kapasitas

Local PV Hostpath

Hostpath memakai folder node — pertumbuhannya terjadi di level node disk:

LinuxPeriksa kapasitas node
df -h /var/lib/openebs
lsblk

Jika menipis, tambahkan disk baru, expand volume group LVM, atau perbesar filesystem (bila memakai LVM):

LinuxTumbuhkan filesystem (contoh LVM)
sudo pvcreate /dev/sdc
sudo vgextend volume-group /dev/sdc
sudo lvextend -l +100%FREE /dev/volume-group/lv-data
sudo resize2fs /dev/volume-group/lv-data

Local PV LVM/ZFS

Engine LVM/ZFS mendukung online resize — expand langsung saat bus:

LinuxExpand volume group (LVM)
sudo lvextend -L +10G /dev/openebs-vg/pvc-xxxx
sudo resize2fs /dev/openebs-vg/pvc-xxxx

allowVolumeExpansion

Agar PVC bisa di-expand lewat Kubernetes (tanpa SSH ke node), StorageClass wajib allowVolumeExpansion: true:

sc-openebs-lvm.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: openebs-lvm
provisioner: local.csi.openebs.io
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Delete
allowVolumeExpansion: true
sc-openebs-nfs-rwx.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: openebs-nfs-rwx
provisioner: openebs.io/nfs
parameters:
  backendStorageClass: openebs-hostpath
  nfsServerType: kernel-nfs
allowVolumeExpansion: true

Ekspansi PVC secara online:

KubernetesEkspansi PVC tanpa downtime
kubectl edit pvc media-storage

Ubah spec.resources.requests.storage dari 5Gi menjadi 20Gi:

yaml
  resources:
    requests:
      storage: 20Gi   # naik dari 5Gi
KubernetesVerifikasi kapasitas baru
kubectl get pvc media-storage
kubectl get pv | grep media-storage

Controller melakukan resize pada filesystem backing (LVM/ZFS & NFS backing) secara otomatis.

Warning

Ukuran PVC tidak dapat dikurangi. Rencanakan buffer: ekspansi ke 2x kebutuhan saat ini dengan headroom 20% menjaga kalian dari kehabisan ruang mendadak.

Scaling NFS Server

Memperjelas satu hal yang sering membingungkan: NFS server OpenEBS tidak di-scale horizontal. Ketika kapasitas atau isolasi dibutuhkan, OpenEBS membuat server baru per-PVC — menambah PVC berarti menambah NFS Server Pod baru, bukan menambah replica pada server yang ada.

KubernetesLihat NFS Server Pod per PVC
kubectl -n openebs-nfs get pods

Kapasitas Partition

Pemantauan menjauhkan dari kejutan:

  • df per node — sisa ruang folder hostpath dan LV.
  • Tambahkan disk node saat LVM menipis, expand LV, resize filesystem.
  • Pantau di episode 18 dengan Prometheus; pasang alert kapasitas.

Tip

Buat kebiasaan: satu kali seminggu lihat df -h di semua worker dan kubectl get pvc -A. Lima menit ini mencegah panggilan darurat "storage penuh!" di jam produksi.

Penutup

Pada episode 15 ini, kapasitas dapat dikelola secara proaktif:

Inti yang harus dibawa pulang:

  • Hostpath tumbuh di level node (tambah disk + expand LV/filesystem).
  • LVM/ZFS mendukung online resize; aktifkan allowVolumeExpansion: true.
  • PVC NFS RWX mengikuti kapasitas backing volume.
  • kubectl edit pvc mengubah request storage — tidak dapat dikurangi.
  • NFS di-scale dengan menambah PVC (server per-PVC), bukan menambah replica.

Di episode 16 selanjutnya kita akan melakukan maintenance node: drain worker dengan aman, memahami perilaku RWX vs RWO saat node kosong, memilih reclaimPolicy yang tepat, dan menjalankan prosedur maintenance yang tidak mengganggu aplikasi. Sampai jumpa di episode 16!

Belajar Kubernetes Simple Shared Storage - Scaling Storage, Volume Expansion & Capacity | Belajar Kubernetes Simple Shared Storage