Episode 3 menginstall Istio untuk pertama kali: membandingkan tiga metode (istioctl, Istio Operator, dan Helm), memilih profile yang tepat sesuai environment, lalu menyusun strategi upgrade dengan canary install dan istioctl x upgrade.

Cluster kalian sudah siap dari episode 0, dan arsitektur sudah dipahami dari episode 2. Sekarang saatnya aksi nyata: menginstall Istio. Episode 3 ini membahas tiga metode instalasi, cara memilih profile yang sesuai dengan environment, dan strategi upgrade yang aman — keputusan yang akan mempengaruhi seluruh operasional mesh kalian.
Jangan terburu-buru. Pilihan metode instalasi bukan soal selera semata: ia menentukan bagaimana kalian melakukan upgrade, siapa yang memegang state konfigurasi, dan seberapa mudah instalasi diotomasi.
Metode paling sederhana dan paling banyak dipakai untuk latihan serta lingkungan kecil:
istioctl install --set profile=demo -yistioctl install --set profile=demo menerapkan profile tertentu dan menunggu sampai semua komponen siap. Kelebihan metode ini: satu perintah, output jelas, dan punya mekanisme --set untuk kustomisasi langsung. Kekurangannya: kurang cocok untuk GitOps karena konfigurasi tersimpan di command line, bukan di manifest.
Metode berbasis Kubernetes Operator: kalian mendefinisikan sebuah resource IstioOperator dan operator menjaga agar state cluster selalu sesuai dengan deskripsi itu.
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: example-istiocontrolplane
spec:
profile: demoKarena resource ini adalah YAML biasa, ia bisa disimpan di repository dan diterapkan lewat GitOps. Operator juga menangani upgrade dengan cara yang lebih terkontrol. Kekurangan: konsep tambahan (operator) dan siklus rilis operator yang harus diperhatikan.
Metode yang paling dekat dengan ekosistem Kubernetes modern. Setiap komponen (base, istiod, ingress gateway) adalah chart Helm:
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm install istio-base istio/base -n istio-system --create-namespace
helm install istiod istio/istiod -n istio-system --set profile=defaulthelm install istiod istio/istiod memberi kalian kontrol granular lewat values dan integrasi natural dengan Helm-based GitOps seperti ArgoCD. Kekurangannya: kalian harus paham urutan install base, lalu istiod, lalu gateway — bukan satu perintah tunggal.
Istio menyediakan beberapa profile bawaan:
Cek profile yang tersedia dengan istioctl profile list. Untuk produksi, mulai dari default dan aktifkan komponen observability secara selektif, bukan langsung menyalin demo.
Saat kebutuhan berkembang, buat file profile custom daripada menumpuk --set:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: prod-profile
spec:
profile: default
components:
ingressGateways:
- name: istio-ingressgateway
enabled: true
egressGateways:
- name: istio-egressgateway
enabled: true
meshConfig:
enablePrometheusMerge: trueFile ini bisa diterapkan dengan istioctl install -f prod-profile.yaml dan disimpan di Git untuk auditability.
Upgrade versi minor Istio dengan istioctl x upgrade hanya bisa dilakukan satu versi minor dalam satu langkah (misalnya 1.21 ke 1.22, bukan langsung ke 1.23). Prosesnya: verifikasi prasyarat, unduh istioctl versi baru, lalu jalankan upgrade:
istioctl x precheck
istioctl x upgrade -ySelalu jalankan istioctl x precheck sebelum upgrade untuk mendeteksi masalah seperti CRD yang tertinggal. Baca release notes versi tujuan karena ada fitur yang berubah atau deprecate.
Untuk mengurangi risiko, gunakan canary install: instal versi baru berdampingan dengan versi lama, lalu pindahkan workload satu per satu lewat label revisi.
istioctl install --revision=canary --set profile=default -y
kubectl label namespace default istio.io/rev=canary --overwriteLabel istio.io/rev=canary pada namespace membuat workload baru di namespace tersebut memakai revisi canary. Istiod lama tetap melayani workload yang belum dipindah, sehingga rollback tinggal mengganti label kembali. Detail lengkap pemindahan workload akan kita bahas di episode 4.
Warning
Jangan pernah mencampur dua versi Istio di cluster yang sama tanpa memahami konsekuensinya. Canary install memerlukan perhatian pada label revisi, DNS, dan kompatibilitas CRD.
Episode 3 membuat Istio benar-benar berjalan: kalian sekarang paham tiga metode instalasi (istioctl, operator, Helm), bisa memilih profile yang tepat, dan punya strategi upgrade dengan canary install serta istioctl x upgrade.
Inti yang harus dibawa pulang:
--set.istioctl x precheck wajib dijalankan sebelum upgrade.istio.io/rev untuk migrasi bertahap.Di episode 4 selanjutnya kita akan mengaktifkan sidecar injection dan workload onboarding — mengubah namespace berlabel istio-injection=enabled atau istio.io/rev, memahami perbedaan injection otomatis versus manual dengan istioctl kube-inject, serta menambahkan workload non-Kubernetes lewat WorkloadEntry.