Waypoint Proxy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234
Waypoint Proxy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya
Dalam arsitektur cloud-native modern, aplikasi Dewa234 tidak lagi hanya terdiri dari satu server atau satu aplikasi monolitik. Banyak sistem saat ini menggunakan Kubernetes dan microservices yang terdiri dari berbagai service seperti user service, product service, order service, payment service, dan inventory service.
Semakin banyak service yang berkomunikasi, semakin besar pula kebutuhan terhadap security, traffic management, observability, authorization, routing, dan reliability. Service Mesh kemudian digunakan untuk menyediakan kemampuan tersebut pada lapisan komunikasi antar-service.
Pada artikel sebelumnya kita telah membahas Ambient Mesh, yaitu pendekatan data plane Istio yang memisahkan kemampuan Layer 4 dan Layer 7. Pada lapisan dasar terdapat ztunnel yang menangani secure Layer 4 overlay, sedangkan kebutuhan Layer 7 dapat ditangani menggunakan Waypoint Proxy.
Waypoint Proxy menjadi komponen penting ketika aplikasi membutuhkan kemampuan seperti HTTP routing, load balancing, retries, timeout, circuit breaking, rate limiting, authorization berbasis HTTP, access logging, metrics, dan tracing.
Artikel ini akan membahas Waypoint Proxy secara lengkap mulai dari pengertian, cara kerja, arsitektur, komponen, fungsi, hubungan dengan Ambient Mesh, ztunnel dan Gateway API, manfaat, kelebihan, kekurangan, hingga contoh implementasinya pada Kubernetes.
Apa Itu Waypoint Proxy?
Waypoint Proxy adalah proxy berbasis Envoy yang digunakan pada Istio Ambient Mesh untuk memberikan kemampuan pemrosesan Layer 7 atau L7 kepada workload.
Waypoint berbeda dengan sidecar proxy pada arsitektur Service Mesh tradisional. Jika sidecar Envoy berjalan berdampingan dengan container aplikasi di dalam Pod, waypoint berjalan sebagai komponen infrastructure di luar Pod aplikasi.
Dengan pendekatan tersebut, waypoint dapat di-install, di-upgrade, dan di-scale secara independen dari aplikasi. Sebuah waypoint juga dapat digunakan bersama oleh beberapa workload yang memiliki security boundary yang sama. :contentReference[oaicite:1]{index=1}
Waypoint Proxy bersifat opsional. Workload yang hanya membutuhkan secure Layer 4 overlay, mTLS, authorization L4, dan telemetry L4 dapat menggunakan ztunnel tanpa waypoint.
Namun, apabila workload membutuhkan fitur Layer 7 seperti HTTP routing, L7 authorization, HTTP metrics, access logging, atau tracing, maka waypoint dapat ditambahkan ke jalur traffic.
Mengapa Waypoint Proxy Dibutuhkan?
Salah satu alasan utama Waypoint Proxy diperkenalkan adalah kebutuhan untuk menyediakan kemampuan Layer 7 tanpa harus menjalankan Envoy sidecar pada setiap Pod.
Dalam Service Mesh berbasis sidecar, setiap workload yang masuk ke mesh biasanya mempunyai proxy sendiri. Jika terdapat ratusan atau ribuan Pod, jumlah proxy yang harus dikelola juga dapat meningkat.
Ambient Mesh memisahkan kebutuhan tersebut. ztunnel menangani fungsi dasar Layer 4, sedangkan waypoint digunakan ketika workload benar-benar membutuhkan pemrosesan Layer 7.
- Memberikan kemampuan Layer 7 pada Ambient Mesh.
- Menyediakan HTTP routing dan traffic management.
- Mendukung authorization berbasis request.
- Menyediakan HTTP metrics dan access logging.
- Mendukung distributed tracing.
- Menyediakan retries dan timeout.
- Mendukung circuit breaking dan rate limiting.
- Mengurangi kebutuhan Envoy sidecar pada setiap workload.
Pendekatan berlapis ini memungkinkan organisasi menggunakan Istio secara bertahap, dari secure L4 overlay hingga full L7 processing sesuai kebutuhan workload. :contentReference[oaicite:2]{index=2}
Perbedaan Waypoint Proxy dan Sidecar Proxy
| Aspek | Sidecar Proxy | Waypoint Proxy |
|---|---|---|
| Lokasi | Berjalan di dalam Pod aplikasi. | Berjalan di luar Pod aplikasi. |
| Teknologi | Envoy. | Envoy. |
| Scope | Umumnya satu proxy untuk setiap workload. | Dapat digunakan oleh beberapa workload. |
| Layer | Dapat menangani berbagai fungsi traffic. | Fokus pada pemrosesan Layer 7 dalam ambient mode. |
| Scaling | Mengikuti scaling workload. | Dapat di-scale secara independen. |
| Upgrade | Berhubungan dengan lifecycle workload. | Dapat di-upgrade secara independen dari aplikasi. |
| Ambient Mesh | Bukan komponen utama ambient. | Komponen opsional untuk L7. |
Hubungan Waypoint Proxy dengan Ambient Mesh
Waypoint Proxy tidak berdiri sendiri. Komponen ini merupakan bagian dari arsitektur Ambient Mesh pada Istio.
Ambient Mesh memiliki pendekatan berlapis. Lapisan bawah menggunakan ztunnel untuk secure Layer 4 overlay, sedangkan lapisan atas menggunakan waypoint untuk pemrosesan Layer 7 ketika dibutuhkan.
Ambient Mesh
│
┌─────────┴─────────┐
│ │
▼ ▼
ztunnel Waypoint
│ │
│ │
▼ ▼
L4 L7
│ │
mTLS / HBONE HTTP Routing
Authentication Authorization
L4 Policy Metrics
L4 Telemetry Logging
Tracing
Dengan demikian, waypoint bukan pengganti ztunnel. Keduanya memiliki tanggung jawab yang berbeda dan bekerja bersama sesuai kebutuhan traffic.
Hubungan Waypoint Proxy dan ztunnel
ztunnel merupakan proxy per-node yang menangani fungsi Layer 3 dan Layer 4. ztunnel menangani secure communication, mTLS, authentication, L4 authorization, dan telemetry.
Sementara itu, waypoint menggunakan Envoy untuk menangani fungsi Layer 7. ztunnel dapat meneruskan traffic menuju waypoint ketika workload tujuan menggunakan waypoint.
Client Workload
│
▼
ztunnel
│
│ Secure Overlay
│ HBONE
▼
Waypoint Proxy
│
│ Layer 7
▼
Destination Service
│
▼
ztunnel
│
▼
Destination Workload
Pembagian tersebut memungkinkan fungsi dasar keamanan dan transportasi tetap ditangani ztunnel, sedangkan fitur application layer diproses waypoint. :contentReference[oaicite:3]{index=3}
Bagaimana Cara Kerja Waypoint Proxy?
Cara kerja waypoint dimulai ketika workload pada Ambient Mesh mengirimkan request menuju service atau workload lain yang menggunakan waypoint.
- Client workload membuat request.
- Traffic diproses oleh ztunnel pada node.
- ztunnel mengetahui bahwa destination menggunakan waypoint.
- Traffic diteruskan melalui secure overlay menuju waypoint.
- Waypoint Proxy menerima traffic tersebut.
- Envoy melakukan pemrosesan Layer 7.
- Policy, routing, authorization, timeout, atau fitur L7 lainnya dapat diterapkan.
- Traffic diteruskan menuju destination.
- Destination menerima request.
Dalam Ambient Mesh, waypoint pada dasarnya dapat bertindak seperti gateway menuju resource tujuan. Istio memastikan traffic yang masuk ke resource yang menggunakan waypoint melewati waypoint tersebut untuk pemrosesan dan policy Layer 7. :contentReference[oaicite:4]{index=4}
Ilustrasi Cara Kerja Waypoint Proxy
+-------------------+
| Client Workload |
+-------------------+
│
▼
+-------------------+
| ztunnel |
| L4 |
+-------------------+
│
│ HBONE
▼
+-------------------+
| Waypoint Proxy |
| Envoy L7 |
+-------------------+
│
┌────┼─────┐
│ │ │
▼ ▼ ▼
Routing Auth Metrics
│ │ │
└────┼─────┘
▼
+-------------------+
| Destination |
| Service / Workload|
+-------------------+
Arsitektur Waypoint Proxy
Secara sederhana, arsitektur Waypoint Proxy dapat digambarkan sebagai lapisan tambahan di atas secure L4 overlay.
Kubernetes Cluster
│
┌───────────────┴───────────────┐
│ │
▼ ▼
Application A Application B
│ │
▼ ▼
ztunnel ztunnel
│ │
└───────────────┬───────────────┘
│
HBONE
│
▼
+-------------------+
| Waypoint Proxy |
| Envoy |
+-------------------+
│
┌────────────┼────────────┐
▼ ▼ ▼
Routing Security Observability
│ │ │
└────────────┼────────────┘
▼
Destination
Komponen Waypoint Proxy
| Komponen | Fungsi |
|---|---|
| Envoy | Proxy yang menangani pemrosesan Layer 7. |
| Gateway API | API Kubernetes yang digunakan untuk mendefinisikan waypoint. |
| GatewayClass | Menghubungkan resource Gateway dengan implementasi waypoint Istio. |
| Istiod | Control plane yang mengelola konfigurasi dan deployment waypoint. |
| ztunnel | Secure L4 proxy yang mengarahkan traffic menuju waypoint. |
| HBONE | Mekanisme tunneling yang digunakan untuk transport traffic ambient. |
| Service / Namespace | Resource yang dapat diarahkan menggunakan waypoint. |
Waypoint Proxy dan Gateway API
Salah satu hal penting dalam arsitektur modern Istio adalah integrasi antara waypoint dan Kubernetes Gateway API.
Waypoint Proxy didefinisikan menggunakan resource Kubernetes Gateway dengan GatewayClass bernama istio-waypoint.
Dengan demikian, Gateway API tidak hanya digunakan untuk gateway traffic dari luar cluster, tetapi juga menjadi mekanisme deklaratif untuk mengelola waypoint di dalam Ambient Mesh. :contentReference[oaicite:5]{index=5}
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: waypoint
spec:
gatewayClassName: istio-waypoint
listeners:
- name: mesh
port: 15008
protocol: HBONE
Resource tersebut kemudian dipantau oleh Istiod. Setelah Gateway diterapkan, Istiod akan membuat dan mengelola deployment serta service waypoint sesuai konfigurasi yang digunakan. :contentReference[oaicite:6]{index=6}
Waypoint Proxy dan Layer 7
Keunggulan utama waypoint adalah kemampuannya memproses traffic pada Layer 7.
Berbeda dengan ztunnel yang tidak memproses HTTP header workload, waypoint berbasis Envoy dapat memahami request pada application layer sehingga berbagai policy dan traffic management dapat diterapkan.
- HTTP routing.
- Load balancing.
- Retries.
- Timeout.
- Circuit breaking.
- Rate limiting.
- Fault injection.
- L7 authorization.
- HTTP metrics.
- Access logging.
- Distributed tracing.
Istio secara resmi menyebut traffic management, security berbasis L7, dan observability sebagai kebutuhan utama yang memerlukan waypoint. :contentReference[oaicite:7]{index=7}
Waypoint Proxy untuk Traffic Management
Waypoint dapat digunakan untuk mengatur bagaimana request HTTP diarahkan menuju service.
Misalnya sebuah aplikasi memiliki dua versi service:
Order Service
Version 1
│
├── 90% traffic
│
▼
Version 2
│
└── 10% traffic
Traffic management semacam ini dapat menjadi bagian dari strategi progressive delivery, testing, maupun migrasi aplikasi. Pada ambient mode modern, Istio merekomendasikan penggunaan resource Gateway API seperti HTTPRoute untuk konfigurasi routing L7. Dukungan VirtualService dengan ambient masih berstatus Alpha dan mencampurkannya dengan Gateway API tidak didukung. :contentReference[oaicite:8]{index=8}
Waypoint Proxy untuk Authorization
Authorization merupakan salah satu fungsi penting waypoint. Karena waypoint bekerja pada Layer 7, policy dapat menggunakan informasi request seperti HTTP method, path, atau header.
Client │ ▼ Waypoint │ ├── GET /products → Allow │ ├── POST /products → Allow │ └── DELETE /products → Deny │ ▼ Service
Policy Layer 7 memiliki kebutuhan attachment yang berbeda dari policy Layer 4. Dalam ambient mode, policy L7 perlu diarahkan ke waypoint menggunakan mekanisme yang sesuai, termasuk targetRefs untuk beberapa resource seperti AuthorizationPolicy. :contentReference[oaicite:9]{index=9}
Waypoint Proxy dan Observability
Observability menjadi salah satu manfaat utama waypoint. Karena Envoy dapat memproses traffic Layer 7, waypoint dapat menghasilkan informasi traffic HTTP yang lebih detail.
| Observability | Fungsi |
|---|---|
| HTTP Metrics | Mengukur request, response, error, dan traffic HTTP. |
| Access Log | Mencatat request yang melewati proxy. |
| Tracing | Membantu melihat perjalanan request antar-service. |
| Latency | Membantu mengetahui waktu pemrosesan request. |
Dokumentasi Istio menyebutkan bahwa waypoint dapat mengekspor rangkaian lengkap traffic metrics Istio. :contentReference[oaicite:10]{index=10}
Waypoint Proxy dan Distributed Tracing
Waypoint juga berkaitan dengan Distributed Tracing. Ketika request melewati beberapa service, telemetry Layer 7 dapat membantu tim memahami bagaimana request tersebut berpindah dari satu service ke service lainnya.
Client
│
▼
Gateway
│
▼
User Service
│
▼
Waypoint
│
▼
Order Service
│
▼
Waypoint
│
▼
Payment Service
│
▼
Distributed Trace
Dengan tracing, administrator dapat membantu menemukan service yang menyebabkan latency tinggi atau error pada request chain.
Waypoint Proxy dan Security
Waypoint melengkapi security yang telah disediakan oleh ztunnel. ztunnel menangani secure Layer 4 dan mTLS, sementara waypoint dapat menerapkan policy pada Layer 7.
Security Layer
L4
│
▼
ztunnel
│
├── mTLS
├── Authentication
└── L4 Authorization
│
▼
L7
│
▼
Waypoint Proxy
│
├── HTTP Authorization
├── Request Policy
└── Traffic Control
Model ini memungkinkan security diterapkan pada beberapa lapisan sekaligus. Kubernetes NetworkPolicy juga tetap dapat digunakan sebagai defense-in-depth apabila CNI cluster mendukungnya. :contentReference[oaicite:11]{index=11}
Scope Waypoint Proxy
Waypoint dapat digunakan pada beberapa tingkat resource. Istio menyediakan pilihan untuk mengarahkan traffic menuju waypoint berdasarkan namespace, service, atau Pod/workload.
| Scope | Kegunaan |
|---|---|
| Namespace | Cocok ketika banyak service dalam namespace membutuhkan L7. |
| Service | Cocok ketika hanya service tertentu yang membutuhkan waypoint. |
| Workload / Pod | Cocok untuk kebutuhan yang lebih spesifik. |
Untuk kebanyakan deployment, Istio merekomendasikan pendekatan namespace sebagai titik awal. Scope yang lebih granular dapat digunakan ketika hanya service atau workload tertentu yang membutuhkan pemrosesan Layer 7. :contentReference[oaicite:12]{index=12}
Label Penting Waypoint Proxy
Istio menyediakan beberapa label yang mengatur hubungan resource dengan ambient mode dan waypoint.
istio.io/dataplane-mode=ambient istio.io/use-waypoint=waypoint istio.io/waypoint-for=service
Label istio.io/dataplane-mode=ambient memasukkan resource ke ambient mesh. Sementara istio.io/use-waypoint mengarahkan traffic menuju waypoint tertentu.
Label istio.io/waypoint-for menentukan jenis traffic yang dapat diproses waypoint, seperti service, workload, all, atau none. Default-nya adalah service. :contentReference[oaicite:13]{index=13}
Manfaat Waypoint Proxy
- Menyediakan pemrosesan Layer 7.
- Mendukung HTTP traffic management.
- Mendukung L7 authorization.
- Menyediakan HTTP metrics.
- Mendukung access logging.
- Mendukung distributed tracing.
- Dapat digunakan tanpa sidecar pada Pod aplikasi.
- Dapat di-scale secara independen dari aplikasi.
- Dapat digunakan bersama oleh beberapa workload.
- Mendukung penerapan Ambient Mesh secara bertahap.
- Terintegrasi dengan Gateway API.
Kelebihan Waypoint Proxy
- Sidecar-less: tidak membutuhkan Envoy di setiap Pod aplikasi.
- Layer 7: dapat memproses HTTP dan fitur application layer.
- Independent scaling: waypoint dapat di-scale secara independen.
- Independent lifecycle: upgrade waypoint tidak harus mengikuti lifecycle aplikasi.
- Flexible scope: dapat diterapkan pada namespace, service, atau workload.
- Security: mendukung policy Layer 7.
- Observability: menyediakan HTTP metrics, logging, dan tracing.
- Gateway API: menggunakan resource Kubernetes yang deklaratif.
Kekurangan Waypoint Proxy
- Menambah komponen infrastructure baru.
- Membutuhkan pemahaman terhadap Ambient Mesh dan ztunnel.
- Traffic path menjadi lebih kompleks.
- Membutuhkan resource CPU dan memory tambahan.
- Policy L4 dan L7 harus dipahami secara berbeda.
- Debugging membutuhkan pemahaman mengenai Envoy.
- Tidak semua workload membutuhkan waypoint.
- Beberapa API atau konfigurasi lama memiliki status dukungan yang berbeda pada ambient mode.
Kapan Harus Menggunakan Waypoint Proxy?
Waypoint tidak harus dipasang pada semua workload. Jika kebutuhan Anda hanya berupa mTLS, secure L4 overlay, L4 authorization, dan telemetry L4, ztunnel dapat menangani kebutuhan tersebut.
Waypoint mulai diperlukan ketika aplikasi membutuhkan fitur Layer 7.
| Kebutuhan | ztunnel | Waypoint |
|---|---|---|
| mTLS | Ya | Tidak wajib |
| L4 Authorization | Ya | Tidak wajib |
| HTTP Routing | Tidak | Ya |
| L7 Authorization | Tidak | Ya |
| HTTP Metrics | Tidak lengkap | Ya |
| Access Logging L7 | Tidak | Ya |
| Tracing L7 | Tidak | Ya |
Dengan pendekatan tersebut, waypoint sebaiknya digunakan berdasarkan kebutuhan, bukan sekadar dipasang pada seluruh workload. :contentReference[oaicite:14]{index=14}
Implementasi Waypoint Proxy pada Kubernetes
Sebelum membuat waypoint, namespace yang digunakan harus sudah masuk ke Ambient Mesh.
Contohnya:
kubectl label namespace production istio.io/dataplane-mode=ambient
Kemudian pastikan label tersebut sudah aktif:
kubectl get ns production --show-labels
Membuat Waypoint Proxy
Waypoint dapat dibuat menggunakan istioctl.
istioctl waypoint apply -n production
Perintah tersebut membuat waypoint dengan nama default waypoint.
Istio kemudian akan mengelola resource waypoint melalui control plane. Waypoint sendiri didefinisikan menggunakan resource Gateway API dengan GatewayClass istio-waypoint. :contentReference[oaicite:15]{index=15}
Memeriksa Waypoint
kubectl get gateway waypoint -n production
Untuk melihat Pod waypoint:
kubectl get pods -n production
Pastikan Pod waypoint berada dalam kondisi Running sebelum melanjutkan konfigurasi traffic.
Menghubungkan Namespace dengan Waypoint
Waypoint yang sudah dibuat belum otomatis digunakan oleh workload. Namespace atau resource tujuan perlu di-enroll menggunakan label istio.io/use-waypoint.
kubectl label namespace production istio.io/use-waypoint=waypoint
Setelah namespace menggunakan waypoint, request dari workload ambient menuju service pada namespace tersebut dapat diarahkan melalui waypoint untuk pemrosesan Layer 7 dan policy enforcement. :contentReference[oaicite:16]{index=16}
Deploy Waypoint Sekaligus Enroll Namespace
Istio juga menyediakan opsi agar namespace langsung di-enroll ketika waypoint dibuat.
istioctl waypoint apply \ -n production \ --enroll-namespace
Cara ini dapat mempermudah proses deployment karena namespace akan diberi label istio.io/use-waypoint secara otomatis. :contentReference[oaicite:17]{index=17}
Membuat Waypoint untuk Service Tertentu
Jika hanya satu service yang membutuhkan pemrosesan Layer 7, waypoint dapat dibuat secara lebih granular.
istioctl waypoint apply \ -n production \ --name order-waypoint
Kemudian hubungkan service dengan waypoint tersebut:
kubectl label service order \ -n production \ istio.io/use-waypoint=order-waypoint
Dengan pendekatan tersebut, tidak semua service dalam namespace harus menggunakan waypoint yang sama. :contentReference[oaicite:18]{index=18}
Membuat Waypoint untuk Workload
Waypoint juga dapat ditujukan untuk workload tertentu.
istioctl waypoint apply \ -n production \ --name order-pod-waypoint \ --for workload
Kemudian resource workload dapat diarahkan menggunakan label:
kubectl label pod order-pod \ -n production \ istio.io/use-waypoint=order-pod-waypoint
Jika waypoint ditujukan ke Pod atau workload, waypoint tersebut harus memiliki konfigurasi waypoint-for yang sesuai, seperti workload atau all. :contentReference[oaicite:19]{index=19}
Waypoint Proxy dan HTTPRoute
Setelah waypoint aktif, Gateway API dapat digunakan untuk mengatur traffic Layer 7. Salah satu resource penting adalah HTTPRoute.
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: order-route
namespace: production
spec:
parentRefs:
- name: waypoint
rules:
- matches:
- path:
type: PathPrefix
value: /orders
backendRefs:
- name: order
port: 8080
Dalam implementasi production, struktur route harus disesuaikan dengan service, Gateway API version, dan konfigurasi Istio yang digunakan.
Untuk ambient mode modern, Istio merekomendasikan penggunaan Gateway API untuk konfigurasi L7. Dukungan VirtualService dengan ambient masih berstatus Alpha. :contentReference[oaicite:20]{index=20}
Waypoint Proxy untuk Rate Limiting
Waypoint dapat menjadi tempat pemrosesan policy Layer 7 yang berkaitan dengan traffic control. Salah satu contohnya adalah rate limiting.
Client
│
│ 100 request/sec
▼
Waypoint
│
├── Request 1 ──► Allow
├── Request 2 ──► Allow
├── Request 3 ──► Allow
│
└── Excess Request
│
▼
Limit
Konsep tersebut dapat membantu melindungi service dari traffic berlebihan, terutama pada service yang memiliki resource terbatas.
Waypoint Proxy untuk Timeout dan Retry
Dalam sistem microservices, request dapat gagal akibat network issue, temporary overload, atau service dependency. Waypoint dapat membantu menerapkan traffic behavior seperti timeout dan retry pada Layer 7.
Client
│
▼
Waypoint
│
├── Request
│
├── Timeout
│
└── Retry
│
▼
Backend
Namun, retry harus digunakan dengan hati-hati. Retry berlebihan dapat meningkatkan beban backend dan justru memperburuk kondisi ketika service sedang mengalami overload.
Waypoint Proxy untuk Circuit Breaking
Circuit breaking dapat digunakan untuk mencegah service terus-menerus mengirim request menuju dependency yang sedang mengalami masalah.
Service A
│
▼
Waypoint
│
├── Healthy Backend
│ │
│ ▼
│ Allow
│
└── Failing Backend
│
▼
Circuit Open
Dengan demikian, traffic management pada waypoint dapat membantu meningkatkan resilience aplikasi microservices.
Waypoint Proxy dan Ingress Gateway
Waypoint dan ingress gateway memiliki peran yang berbeda. Ingress gateway umumnya menangani traffic yang masuk dari luar mesh, sedangkan waypoint digunakan untuk traffic menuju resource di dalam ambient mesh.
Internet │ ▼ Ingress Gateway │ ▼ Kubernetes Service │ ▼ Waypoint │ ▼ Application
Istio juga menyediakan opsi untuk mengarahkan traffic dari ingress gateway menuju destination waypoint. Namun, konfigurasi ini dapat menghasilkan pola dua tingkat gateway sehingga policy, latency, dan metrics pada kedua hop perlu diperhatikan. :contentReference[oaicite:21]{index=21}
Waypoint Proxy dan Namespace
Namespace merupakan salah satu scope paling umum untuk waypoint. Dengan satu waypoint pada namespace, beberapa service dapat menggunakan kemampuan Layer 7 tanpa membutuhkan Envoy sidecar pada masing-masing Pod.
Namespace: production
├── User Service
│
├── Product Service
│
├── Order Service
│
└── Payment Service
│
▼
Waypoint Proxy
│
Layer 7 Policy
Pendekatan ini cocok ketika sejumlah workload memiliki security boundary dan kebutuhan L7 yang serupa. :contentReference[oaicite:22]{index=22}
Waypoint Proxy dan Multi-Service Architecture
Dalam aplikasi microservices, satu namespace dapat berisi banyak service yang membutuhkan kemampuan traffic management dan security.
Waypoint memungkinkan fungsi tersebut dipusatkan pada proxy Layer 7 yang dikelola sebagai bagian dari infrastructure, sementara aplikasi tetap berjalan tanpa sidecar proxy.
Production Namespace
┌──────────────┼──────────────┐
▼ ▼ ▼
User Service Order Service Payment Service
│ │ │
└──────────────┼──────────────┘
▼
Waypoint Proxy
│
┌─────────┼─────────┐
▼ ▼ ▼
Routing Security Telemetry
Waypoint Proxy dan Zero Trust
Waypoint tidak menggantikan security Layer 4 yang diberikan ztunnel. Sebaliknya, waypoint memperluas security tersebut ke Layer 7.
Zero Trust
│
┌─────────┴─────────┐
▼ ▼
ztunnel Waypoint
│ │
▼ ▼
L4 L7
│ │
mTLS HTTP Policy
Identity Authorization
L4 AuthZ Request Rules
│ │
└─────────┬─────────┘
▼
Application
Dengan model tersebut, organisasi dapat menerapkan prinsip security pada beberapa lapisan komunikasi.
Best Practice Menggunakan Waypoint Proxy
- Gunakan waypoint hanya ketika workload membutuhkan fitur Layer 7.
- Mulai dengan namespace sebagai scope jika kebutuhan workload seragam.
- Gunakan service-level waypoint jika hanya service tertentu yang membutuhkan L7.
- Pahami perbedaan L4 policy dan L7 policy.
- Gunakan mTLS melalui ambient secure overlay.
- Monitor CPU dan memory waypoint.
- Gunakan metrics, logs, dan tracing untuk observability.
- Gunakan Gateway API untuk konfigurasi L7 yang sesuai dengan dukungan Istio.
- Hindari mencampurkan konfigurasi VirtualService dan HTTPRoute pada workload ambient yang sama.
- Uji policy di staging sebelum production.
- Perhatikan jalur ingress apabila traffic perlu melewati destination waypoint.
- Pastikan waypoint memiliki konfigurasi waypoint-for yang sesuai dengan resource tujuan.
Istio secara khusus menyarankan penggunaan HTTPRoute untuk konfigurasi L7 modern pada ambient mode dan menyatakan bahwa pencampuran VirtualService dengan Gateway API untuk workload yang sama tidak didukung. :contentReference[oaicite:23]{index=23}
Monitoring Waypoint Proxy
Setelah waypoint berjalan, monitoring perlu dilakukan untuk memastikan proxy menerima konfigurasi dan traffic sesuai harapan.
Salah satu perintah yang dapat digunakan adalah:
istioctl proxy-status
Perintah tersebut dapat membantu melihat status sinkronisasi proxy dengan Istiod.
Untuk melihat log waypoint:
kubectl logs deploy/waypoint -n production
Jika membutuhkan debugging lebih lanjut, konfigurasi proxy dapat diperiksa menggunakan perintah Istio seperti:
istioctl proxy-config all deploy/waypoint -n production
Dokumentasi troubleshooting Istio juga menggunakan istioctl proxy-status, logs, dan istioctl proxy-config untuk memeriksa masalah waypoint. :contentReference[oaicite:24]{index=24}
Troubleshooting Waypoint Proxy
Waypoint tidak menerima traffic
Periksa apakah namespace, service, atau Pod sudah memiliki label istio.io/use-waypoint.
kubectl get namespace production --show-labels
Kemudian pastikan waypoint yang dituju memang tersedia.
Service menggunakan waypoint tetapi policy tidak berjalan
Periksa apakah waypoint memiliki label istio.io/waypoint-for yang sesuai. Waypoint default memproses traffic yang ditujukan ke service. Untuk traffic workload, konfigurasi harus menggunakan tipe yang sesuai. :contentReference[oaicite:25]{index=25}
Waypoint Pod tidak Running
Periksa Pod:
kubectl get pods -n production
Kemudian periksa event dan logs apabila Pod mengalami crash atau gagal scheduling.
Policy L7 tidak berfungsi
Pastikan workload benar-benar melewati waypoint. Periksa label penggunaan waypoint, konfigurasi Gateway API, dan attachment policy.
Policy L7 pada ambient mode memiliki mekanisme targeting yang berbeda dari policy L4, sehingga konfigurasi perlu disesuaikan dengan resource yang didukung. :contentReference[oaicite:26]{index=26}
Waypoint Proxy dan Migration dari Sidecar
Waypoint juga menjadi bagian penting ketika organisasi ingin berpindah dari Service Mesh berbasis sidecar menuju Ambient Mesh.
Migrasi tidak selalu berarti semua fitur harus dipindahkan sekaligus. Workload dapat menggunakan ztunnel untuk kebutuhan L4 terlebih dahulu, kemudian waypoint ditambahkan pada workload yang membutuhkan fitur L7.
Sidecar Mesh
│
▼
Migration
│
▼
Ambient L4
│
ztunnel
│
▼
L7 Required?
│
Yes
│
▼
Waypoint Proxy
Pendekatan bertahap tersebut membantu mengurangi risiko migrasi karena workload dapat dipindahkan sesuai kebutuhan dan kemampuan policy yang digunakan. :contentReference[oaicite:27]{index=27}
Hal yang Perlu Diperhatikan Saat Migrasi
- Periksa AuthorizationPolicy yang menggunakan rule L7.
- Periksa RequestAuthentication.
- Periksa VirtualService dan DestinationRule.
- Identifikasi penggunaan EnvoyFilter.
- Periksa WasmPlugin.
- Tentukan workload yang membutuhkan waypoint.
- Pastikan policy L7 diarahkan ke waypoint.
- Uji traffic sebelum mengubah production.
Khusus EnvoyFilter, dokumentasi Istio saat ini menyatakan bahwa EnvoyFilter tidak didukung pada waypoint. Ini penting diperiksa sebelum melakukan migrasi dari sidecar mode. :contentReference[oaicite:28]{index=28}
Contoh Arsitektur Microservices dengan Waypoint
Internet
│
▼
Ingress Gateway
│
▼
Kubernetes Cluster
│
┌──────────┴──────────┐
│ │
▼ ▼
User Service Product Service
│ │
▼ ▼
ztunnel ztunnel
│ │
└──────────┬──────────┘
│
HBONE
│
▼
Waypoint Proxy
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Routing Authorization Telemetry
│ │ │
└──────────────┼──────────────┘
▼
Order / Payment
Services
Contoh Kasus Penggunaan
Bayangkan sebuah platform e-commerce memiliki beberapa service:
- User Service
- Product Service
- Cart Service
- Order Service
- Payment Service
- Inventory Service
Semua workload membutuhkan mTLS. Namun, hanya Order Service dan Payment Service yang membutuhkan HTTP authorization, routing, retry, timeout, serta tracing yang lebih lengkap.
Dengan Ambient Mesh, seluruh workload dapat menggunakan ztunnel untuk secure L4 communication. Kemudian Order Service dan Payment Service dapat diarahkan melalui waypoint untuk kebutuhan Layer 7.
All Services
│
▼
ztunnel
│
├── mTLS
├── Identity
└── L4 Security
│
▼
Order / Payment
│
▼
Waypoint
│
├── HTTP Routing
├── Authorization
├── Retry
├── Timeout
└── Tracing
Apakah Semua Workload Membutuhkan Waypoint?
Tidak.
Waypoint bersifat opsional. Jika kebutuhan workload hanya mTLS, secure L4 communication, L4 authorization, dan L4 telemetry, ztunnel sudah dapat menangani kebutuhan tersebut.
Waypoint dibutuhkan ketika workload memerlukan fitur Layer 7 seperti HTTP routing, L7 authorization, HTTP metrics, access logs, atau tracing. :contentReference[oaicite:29]{index=29}
Perbedaan ztunnel dan Waypoint Proxy
| Aspek | ztunnel | Waypoint Proxy |
|---|---|---|
| Jenis Proxy | Proxy khusus Ambient Mesh. | Envoy Proxy. |
| Layer | L3/L4. | L7. |
| mTLS | Ya. | Bagian dari jalur ambient. |
| HTTP Routing | Tidak. | Ya. |
| HTTP Authorization | Tidak. | Ya. |
| HTTP Metrics | Terbatas pada L4. | Ya. |
| Tracing L7 | Tidak menjadi fokus. | Ya. |
| Deployment | Per-node. | Infrastructure component sesuai scope. |
Rangkaian Ambient Mesh
Ambient Mesh
│
┌───────────┴───────────┐
│ │
▼ ▼
ztunnel Waypoint
│ │
▼ ▼
L4 L7
│ │
mTLS Routing
AuthN AuthZ
AuthZ Metrics
HBONE Logging
Telemetry Tracing
│ │
└───────────┬───────────┘
▼
Application
Baca Juga
Untuk artikel Ambient Mesh, Gateway API, Linkerd, Telemetry Istio, mTLS, AuthorizationPolicy, RequestAuthentication, dan artikel terkait lainnya, tambahkan URL artikel Blogger yang sudah aktif setelah slug masing-masing diverifikasi.
Artikel Selanjutnya
Setelah memahami Waypoint Proxy, pembahasan dapat dilanjutkan menuju topik yang lebih spesifik mengenai Istio Traffic Management. Topik tersebut dapat membahas bagaimana HTTPRoute, traffic routing, load balancing, retries, timeout, circuit breaking, dan policy bekerja pada lingkungan Ambient Mesh.
Ambient Mesh
│
▼
Waypoint Proxy
│
▼
Layer 7 Processing
│
▼
Istio Traffic Management
│
├── HTTPRoute
├── Routing
├── Load Balancing
├── Retry
├── Timeout
└── Circuit Breaking
Pertanyaan yang Sering Diajukan (FAQ)
Apa itu Waypoint Proxy?
Waypoint Proxy adalah proxy berbasis Envoy yang digunakan pada Istio Ambient Mesh untuk memberikan kemampuan pemrosesan Layer 7 tanpa harus menjalankan sidecar proxy pada setiap Pod aplikasi.
Apakah Waypoint Proxy wajib digunakan pada Ambient Mesh?
Tidak. Waypoint bersifat opsional dan diperlukan ketika workload membutuhkan fitur Layer 7. Untuk kebutuhan seperti mTLS dan L4 authorization, ztunnel dapat digunakan tanpa waypoint.
Apa perbedaan Waypoint Proxy dan ztunnel?
ztunnel berfokus pada Layer 3 dan Layer 4, sedangkan Waypoint Proxy berbasis Envoy digunakan untuk pemrosesan Layer 7 seperti HTTP routing, L7 authorization, metrics, logging, dan tracing.
Apakah Waypoint Proxy menggunakan Envoy?
Ya. Waypoint Proxy merupakan deployment Envoy yang digunakan untuk memberikan kemampuan Layer 7 pada Ambient Mesh. :contentReference[oaicite:30]{index=30}
Apakah Waypoint Proxy berjalan di dalam Pod aplikasi?
Tidak. Waypoint Proxy berjalan sebagai komponen infrastructure di luar Pod aplikasi dan dapat di-install, di-upgrade, serta di-scale secara independen dari aplikasi. :contentReference[oaicite:31]{index=31}
Apakah Waypoint Proxy menggantikan ztunnel?
Tidak. Waypoint dan ztunnel memiliki fungsi berbeda. ztunnel menangani secure Layer 4 overlay, sedangkan waypoint menambahkan kemampuan Layer 7.
Apakah Waypoint Proxy membutuhkan Gateway API?
Istio menggunakan resource Kubernetes Gateway API untuk mendefinisikan waypoint proxy. Gateway tersebut menggunakan GatewayClass istio-waypoint. :contentReference[oaicite:32]{index=32}
Apakah Waypoint Proxy dapat digunakan pada namespace?
Ya. Waypoint dapat digunakan pada namespace dan juga dapat diarahkan secara lebih granular ke service atau workload tertentu. :contentReference[oaicite:33]{index=33}
Apakah Waypoint Proxy mendukung HTTP routing?
Ya. HTTP routing merupakan salah satu kemampuan Layer 7 yang dapat diberikan oleh waypoint. Untuk ambient mode modern, Istio merekomendasikan penggunaan Gateway API dan HTTPRoute untuk konfigurasi routing L7. :contentReference[oaicite:34]{index=34}
Apakah Waypoint Proxy mendukung distributed tracing?
Ya. Waypoint dapat menyediakan observability Layer 7 termasuk metrics HTTP, access logging, dan tracing. :contentReference[oaicite:35]{index=35}
Bagaimana cara membuat Waypoint Proxy?
Waypoint dapat dibuat menggunakan istioctl, misalnya dengan perintah istioctl waypoint apply -n production, kemudian resource atau namespace dapat diarahkan untuk menggunakannya melalui label istio.io/use-waypoint.
Apakah Waypoint Proxy cocok untuk microservices?
Ya. Waypoint sangat relevan untuk arsitektur microservices yang membutuhkan traffic management, security Layer 7, dan observability tanpa harus memasang sidecar Envoy pada setiap Pod.
Apakah Waypoint Proxy bisa digunakan bersama sidecar?
Istio mendukung coexistence antara workload sidecar dan ambient dalam mesh. Namun, migrasi dan konfigurasi waypoint perlu direncanakan dengan hati-hati agar traffic tidak diproses secara tidak semestinya atau dua kali. :contentReference[oaicite:36]{index=36}
Kesimpulan
Waypoint Proxy merupakan komponen penting dalam Istio Ambient Mesh ketika workload membutuhkan kemampuan Layer 7. Berbeda dengan sidecar proxy tradisional yang berjalan di dalam Pod aplikasi, waypoint berjalan di luar Pod dan dikelola sebagai bagian dari infrastructure.
Waypoint menggunakan Envoy untuk menangani berbagai kebutuhan application layer seperti HTTP routing, load balancing, retries, timeout, circuit breaking, rate limiting, authorization berbasis HTTP, metrics, access logging, dan distributed tracing.
Sementara itu, ztunnel tetap menjadi fondasi secure Layer 4 pada Ambient Mesh. ztunnel menangani mTLS, authentication, L4 authorization, telemetry, dan secure overlay. Waypoint kemudian memberikan kemampuan Layer 7 ketika workload memang membutuhkannya.
Arsitektur tersebut membuat Ambient Mesh menjadi lebih fleksibel karena tidak semua workload harus mendapatkan seluruh kemampuan Service Mesh. Workload dapat menggunakan ztunnel saja untuk kebutuhan L4, sedangkan workload tertentu dapat ditambahkan waypoint untuk kebutuhan L7.
Waypoint juga memiliki hubungan erat dengan Kubernetes Gateway API. Istio menggunakan Gateway API untuk mendefinisikan waypoint melalui GatewayClass istio-waypoint. Dengan pendekatan deklaratif tersebut, administrator dapat mengatur scope waypoint pada namespace, service, maupun workload sesuai kebutuhan. :contentReference[oaicite:37]{index=37}
Dalam implementasi production, penggunaan waypoint tetap membutuhkan perencanaan. Administrator harus memahami traffic flow, scope waypoint, L4 dan L7 policy, Gateway API, observability, resource consumption, serta proses troubleshooting.
Dengan memahami Waypoint Proxy, kita sudah menyelesaikan satu bagian penting dari rangkaian Ambient Mesh → ztunnel → Waypoint Proxy → Layer 7 Traffic Management. Pembahasan berikutnya dapat diarahkan pada bagaimana traffic management berbasis Gateway API dan HTTPRoute bekerja di atas waypoint.