Menggabungkan semua pelajaran menjadi arsitektur yang siap produksi. Episode ini membahas perencanaan pool IP, pemilihan mode L2 versus BGP, integrasi router, high availability, upgrade strategy, pipeline GitOps, observability, sizing, dan runbook insiden.

Setelah 20 episode teori, praktik, dan troubleshooting, tiba saatnya merangkai semuanya menjadi satu kesatuan: arsitektur MetalLB yang siap produksi. Episode 21 bukan tentang satu fitur baru, melainkan tentang keputusan desain — perencanaan pool, pilihan mode, integrasi router, high availability, strategi upgrade, pipeline GitOps, observability, sizing, dan runbook insiden.
Arsitektur produksi yang baik tidak muncul dari satu konfigurasi yang "benar". Dia muncul dari keputusan yang diambil dengan pemahaman terhadap trade-off — persis yang sudah kalian pelajari di sepanjang series ini. Episode ini adalah cetak biru lengkapnya.
Perencanaan pool adalah langkah pertama yang tidak boleh terburu-buru. Rekomendasi untuk produksi:
Contoh konfigurasi produksi:
apiVersion: metallb.io/v1beta2
kind: IPAddressPool
metadata:
name: prod-pool
namespace: metallb-system
spec:
addresses:
- 192.168.20.0/24
avoidBuggyIPs: true192.168.20.0/24 menyediakan lebih dari 200 IP yang bisa dipakai — cukup untuk sebagian besar kebutuhan awal, dengan avoidBuggyIPs: true menghindari alamat bermasalah.
Pemilihan mode adalah keputusan arsitektur terbesar. Panduannya:
kubectl get l2advertisement
kubectl get bgpadvertisement
kubectl get bgppeerkubectl get l2advertisement, kubectl get bgpadvertisement, dan kubectl get bgppeer menunjukkan mode mana yang aktif. Cluster bisa menjalankan keduanya sekaligus — satu pool di-announce L2, pool lain lewat BGP.
Untuk mode BGP, integrasi router adalah proyek bersama dengan tim jaringan. Pastikan:
routerID eksplisit untuk setiap node.High availability MetalLB hanya berarti jika lapisan di bawahnya juga HA:
externalTrafficPolicy: Local dengan replica pod tersebar (episode 9).Strategi upgrade yang aman untuk produksi:
Argo CD atau Flux menerapkan konfigurasi secara otomatis dari repository. Praktik yang disarankan:
Pantau MetalLB dengan stack yang sudah kalian bangun di episode 11:
kubectl get pods -n metallb-system
kubectl top pods -n metallb-systemkubectl top pods -n metallb-system menampilkan pemakaian CPU dan memori. Data ini menjadi dasar sizing: pastikan resource request controller dan speaker sesuai beban, terutama di cluster dengan banyak Service dan node.
Sebagai titik awal: controller tidak butuh banyak resource — ia hanya memproses alokasi. Speaker berbagi beban per node. Jika metric menunjukkan throttling atau OOM, naikkan resource limit — tetapi ukur dulu, jangan menebak.
Runbook insiden adalah dokumen yang menjelaskan langkah konkret saat masalah terjadi. Untuk MetalLB, isi runbook mencakup:
kubectl get svc -A -o wide
kubectl get events --all-namespaces | grep -i metallbkubectl get events --all-namespaces | grep -i metallb adalah langkah pembuka yang hampir selalu ditulis di runbook — cepat, dan sering langsung mengungkap akar masalah. Latih runbook ini dalam simulasi insiden agar tim terbiasa.
Episode 21 menuntaskan production-ready architecture: perencanaan pool, pemilihan mode, integrasi router, high availability, strategi upgrade, pipeline GitOps, observability, sizing, dan runbook insiden — semua dirangkai menjadi satu arsitektur yang utuh.
Inti yang harus dibawa pulang:
Di episode 22 selanjutnya — episode terakhir — kita akan membahas ekosistem alternatif & refleksi akhir: perbandingan menyeluruh MetalLB versus kube-vip, cloud LBs, dan NodePort, kapan memilih masing-masing, rekap perjalanan episode 0 sampai 21, checklist MetalLB production-grade, dan arah masa depan MetalLB di ekosistem Kubernetes.