Episode 2 membedah arsitektur Istio secara menyeluruh: peran istiod sebagai control plane, Envoy sidecar sebagai data plane, sepuluh CRD utama yang dipakai setiap hari, dan cara konfigurasi didistribusikan ke proxy lewat protokol xDS.

Di episode 1 kalian melihat gambaran besar mengapa Istio ada. Sekarang saatnya membedah mesinnya: bagaimana Istio bekerja di dalam. Episode 2 ini menjelaskan dua lapisan arsitektur (control plane dan data plane), CRD yang akan kalian tulis setiap hari, serta protokol xDS yang menjadi urat nadi distribusi konfigurasi.
Pahami struktur ini dengan baik — hampir setiap istilah yang muncul di episode berikutnya (VirtualService, DestinationRule, PeerAuthentication, dan lainnya) hidup di dalam kerangka yang kita bangun sekarang.
Sejak versi 1.5, Istio menggabungkan komponen control plane lama (Pilot, Citadel, Galley) ke dalam satu binary bernama istiod. Tiga tanggung jawab utamanya:
istiod berjalan sebagai Deployment di namespace istio-system. Kalian bisa melihatnya bersama komponen lain:
kubectl get deploy -n istio-system
kubectl get pods -n istio-system -l istio=sidecar-injectorBaris kedua menampilkan Pod istiod beserta webhook sidecar injector yang akan kita bahas di episode 4.
Setiap Pod yang masuk mesh disuntikkan container istio-proxy (Envoy). Envoy inilah yang memproses seluruh traffic masuk dan keluar Pod: menerapkan routing, retry, mTLS, serta mencatat telemetry. Karena sidecar ikut berpindah bersama aplikasi, aturan traffic selalu mengikuti beban kerja, bukan bergantung pada infrastruktur.
Contoh paling sederhana dari VirtualService yang mengirim semua traffic ke satu service:
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: reviews-routing
spec:
hosts:
- reviews
http:
- route:
- destination:
host: reviews
subset: v1Lihat seluruh CRD yang terpasang di cluster:
kubectl get crd | grep istio.ioEnvoy tidak membaca YAML Istio secara langsung. Istiod menerjemahkan CRD dan Service Kubernetes menjadi aturan-aturan yang disalurkan lewat protokol gRPC bernama xDS. Empat yang paling penting:
Alurnya berjalan seperti ini: kalian menerapkan VirtualService dan DestinationRule, istiod memvalidasi dan menerjemahkannya, lalu mendorong RDS dan CDS ke setiap Envoy yang terhubung. Envoy menjaga koneksi streaming ke istiod sehingga perubahan konfigurasi bisa tersebar dalam hitungan detik tanpa restart.
Untuk memeriksa apa yang diterima sebuah sidecar, gunakan perintah berikut:
kubectl exec -it reviews-v1-abc123 -c istio-proxy -- curl localhost:15000/config_dump
istioctl proxy-statusistioctl proxy-status adalah alat kunci: ia menunjukkan sinkronisasi setiap sidecar dengan istiod. Jika kolom status menampilkan SYNCED, konfigurasi terkirim dengan baik; jika STALE, terjadi masalah koneksi atau versi konfigurasi yang tertinggal.
Info
Konsep xDS akan terus muncul di episode 9 (validasi), episode 14 (performance), dan episode 15 (EnvoyFilter). Kuasai istilah CDS, EDS, LDS, dan RDS sekarang agar episode-episode itu terasa akrab.
Episode 2 menyusun kerangka arsitektur Istio: istiod sebagai control plane yang memadukan fungsi Pilot, Citadel, dan Galley; Envoy sidecar sebagai data plane; sepuluh CRD yang menjadi bahasa konfigurasi; serta protokol xDS yang mengalirkan CDS, EDS, LDS, dan RDS ke setiap proxy.
Inti yang harus dibawa pulang:
istioctl proxy-status adalah barometer kesehatan distribusi konfigurasi.Di episode 3 selanjutnya kita akan menginstall Istio untuk pertama kalinya — membandingkan opsi istioctl install, Istio Operator, dan Helm, memilih profile yang tepat, serta menyusun strategi upgrade yang aman. Pastikan cluster dari episode 0 masih hidup.