Belajar Istio - Ambient Mesh & Sidecar-less Patterns
Episode 17 of 23

Belajar Istio - Ambient Mesh & Sidecar-less Patterns

Episode 17 membahas ambient mesh: mode tanpa sidecar dengan ztunnel untuk security L4 dan waypoint untuk traffic L7, perbedaan dengan model sidecar dari sisi keamanan dan observability, serta status stability yang harus selalu dicek di release notes.

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

Pendahuluan

Sidecar sudah menjadi identitas Istio sejak awal — tapi bukan berarti satu-satunya cara. Episode 17 ini memperkenalkan ambient mesh: arsitektur tanpa sidecar yang memindahkan Envoy dari dalam Pod ke lapisan node dan waypoint terpusat. Tujuannya: mendapatkan manfaat mesh dengan overhead yang jauh lebih kecil.

Penting: ambient mesh terus berkembang. Sebelum memakai di produksi, selalu verifikasi status stability di release notes resmi Istio untuk versi kalian. Episode ini ditulis dengan pola pikir itu — bukan instruksi final, melainkan peta untuk menyelidiki sendiri.

Konsep Ambient Mesh

ztunnel: Keamanan L4 di Setiap Node

Alih-alih satu Envoy per Pod, ambient memakai ztunnel (zero-trust tunnel): daemon yang berjalan di setiap node dan menangani security layer 4 (mTLS, autentikasi, tunnel) untuk semua Pod di node tersebut. Karena ztunnel tidak memproses traffic L7, overhead-nya jauh lebih kecil daripada sidecar.

Waypoint: Envoy untuk L7 saat Dibutuhkan

Fitur seperti routing HTTP, retry, dan authorization L7 tidak gratis. Ambient menyediakannya lewat waypoint proxy — Envoy yang ditempatkan secara terpusat dan hanya memproses traffic yang benar-benar membutuhkannya:

Mengaktifkan waypoint
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: waypoint-productpage
  namespace: default
spec:
  gatewayClassName: istio-waypoint
  listeners:
  - name: mesh
    port: 15008
    protocol: HBONE

gatewayClassName: istio-waypoint memakai class Gateway bawaan Istio untuk membuat waypoint. Workload yang memakai waypoint ini mendapatkan fitur L7; yang tidak, cukup dengan L4 dari ztunnel.

Lapisan Data Plane

Alur traffic ambient: Pod → ztunnel (L4, mTLS, tunnel HBONE) → waypoint (L7 opsional) → ztunnel tujuan → Pod. Fitur dikenakan sesuai kebutuhan, bukan untuk semua traffic secara default.

Perbedaan dengan Model Sidecar

Keamanan

Di model sidecar, mTLS dan authorization menyatu di tiap Pod. Di ambient, mTLS dijamin oleh ztunnel secara default — tanpa intervensi — sementara authorization L4 juga berjalan di sana. Authorization L7 menunggu waypoint aktif. Polanya: keamanan dasar tanpa kerja ekstra, keamanan lanjutan sesuai permintaan.

Observability

Sidecar menghasilkan metrik per Pod secara otomatis. Ambient mengumpulkan telemetry dari ztunnel (L4) dan waypoint (L7). Karena tidak semua traffic lewat Envoy per-Pod, granularitasnya berbeda: alamat origin yang terlihat bisa berupa node, bukan Pod. Kiali dan dashboard perlu disetel ulang untuk memahami model ini.

Trade-offs

  • Positif: overhead rendah, Pod lebih ringan, startup Pod tanpa menunggu injection, aman sejak awal.
  • Negatif: fitur L7 butuh waypoint yang harus dikelola; beberapa fitur lanjutan masih belum matang; kompleksitas operasional mode baru.

Status Stability dan Cara Mengaktifkan

Mengecek Status di Rilis Kalian

Aturan yang tidak boleh dilewatkan: baca release notes versi Istio yang kalian pakai. Cari kata kunci ambient, beta, stable, dan experimental. Fitur yang experimental di satu versi bisa berubah di versi berikutnya tanpa peringatan — jangan mengajar atau mengadopsi fitur tanpa penanda status yang jelas.

Instalasi Ambient

Jika versi kalian mendukung ambient, aktifkan lewat profile:

Install profil ambient
istioctl install --set profile=ambient -y
kubectl label namespace default istio.io/dataplane-mode=ambient

kubectl label namespace default istio.io/dataplane-mode=ambient membuat Pod di namespace tersebut masuk mode ambient — ztunnel menangani security-nya tanpa sidecar. Cek komponen yang berjalan:

Cek komponen ambient
kubectl get pods -n istio-system -l app=ztunnel
kubectl get gateway.gateway.networking.k8s.io -n default

kubectl get pods -l app=ztunnel memastikan ztunnel aktif di tiap node.

Warning

Jangan mengadopsi ambient tanpa membaca release notes versi kalian sendiri. Fitur yang dijelaskan di sini bisa berbeda status stability-nya di rilis yang kalian gunakan.

Kapan Memilih Ambient

Ambient bukan pengganti serba-bisa; ia adalah opsi dengan profil yang berbeda. Pertimbangkan ambient saat:

  • Sebagian besar workload hanya butuh mTLS dan keamanan L4, bukan routing L7 rumit.
  • Overhead resource sidecar terasa berat dan biaya per Pod harus ditekan.
  • Startup Pod harus cepat tanpa menunggu proses injection.
  • Cluster punya workload yang tidak bisa dimodifikasi untuk menerima sidecar.

Pilih model sidecar saat:

  • Fitur L7 seperti routing berbasis header, retry granular, dan policy kompleks dipakai di banyak service.
  • Tim sudah matang mengoperasikan model sidecar dan punya tuning yang stabil.
  • Observability per-Pod yang detail lebih penting daripada penghematan resource.

Keputusan ini tidak harus semua-atau-tidak sama sekali: Istio mengizinkan campuran, di mana sebagian workload memakai sidecar dan sebagian memakai ambient, selama status stability di versi kalian mendukungnya. Uji perbandingan overhead dan fitur di staging sebelum memutuskan.

Penutup

Episode 17 memperkenalkan arsitektur masa depan Istio: ambient mesh dengan ztunnel untuk security L4 di setiap node dan waypoint untuk fitur L7 saat dibutuhkan, lengkap dengan perbandingan keamanan, observability, dan trade-offs terhadap model sidecar — serta penegasan untuk selalu memverifikasi status stability di release notes.

Inti yang harus dibawa pulang:

  • Ambient mesh tidak memakai sidecar; ztunnel menangani L4 di tiap node.
  • Waypoint proxy menyediakan fitur L7 hanya saat dibutuhkan.
  • Keamanan dasar diberikan default; fitur lanjutan sesuai permintaan.
  • Observability ambient berbeda: granularitas node dan waypoint.
  • Overhead lebih rendah, tetapi beberapa fitur masih belum matang.
  • Selalu cek status beta, stable, atau experimental di release notes.
  • Jangan mengadopsi fitur experimental tanpa penanda status yang jelas.

Di episode 18 selanjutnya kita akan mengotomatiskan perubahan: CI/CD untuk konfigurasi Istio dan canary deployments — GitOps untuk CRD Istio, progressive delivery dengan Argo Rollouts atau Flagger, serta analisis otomatis istioctl analyze di pipeline.

Belajar Istio - Ambient Mesh & Sidecar-less Patterns | Belajar Istio