Menaikkan skala platform dari satu cluster menjadi banyak: alasan membangun multi-cluster, pola pengelolaan fleet, model tenancy yang benar, dan cara menjaga kontrol saat jumlah cluster bertambah

Setelah di episode 14 platform bisa menyediakan data secara self-service, pertanyaan berikutnya muncul saat skala bertambah: apakah satu cluster cukup? Jawabannya seringkali tidak. Episode ini membahas multi-cluster & multi-tenancy — alasan membangun lebih dari satu cluster, cara mengelola fleet tanpa kacau, dan model tenancy yang tepat sebelum jumlah cluster meledak tak terkendali.
Mengapa ini penting? Platform yang baik di episode sebelumnya dibangun di atas satu cluster. Ketika organisasi tumbuh, satu cluster menjadi titik ledakan blast radius yang tunggal: satu misconfig bisa mengganggu semua tim, satu upgrade harus menunggu semua orang. Multi-cluster adalah alat pengendalian risiko dan skala — tapi tanpa strategi yang benar, sepuluh cluster bisa jadi sepuluh kali lipat kerumitan, bukan keamanan.
Empat alasan paling umum:
| Alasan | Contoh nyata |
|---|---|
| Blast radius | Satu upgrade control plane tidak boleh mematikan semua tim sekaligus |
| Isolasi environment | Dev, staging, dan prod di cluster terpisah |
| Region & latensi | Cluster per region untuk melayani pengguna dekat |
| Compliance | Data tertentu wajib tinggal di region/jurisdiksi tertentu |
Pola praktis yang banyak dipakai: cluster bersama untuk dev, cluster per environment untuk staging/prod, dan cluster terpisah untuk workload khusus (misalnya GPU, data, atau tenant besar). Tujuannya bukan "sebanyak mungkin", melainkan "sekecil mungkin demi risiko yang terkendali".
Kunci multi-cluster adalah satu source of truth, banyak target. Semua yang kita bangun di episode 5 (GitOps) kini menjadi tulang punggung: repositori berisi definisi fleet, dan setiap cluster di-render dari overlay-nya sendiri.
Pola App of Apps adalah cara standar mengelola fleet: satu Application root yang mem-bootstrap Application per cluster atau per layer platform.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: fleet-dev-eu
namespace: argocd
spec:
project: platform
source:
repoURL: https://github.com/org/platform
path: fleets/dev-eu
targetRevision: main
destination:
server: https://k8s-dev-eu.example.com
syncPolicy:
automated:
prune: true
selfHeal: trueDengan pola ini, menambah cluster = menambah folder fleets/ + register destination di ArgoCD. Semua layer platform (namespace, RBAC, monitoring, mesh, NetworkPolicy) otomatis ter-deploy ke cluster baru lewat mekanisme yang sama.
Pertanyaan kedua setelah jumlah cluster: siapa berbagi apa dengan siapa? Tiga model utama:
| Model | Isolasi | Skala tenant | Cocok untuk |
|---|---|---|---|
| Cluster per tenant | Paling kuat (control plane terpisah) | Kecil (puluhan tenant) | Tenant enterprise besar, compliance ketat |
| Namespace per tenant | Sedang (control plane bersama) | Besar (ratusan+ tenant) | Tim internal, environment dev |
| Virtual cluster (vCluster) | Kuat, control plane virtual | Sedang | Isolasi lebih dalam tanpa cluster fisik |
Namespace per tenant adalah default paling sehat untuk tim internal. Ia hemat biaya dan bisa diperkuat dengan ResourceQuota, LimitRange, NetworkPolicy, dan RBAC berbasis group (episode 4) — plus ArgoCD AppProject (episode 5) yang mengunci "tim A hanya bisa sync ke namespace A".
Onboarding cluster baru seharusnya menjadi PR, bukan proyek berhari-hari:
fleets/{nama-cluster} dengan overlay kustomisasi (region, node pool, model tenancy).environment=prod, region=eu) untuk memfilter rollout.Tip
Mulai dari model tenancy, bukan jumlah cluster. Tentukan dulu "siapa berbagi dengan siapa", baru putuskan berapa cluster yang benar-benar dibutuhkan. Aturan praktis: satu cluster dev bersama, satu cluster per environment kritis, dan cluster terpisah hanya untuk workload dengan kebutuhan isolasi nyata (GPU, data, tenant besar).
Inti yang harus dibawa pulang:
Di episode 16 selanjutnya kita menguatkan sisi keamanan dari semua yang sudah dibangun: platform security & compliance — policy-as-code tingkat lanjut, security gates di CI/CD, audit platform, dan cara membuat baseline keamanan yang bisa diverifikasi otomatis!