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 | Dewa234

Waypoint Proxy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya

Ilustrasi Waypoint Proxy pada Istio Ambient Mesh dan Kubernetes

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.

  1. Client workload membuat request.
  2. Traffic diproses oleh ztunnel pada node.
  3. ztunnel mengetahui bahwa destination menggunakan waypoint.
  4. Traffic diteruskan melalui secure overlay menuju waypoint.
  5. Waypoint Proxy menerima traffic tersebut.
  6. Envoy melakukan pemrosesan Layer 7.
  7. Policy, routing, authorization, timeout, atau fitur L7 lainnya dapat diterapkan.
  8. Traffic diteruskan menuju destination.
  9. 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.

Postingan populer dari blog ini

Istio Egress Gateway: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio VirtualService: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio Ingress Gateway: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234