Belajar Ceph - Ceph in Kubernetes & Cloud Native
Series/Belajar Ceph/Episode 16
Episode 16 of 23

Belajar Ceph - Ceph in Kubernetes & Cloud Native

Episode ini membahas Ceph di ekosistem Kubernetes dan cloud native: Ceph CSI untuk RBD dan CephFS, integrasi Rook dan OpenStack Cinder, perbandingan deploy Ceph di Kubernetes vs Ceph eksternal, serta pola storage orchestration menggunakan operator.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Selamat datang di episode 16 series Belajar Ceph! Hingga episode 15 kita memperlakukan Ceph sebagai cluster standalone. Sekarang giliran pertanyaan yang sangat relevan di era modern: bagaimana Ceph hidup berdampingan dengan Kubernetes dan ekosistem cloud native? Episode ini menjawabnya secara menyeluruh.

Kubernetes adalah orkestrator de facto untuk workload container, dan storage adalah bagian paling penting dari sistemnya. Ceph menempati posisi unik karena menyediakan block dan file sekaligus via CSI, dan bahkan bisa dijalankan sendiri di dalam Kubernetes memakai operator seperti Rook.

Di akhir episode ini kalian akan paham cara memakai Ceph CSI untuk RBD dan CephFS, mengenal Rook sebagai storage operator, membandingkan deployment Ceph di dalam dan di luar Kubernetes, serta memahami pola orchestration storage di lingkungan cloud native. Mari kita mulai.

Ceph CSI untuk RBD dan CephFS

Arsitektur Ceph CSI

Container Storage Interface (CSI) adalah standar yang memungkinkan Kubernetes mem-provision storage dari vendor mana pun. Driver Ceph CSI tersedia dalam dua flavor: csi-rbd untuk block volume dan csi-cephfs untuk shared filesystem. Kedua driver berjalan sebagai daemonset dan sidecar di cluster Kubernetes.

StorageClass RBD CSI
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-rbd
provisioner: rbd.csi.ceph.com
parameters:
  clusterID: 3a5f0d12-6b2e-4c8a-9f1e-2d3c4b5a6f70
  pool: rbd-pool
  imageFeatures: layering
  csi.storage.k8s.io/fstype: ext4

rbd.csi.ceph.com adalah provisioner untuk RBD. Parameter clusterID menunjuk ke FSID cluster Ceph, pool menentukan tempat image dibuat. StorageClass ini bisa langsung dipakai oleh PVC.

PersistentVolumeClaim untuk RBD

Setelah StorageClass siap, buat PVC dan volume akan diprovision otomatis:

PVC RBD 10 GB
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-app
spec:
  storageClassName: ceph-rbd
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

ReadWriteOnce berarti volume hanya bisa di-mount satu node pada satu waktu — cocok untuk RBD. Untuk workload yang butuh banyak reader sekaligus, gunakan StorageClass CephFS dengan ReadWriteMany.

CephFS CSI untuk Shared Storage

Driver CephFS memakai pool metadata dan data dari filesystem Ceph yang sudah ada:

StorageClass CephFS
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ceph-fs
provisioner: cephfs.csi.ceph.com
parameters:
  clusterID: 3a5f0d12-6b2e-4c8a-9f1e-2d3c4b5a6f70
  fsName: myfs
  csi.storage.k8s.io/fstype: ext4

cephfs.csi.ceph.com memprovision subvolume CephFS untuk setiap PVC. Volume ini bisa diakses banyak pod sekaligus, sehingga cocok untuk aplikasi yang berbagi filesystem.

Rook dan Integrasi Cloud Native

Apa Itu Rook

Rook adalah operator Kubernetes yang mengotomatiskan deployment, konfigurasi, dan operasional Ceph di dalam cluster Kubernetes. Dengan Rook, konfigurasi cluster Ceph dinyatakan sebagai CustomResourceDefinition, dan operator menangani sisanya.

CRD Cluster Rook
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: rook-ceph
  namespace: rook-ceph
spec:
  dataDirHostPath: /var/lib/rook
  mon:
    count: 3
  storage:
    useAllNodes: true
    useAllDevices: true

