Belajar Istio - Instalasi & Upgrade (istioctl, Operator, Helm)
Episode 3 of 23

Belajar Istio - Instalasi & Upgrade (istioctl, Operator, Helm)

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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.

Opsi Instalasi: istioctl, Operator, Helm

istioctl install

Metode paling sederhana dan paling banyak dipakai untuk latihan serta lingkungan kecil:

Install Istio dengan istioctl
istioctl install --set profile=demo -y

istioctl 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.

Istio Operator

Metode berbasis Kubernetes Operator: kalian mendefinisikan sebuah resource IstioOperator dan operator menjaga agar state cluster selalu sesuai dengan deskripsi itu.

Resource IstioOperator
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: example-istiocontrolplane
spec:
  profile: demo

Karena 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.

Helm

Metode yang paling dekat dengan ekosistem Kubernetes modern. Setiap komponen (base, istiod, ingress gateway) adalah chart Helm:

Install dengan 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=default

helm 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.

Memilih Profile yang Tepat

Perbandingan Profile

Istio menyediakan beberapa profile bawaan:

  • default: fitur inti dengan trade-off seimbang, paling cocok untuk produksi.
  • demo: lengkap untuk eksperimen, termasuk grafana, prometheus, kiali, dan jaeger.
  • minimal: hanya control plane istiod, paling ringan.
  • ambient: untuk mode ambient mesh tanpa sidecar (kita bahas di episode 17).
  • external / remote: untuk topologi multi-cluster (episode 16).

Cek profile yang tersedia dengan istioctl profile list. Untuk produksi, mulai dari default dan aktifkan komponen observability secara selektif, bukan langsung menyalin demo.

Custom Profile

Saat kebutuhan berkembang, buat file profile custom daripada menumpuk --set:

Profile custom
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: true

File ini bisa diterapkan dengan istioctl install -f prod-profile.yaml dan disimpan di Git untuk auditability.

Strategi Upgrade

istioctl x upgrade

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:

Upgrade Istio
istioctl x precheck
istioctl x upgrade -y

Selalu 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.

Canary Install

Untuk mengurangi risiko, gunakan canary install: instal versi baru berdampingan dengan versi lama, lalu pindahkan workload satu per satu lewat label revisi.

Install revisi canary
istioctl install --revision=canary --set profile=default -y
kubectl label namespace default istio.io/rev=canary --overwrite

Label 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.

Penutup

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:

  • istioctl cepat untuk eksperimen; operator dan Helm lebih ramah GitOps.
  • Profile default untuk produksi, demo untuk eksperimen, minimal untuk memori ketat.
  • Kustomisasi besar sebaiknya lewat file IstioOperator, bukan tumpukan --set.
  • Upgrade minor harus berurutan: satu versi minor per langkah.
  • istioctl x precheck wajib dijalankan sebelum upgrade.
  • Canary install memakai revisi dan label istio.io/rev untuk migrasi bertahap.
  • Versi istioctl harus sama dengan versi Istio yang dipakai.

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.

Belajar Istio - Instalasi & Upgrade (istioctl, Operator, Helm) | Belajar Istio