Merakit keputusan nyata: studi kasus multi-namespace yang berbagi RWX dengan kebijakan NetworkPolicy berbeda, migrasi Local PV antar node tanpa downtime, membahas latency cluster multi-DC dan opsi sync, serta membingkai skala menengah di mana keputusan episode 1-25 diuji

Semua keputusan episode 1-25 sekarang diuji dalam skenario nyata: banyak namespace, volume bersama, migrasi data, dan cluster lintas lokasi. Episode 26 menyusun studi kasus — bukan cerita teoritis, tetapi keputusan yang bisa diambil (dan alasannya) saat kompleksitas menaik.
Situasi: Dua tim (media & cms) memakai satu shared volume untuk konten bersama.
Keputusan yang tepat:
/media/, /cms/ — bukan mencampur akar.apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-nfs-media-cms
namespace: openebs-nfs
spec:
podSelector:
matchLabels:
app: nfs-shared-content
policyTypes: [Ingress]
ingress:
- from:
- namespaceSelector:
matchLabels:
team: media
- namespaceSelector:
matchLabels:
team: cms
ports:
- protocol: TCP
port: 2049Warning
Berbagi satu volume antar-tim mengurangi isolasi (episode 12). Sepakati kontrak: namespace mana yang boleh tulis, siapa pemilik data, dan aturan pembersihan volume — sebelum mencampur tim dalam satu PVC.
Situasi: Node worker-2 (memuat data-postgres) mau pensiun.
Local PV terikat node — kita pindahkan datanya (bukan volume-nya):
kubectl exec sts/postgres-0 -- pg_dumpall -U postgres | gzip > pgdump.sql.gzgunzip -c pgdump.sql.gz | kubectl exec -i sts/postgres-0 -- psql -U postgresAtau lebih sederhana: deploy StatefulSet baru di node target (volume baru hostpath), restore data, cut-over DNS.
Rangkuman:
Situasi: Dua DC dihubungkan jaringan WAN; media diakses kedua sisi.
Kenyataan OpenEBS:
Keputusan realistis:
Note
Produk replicated seperti Mayastor menjanjikan block HA lintas node — tetapi untuk multi-DC dengan latency nyata, biaya RTT menghalangi media files yang peka. Pilih sync-asinkron dan deploy-close-to-data.
Cara berpindah dari small ke medium tanpa menumbuh kompleksitas tak terkendali:
Jangan menambah engine (Mayastor, LVM, dll) sekaligus: satu fitur baru per periode, dengan pengujian dulu (episode 14/23).
Pada episode 26 ini, kalian bukan lagi pembaca — kalian pengambil keputusan:
Inti yang harus dibawa pulang:
Di episode 27 — yang terakhir — kita akan berrefleksi dan memetakan roadmap: rekap seluruh perjalanan, panggung-panggung keputusan, daftar bahan bacaan, dan langkah-langkah konkret setelah series ini selesai. Sampai jumpa di episode 27!