CephCluster adalah resource utama Rook. mon.count: 3 membuat tiga MON, dan useAllDevices: true memakai semua disk kosong untuk OSD. Operator menerjemahkan spesifikasi ini menjadi daemon Ceph yang berjalan sebagai pod.

Rook vs Ceph Eksternal

Ada dua pola yang sah:

  • Ceph di dalam Kubernetes (Rook): mudah disiapkan, cocok untuk deployment yang semuanya berada di Kubernetes, tetapi operasional storage ikut terikat siklus hidup cluster.
  • Ceph eksternal: cluster Ceph terpisah, Kubernetes hanya memakai CSI untuk menghubungkan. Lebih cocok untuk scale besar dan storage yang dilayani sebagai platform terpisah.

Pilih berdasarkan kebutuhan: jika storage adalah produk utama, pisahkan; jika storage adalah pelengkap workload, Rook adalah jalan pintas yang sehat.

Deploy Ceph di Kubernetes vs Eksternal

Memori Operasional

Ceph di Kubernetes memanfaatkan scheduling dan self-healing Kubernetes, tetapi menambah lapisan kompleksitas: upgrade harus disinkronkan, dan kegagalan node Kubernetes memengaruhi daemon Ceph. Ceph eksternal memberi kendali penuh dengan operasional yang lebih klasik dan terisolasi dari siklus release Kubernetes.

Pertimbangan Sumber Daya

Menjalankan Ceph di dalam Kubernetes berarti daemon Ceph berbagi resource dengan workload lain. Karena OSD sensitif terhadap latency, node yang padat bisa menurunkan performa. Banyak deployment produksi memakai node dedicated untuk storage meskipun Ceph berjalan di Kubernetes, untuk menghindari noisy neighbors.

Storage Orchestration Patterns

Operator Pattern

Operator seperti Rook adalah contoh pola storage orchestration: logika operasional storage — provision, resize, backup, recovery — ditulis sebagai kode dan dijalankan otomatis oleh controller. Ini mengurangi pekerjaan manual berulang dan membuat perilaku konsisten antar deployment.

Pemisahan Control Plane dan Data Plane

Pola terbaik di cloud native adalah memisahkan control plane (operator, CSI controller) dari data plane (OSD). Daemon storage berjalan di node dengan label khusus, sementara kontrol berjalan di mana saja. Dengan cara ini, scaling dan maintenance bisa dilakukan per bagian tanpa saling mengganggu.

Label node untuk storage
kubectl label node node-storage-1 role=storage

kubectl label node memberi label pada node khusus storage. Operator dan scheduler lalu bisa memastikan OSD hanya berjalan di node yang dilabeli, menjaga kualitas performa storage tetap terkontrol.

Penutup

Di episode ini kalian sudah memahami posisi Ceph di ekosistem Kubernetes dan cloud native: memakai Ceph CSI untuk RBD dan CephFS melalui StorageClass dan PVC, mengenal Rook sebagai operator storage, membandingkan deployment Ceph di dalam dan di luar Kubernetes, serta memahami pola storage orchestration dengan operator dan pemisahan control plane dari data plane.

Inti yang harus dibawa pulang:

  • Ceph CSI menyediakan block volume via RBD dan shared filesystem via CephFS.
  • StorageClass dan PVC memprovision volume secara otomatis tanpa manual.
  • Rook mengotomatiskan operasional Ceph di dalam Kubernetes lewat CRD.
  • Ceph di Kubernetes cocok untuk simbiosis, Ceph eksternal untuk skala dan isolasi.
  • Node storage sebaiknya dilabeli khusus agar OSD tidak berbagi resource dengan workload.
  • Operator pattern mengubah operasional storage menjadi kode yang berulang dan konsisten.

Di episode 17 selanjutnya kita akan membahas object lifecycle & S3 features — bucket lifecycle dan versioning, kebijakan object dan multipart upload, fitur GDPR dan data retention, serta integrasi object storage dengan analytics. Saatnya menguasai fitur object storage paling canggih!

Belajar Ceph - Ceph in Kubernetes & Cloud Native | Belajar Ceph