Episode 21 melindungi mesh dalam perjalanan panjang: jalur upgrade yang aman dengan canary control plane dan migrasi workload, strategi rollback, backup dan restore konfigurasi Istio, serta pemulihan cluster setelah kegagalan.

Memasang Istio sekali tidak cukup — teknologi bergerak, dan mesh kalian harus ikut. Episode 21 ini membahas tiga hal yang menentukan kelangsungan jangka panjang: upgrade yang aman, backup dan restore, serta pemulihan dari bencana. Semuanya tentang satu prinsip: bagaimana pulang dengan selamat jika sesuatu berjalan tidak sesuai rencana.
Sebelum menaikkan versi, lakukan langkah wajib:
istioctl x precheck di cluster.istioctl x precheck
istioctl upgrade --dry-run --filename upgrade-manifest.yamlistioctl x precheck memeriksa kompatibilitas sebelum sesuatu berubah. --dry-run memberi gambaran perubahan tanpa menerapkannya.
Pola paling aman: install versi baru sebagai revisi canary, lalu pindahkan workload bertahap:
istioctl install --revision=1-23-0 --set profile=default -y
kubectl label ns default istio.io/rev=1-23-0Label istio.io/rev=1-23-0 membuat Pod baru memakai istiod versi baru. Monitor selama beberapa hari, lalu migrasikan seluruh namespace. Workload yang masih memakai revisi lama tetap dilayani istiod lama — tidak ada downtime.
Tidak ada upgrade yang bebas risiko. Siapkan rollback sejak awal:
kubectl label ns default istio.io/rev=1-22-1 --overwritekubectl label ns default istio.io/rev=1-22-1 mengarahkan workload baru kembali ke revisi lama. Pod yang sudah ada di-restart bertahap untuk kembali ke versi sebelumnya. Ingat: istioctl x upgrade tidak memigrasikan CRD secara otomatis — jangan pernah menurunkan CRD ke versi yang tidak dikenali revisi lama.
Konfigurasi Istio adalah YAML biasa — tidak perlu alat mahal untuk backup dasar:
kubectl get $(kubectl api-resources --verbs=get -o name | grep istio.io) -A -o yaml > istio-config-backup.yamlkubectl get ... -A -o yaml mengekspor semua resource dari API groups Istio ke satu file YAML. Simpan di storage terpisah (Git, S3, R2) agar tersedia saat cluster hilang.
Untuk pemulihan menyeluruh termasuk Namespace dan Secrets, gunakan Velero:
velero backup create mesh-backup --include-namespaces istio-system,default --include-resources '*'
velero restore create --from-backup mesh-backupvelero backup create --include-namespaces istio-system,default menyimpan seluruh objek di namespace tersebut ke object storage. Velero juga bisa mem-backup PersistentVolume — penting untuk Prometheus dan Kiali.
Saat cluster baru dibuat dari nol, urutan pemulihan yang disarankan:
istioctl proxy-status semuanya SYNCED.Disaster recovery bukan dokumen — adalah latihan. Jadwalkan incident drill berkala: bangun cluster dari nol, restore backup, dan ukur berapa lama sampai semua service melayani traffic. Angka ini (RTO) harus sesuai dengan ekspektasi bisnis. Simpan hasilnya sebagai runbook untuk episode 22.
Tip
Simpan manifest backup Istio di dua tempat berbeda, dan uji restore secara berkala. Backup yang tidak pernah di-restore hanyalah harapan baik.
Episode 21 melindungi perjalanan mesh: upgrade dengan canary control plane dan migrasi workload bertahap, strategi rollback dengan revisi, backup CRD dengan kubectl atau Velero, serta prosedur pemulihan cluster yang diuji lewat incident drill.
Inti yang harus dibawa pulang:
Di episode 22 terakhir kita akan merangkum semuanya: production hardening dan best practices — checklist keamanan dengan mTLS dan least-privilege, checklist operasional dengan kuota dan runbook, serta standar dokumentasi untuk service owner.