Episode ini membahas redundansi dan failover gateway, backup serta restore konfigurasi, dan recovery drill untuk menghadapi interupsi layanan dengan tenang.

Gateway yang mati berarti seluruh aplikasi di belakangnya tidak bisa diakses. Episode 18 membahas high availability dan disaster recovery Multigress: merancang redundansi dan failover, mem-backup serta me-restore konfigurasi, dan menjalankan recovery drill secara berkala.
Tujuan akhir: tidak ada kegagalan tunggal yang bisa mematikan gateway, dan kalau pun terjadi interupsi, tim sudah tahu persis langkah pemulihannya.
Redundansi dimulai dari jumlah replica. Selanjutnya, PodDisruptionBudget memastikan operasi pemeliharaan node tidak menurunkan semua pod sekaligus.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: multigress-gateway
namespace: multigress-system
spec:
minAvailable: 2
selector:
matchLabels:
app: multigress-gatewayPDB dengan minAvailable: 2 menjamin minimal dua pod gateway tetap berjalan saat drain node. Tanpa PDB, eviction bisa menonaktifkan semua replica sekaligus.
Replica tanpa kontrol sebaran bisa menumpuk di satu node. Gunakan topology spread constraints agar pod tersebar, sehingga kegagalan node tidak mematikan semua replika.
apiVersion: apps/v1
kind: Deployment
metadata:
name: multigress-gateway
namespace: multigress-system
spec:
template:
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: multigress-gatewayConstraint di atas menyebar pod ke zone yang berbeda. Failover kemudian berjalan otomatis: request dialihkan ke pod yang tersisa tanpa intervensi manusia.
Konfigurasi Multigress semuanya adalah resource Kubernetes. Backup bisa dilakukan dengan mengekspor seluruh objek terkait ke satu file YAML.
kubectl get gateway,httproutes,securitypolicy,backendtrafficpolicy \
-A -o yaml > multigress-backup-2026-08.yamlPerintah kubectl get gateway,httproutes,securitypolicy,backendtrafficpolicy -A -o yaml mengekspor semua konfigurasi gateway ke satu file. Simpan hasilnya di luar cluster, misalnya di object storage atau repo Git privat.
Saat cluster baru dibuat, restore tinggal menerapkan file backup lalu memverifikasi kondisi.
kubectl apply -f multigress-backup-2026-08.yaml
kubectl get gateway -A
kubectl get httproute -ASetelah restore, periksa status Gateway dalam kondisi accepted. Jangan lupa juga mem-backup secret TLS — tanpa secret, restore HTTPS tidak akan berfungsi.
Kebenaran prosedur hanya teruji saat dieksekusi. Lakukan simulasi sederhana secara berkala: bunuh pod gateway dan amati pemulihan.
kubectl delete pod -n multigress-system -l app=multigress-gateway
kubectl get pods -n multigress-system -wkubectl delete pod -n multigress-system -l app=multigress-gateway memaksa satu pod restart, sementara kubectl get pods -w memperlihatkan deployment menariknya kembali. Kalau proses ini berjalan mulus, berarti deployment gateway sehat.
Di luar simulasi kecil, jadwalkan drill menyeluruh setahun sekali: shutdown satu region, restore dari backup di region baru, dan ukur waktu pemulihan. Catat hasilnya dan perbaiki prosedur yang gagal.
Warning
Backup yang tidak pernah direstorasi sama saja tidak ada. Setiap perubahan prosedur recovery harus diuji dalam drill berikutnya.
Episode 18 membuat gateway kalian tahan banting: PDB dan sebaran zone menjaga ketersediaan, backup ekspor memungkinkan pemulihan penuh, dan drill mengubah prosedur menjadi keterampilan tim.
Inti yang harus dibawa pulang:
Di episode 19 selanjutnya kita akan membahas CI/CD untuk konfigurasi gateway — validasi manifest Gateway API di pipeline, deployment serta rollback otomatis, dan release management untuk perubahan routing. Prosedur recovery yang kalian latih akan berjalan otomatis lewat pipeline.