Istio Ingress Gateway: 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

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

Ilustrasi Istio Ingress Gateway untuk mengatur traffic masuk ke Service Mesh

Dalam arsitektur microservices, tidak semua traffic berasal dari service lain yang berada di dalam cluster. Banyak request berasal dari luar sistem, seperti browser pengguna, aplikasi mobile, partner API, sistem eksternal, maupun client dari jaringan perusahaan.

Traffic yang masuk dari luar menuju service yang berada di dalam Service Mesh disebut sebagai ingress traffic. Traffic tersebut membutuhkan titik masuk yang dapat mengatur port, protocol, hostname, TLS, routing, serta berbagai kebijakan keamanan sebelum request diteruskan menuju service internal.

Istio menyediakan Ingress Gateway sebagai salah satu komponen yang digunakan untuk menangani traffic masuk ke service mesh. Ingress Gateway berjalan menggunakan Envoy Proxy di edge mesh dan dapat dikonfigurasi untuk menerima koneksi HTTP, HTTPS, TLS, TCP, maupun protocol lain yang didukung.

Dengan Ingress Gateway, organisasi tidak perlu mengekspos setiap microservice secara langsung ke internet. Sebaliknya, traffic dapat masuk melalui gateway terpusat kemudian diteruskan menuju service internal berdasarkan aturan routing yang telah ditentukan.

Istio Gateway sendiri mendefinisikan karakteristik koneksi seperti port, protocol, host, dan konfigurasi TLS. Sedangkan aturan routing aplikasi dapat ditentukan melalui VirtualService. Pemisahan ini memberikan fleksibilitas dalam mengelola traffic masuk. :contentReference[oaicite:1]{index=1}


Apa Itu Istio Ingress Gateway?

Istio Ingress Gateway adalah gateway berbasis Envoy yang berfungsi sebagai titik masuk traffic dari luar menuju service yang berada di dalam Istio Service Mesh.

Ingress Gateway berada di bagian edge dari mesh sehingga request dari external client dapat diproses sebelum diteruskan menuju internal service.

External Client
      |
      v
+-----------------------+
| Istio Ingress Gateway |
|      Envoy Proxy      |
+-----------+-----------+
            |
            v
     Istio Service Mesh
            |
            v
     Internal Service

Dengan arsitektur tersebut, Ingress Gateway dapat menjadi pintu masuk utama bagi aplikasi Dewa234 yang ingin diekspos ke pengguna atau sistem eksternal.

Istio juga memungkinkan Gateway digunakan bersama fitur traffic management sehingga traffic yang masuk dapat memperoleh kemampuan routing, monitoring, dan kontrol lain yang tersedia dalam service mesh. :contentReference[oaicite:2]{index=2}


Mengapa Istio Ingress Gateway Dibutuhkan?

Tanpa gateway, sebuah organisasi mungkin perlu mengekspos banyak service secara langsung.

Internet
   |
   +----> Service A
   |
   +----> Service B
   |
   +----> Service C
   |
   +----> Service D

Model tersebut dapat meningkatkan kompleksitas pengelolaan endpoint dan keamanan.

Dengan Ingress Gateway, traffic dapat masuk melalui satu atau beberapa entry point.

                 Internet
                    |
                    v
          +-------------------+
          | Ingress Gateway   |
          +---------+---------+
                    |
        +-----------+-----------+
        |           |           |
        v           v           v
     Service A   Service B   Service C

Gateway dapat digunakan sebagai lapisan pertama sebelum request diteruskan ke application service.


Konsep Ingress Traffic

Ingress traffic adalah traffic yang bergerak dari luar service mesh menuju service di dalam mesh.

Contohnya adalah:

  • Browser mengakses website.
  • Aplikasi mobile memanggil REST API.
  • Partner melakukan request ke API perusahaan.
  • External service memanggil webhook.
  • Client mengakses aplikasi melalui HTTPS.
  • Traffic dari load balancer menuju Kubernetes.
Internet
   |
   | Incoming Request
   v
Ingress Gateway
   |
   v
VirtualService
   |
   v
Internal Service

Cara Kerja Istio Ingress Gateway

Ketika client melakukan request menuju aplikasi, request pertama kali diterima oleh service yang mengekspos Ingress Gateway.

  1. Client membuat request.
  2. Traffic mencapai external load balancer atau endpoint gateway.
  3. Request diteruskan menuju Ingress Gateway.
  4. Envoy Proxy menerima koneksi.
  5. Gateway mencocokkan port, protocol, dan hostname.
  6. VirtualService menentukan aturan routing.
  7. Request diteruskan menuju internal service.
  8. Service memproses request.
  9. Response dikembalikan melalui jalur gateway.
Client
  |
  v
Load Balancer
  |
  v
Ingress Gateway
  |
  v
VirtualService
  |
  v
Service
  |
  v
Pod

Dengan demikian, Ingress Gateway menjadi bagian penting dari data plane yang menangani traffic pada edge mesh.


Arsitektur Istio Ingress Gateway

+-------------------------------------------------------+
|                    Internet                           |
+--------------------------+----------------------------+
                           |
                           v
                +----------------------+
                | External LoadBalancer|
                +----------+-----------+
                           |
                           v
                +----------------------+
                | Istio IngressGateway |
                |      Envoy Proxy     |
                +----------+-----------+
                           |
                           v
                +----------------------+
                | VirtualService      |
                +----------+-----------+
                           |
            +--------------+--------------+
            |              |              |
            v              v              v
       Service A       Service B       Service C
            |              |              |
            v              v              v
          Pods           Pods           Pods

Pada arsitektur tersebut, external client tidak langsung berkomunikasi dengan Pod. Traffic melewati Ingress Gateway terlebih dahulu.

Gateway menentukan bagaimana koneksi diterima, sedangkan VirtualService menentukan bagaimana request diarahkan menuju destination.


Komponen Istio Ingress Gateway

Komponen Fungsi
Envoy Proxy Data plane yang menerima dan meneruskan traffic.
Gateway Mendefinisikan port, protocol, hostname, dan TLS.
VirtualService Mengatur routing traffic menuju service.
Kubernetes Service Mengekspos gateway ke jaringan cluster atau external load balancer.
Deployment Menjalankan instance gateway.
Istio Control Plane Mendistribusikan konfigurasi ke Envoy Proxy.

Fungsi Istio Ingress Gateway

  • Menyediakan entry point menuju service mesh.
  • Menerima traffic dari external client.
  • Mengatur port yang dapat diakses.
  • Mengatur protocol traffic.
  • Mengelola hostname.
  • Mendukung HTTP dan HTTPS.
  • Mendukung TLS termination.
  • Mendukung TLS passthrough.
  • Menghubungkan external client dengan internal service.
  • Mendukung routing berdasarkan hostname.
  • Mendukung routing berdasarkan URI.
  • Mendukung monitoring dan observability.
  • Mendukung integrasi dengan policy keamanan Istio.

Istio Gateway dan VirtualService

Salah satu konsep penting dalam Istio Ingress Gateway adalah pemisahan antara Gateway dan VirtualService.

Gateway menentukan bagaimana gateway menerima traffic.

Gateway
 |
 +-- Port
 +-- Protocol
 +-- Host
 +-- TLS

Sedangkan VirtualService menentukan bagaimana traffic tersebut diarahkan.

VirtualService
 |
 +-- Host
 +-- URI
 +-- Route
 +-- Destination
 +-- Gateway

Istio menjelaskan bahwa resource Gateway mengatur properti koneksi layer 4–6 seperti port dan TLS, sementara routing aplikasi layer 7 dilakukan melalui VirtualService. :contentReference[oaicite:3]{index=3}


Contoh Gateway HTTP

Contoh sederhana Gateway untuk menerima HTTP pada port 80:

apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
  name: httpbin-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "api.example.com"

Selector pada contoh tersebut harus sesuai dengan label Pod gateway yang digunakan.

Pada deployment gateway standar Istio, label seperti istio=ingressgateway digunakan sebagai selector. :contentReference[oaicite:4]{index=4}


VirtualService untuk Ingress Gateway

Setelah Gateway dibuat, routing dapat didefinisikan menggunakan VirtualService.

apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
  name: api-route
spec:
  hosts:
  - "api.example.com"
  gateways:
  - httpbin-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: api-service
        port:
          number: 8080

Dengan konfigurasi tersebut, request menuju api.example.com yang masuk melalui gateway akan diarahkan menuju service api-service pada port 8080.


Routing Berdasarkan URI

Ingress Gateway dapat dikombinasikan dengan VirtualService untuk melakukan routing berdasarkan path atau URI.

api.example.com/users
          |
          v
      User Service

api.example.com/orders
          |
          v
      Order Service

api.example.com/products
          |
          v
      Product Service

Contoh konfigurasi:

http:
- match:
  - uri:
      prefix: /users
  route:
  - destination:
      host: user-service
      port:
        number: 8080

- match:
  - uri:
      prefix: /orders
  route:
  - destination:
      host: order-service
      port:
        number: 8080

Pendekatan tersebut memungkinkan satu hostname digunakan untuk beberapa microservice.


Routing Berdasarkan Hostname

Ingress Gateway juga dapat digunakan untuk beberapa domain.

api.example.com
      |
      v
API Service

shop.example.com
      |
      v
Shop Service

admin.example.com
      |
      v
Admin Service

Gateway dapat mendefinisikan beberapa host sesuai kebutuhan.

hosts:
- "api.example.com"
- "shop.example.com"
- "admin.example.com"

Untuk lingkungan production, penggunaan hostname yang spesifik umumnya lebih aman dan mudah dikelola dibanding wildcard yang terlalu luas.


HTTPS pada Istio Ingress Gateway

Untuk aplikasi production, traffic ingress umumnya menggunakan HTTPS agar komunikasi antara client dan gateway terlindungi oleh TLS.

Istio Ingress Gateway mendukung konfigurasi secure gateway menggunakan TLS.

Internet
   |
   | HTTPS
   v
Ingress Gateway
   |
   | HTTP / HTTPS
   v
Internal Service

Gateway dapat melakukan TLS termination sehingga koneksi TLS dari client berakhir di gateway sebelum request diteruskan ke service internal.

Istio menyediakan konfigurasi secure gateway untuk TLS maupun mutual TLS. :contentReference[oaicite:5]{index=5}


Contoh HTTPS Gateway

apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
  name: secure-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - "api.example.com"
    tls:
      mode: SIMPLE
      credentialName: api-example-cert

Dalam konfigurasi tersebut, gateway menerima HTTPS pada port 443.

Credential TLS digunakan untuk sertifikat yang diperlukan oleh gateway.


TLS Termination pada Istio Ingress Gateway

TLS termination berarti koneksi HTTPS dari client dihentikan pada gateway.

Client
  |
  | HTTPS
  v
Ingress Gateway
  |
  | HTTP
  v
Application

Model ini dapat menyederhanakan pengelolaan sertifikat pada backend service karena TLS dari external client ditangani di gateway.

Namun, organisasi tetap perlu mempertimbangkan kebutuhan enkripsi internal. Untuk sistem dengan persyaratan keamanan tinggi, traffic antara gateway dan backend dapat tetap menggunakan TLS atau mTLS.


TLS Passthrough

Dalam beberapa skenario, gateway tidak melakukan TLS termination. Traffic TLS diteruskan menuju destination sehingga backend tetap bertanggung jawab terhadap TLS.

Client
  |
  | TLS
  v
Ingress Gateway
  |
  | TLS Passthrough
  v
Backend Service

Istio mendukung konfigurasi SNI passthrough untuk ingress gateway ketika TLS perlu diteruskan tanpa termination pada gateway. :contentReference[oaicite:6]{index=6}


Istio Ingress Gateway dan SNI

SNI atau Server Name Indication memungkinkan gateway mengetahui hostname tujuan dari koneksi TLS.

Client
  |
  | SNI: api.example.com
  v
Ingress Gateway
  |
  +---- api.example.com
  |
  +---- shop.example.com
  |
  +---- admin.example.com

Dengan SNI routing, satu gateway dapat menangani beberapa hostname HTTPS.


Implementasi Istio Ingress Gateway di Kubernetes

Sebelum membuat konfigurasi, pastikan Istio telah terpasang pada cluster Kubernetes.

Untuk instalasi yang menggunakan gateway bawaan, Istio dapat menyediakan deployment ingress gateway. Dokumentasi Istio juga merekomendasikan pemisahan pengelolaan gateway dari control plane untuk deployment production agar gateway dapat dikelola dan di-upgrade secara lebih independen. :contentReference[oaicite:7]{index=7}

1. Periksa Ingress Gateway

kubectl get pods -n istio-system

Cari Pod yang berkaitan dengan ingress gateway.

2. Periksa Service Gateway

kubectl get svc -n istio-system

Service gateway biasanya menyediakan port yang digunakan untuk menerima external traffic.

3. Buat Gateway

apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
  name: application-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "app.example.com"

4. Buat VirtualService

apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
  name: application-route
spec:
  hosts:
  - "app.example.com"
  gateways:
  - application-gateway
  http:
  - route:
    - destination:
        host: application-service
        port:
          number: 8080

5. Terapkan Konfigurasi

kubectl apply -f gateway.yaml

kubectl apply -f virtualservice.yaml

6. Periksa Konfigurasi

kubectl get gateway

kubectl get virtualservice

Menentukan IP Ingress Gateway

Untuk mengakses gateway dari luar cluster, administrator perlu mengetahui endpoint external gateway.

kubectl get svc -n istio-system istio-ingressgateway

Pada cloud provider yang mendukung LoadBalancer, service dapat memperoleh external IP atau hostname.

Dokumentasi Istio menyediakan langkah khusus untuk menentukan IP dan port ingress gateway berdasarkan jenis environment Kubernetes yang digunakan. :contentReference[oaicite:8]{index=8}


Ingress Gateway dengan LoadBalancer

Internet
   |
   v
Cloud Load Balancer
   |
   v
Istio Ingress Gateway
   |
   v
Kubernetes Service
   |
   v
Application

LoadBalancer dapat menjadi entry point dari internet dan meneruskan traffic menuju Ingress Gateway.

Pada cloud environment, external IP biasanya diberikan oleh cloud load balancer.


Ingress Gateway dengan NodePort

Pada environment yang tidak menyediakan LoadBalancer, NodePort dapat digunakan sebagai salah satu cara untuk mengekspos gateway.

Internet
   |
   v
Node IP : NodePort
   |
   v
Ingress Gateway
   |
   v
Application

Port NodePort dapat diperiksa menggunakan:

kubectl get svc -n istio-system istio-ingressgateway

Ingress Gateway untuk API Gateway

Istio Ingress Gateway dapat digunakan sebagai entry point untuk berbagai API.

                 Internet
                    |
                    v
            Istio Ingress Gateway
                    |
          +---------+---------+
          |         |         |
          v         v         v
        User      Order     Payment
        API        API        API

Routing dapat dibuat berdasarkan hostname atau path.

Dengan demikian, satu gateway dapat menjadi pintu masuk bagi banyak API tanpa harus mengekspos setiap service secara langsung.


Ingress Gateway dan Security

Ingress Gateway berada di edge jaringan sehingga aspek keamanan harus diperhatikan dengan serius.

Beberapa mekanisme yang dapat digunakan antara lain:

  • HTTPS.
  • TLS.
  • Mutual TLS.
  • Authentication.
  • Authorization.
  • Rate limiting melalui komponen atau mekanisme yang sesuai.
  • Network security.
  • Firewall.
  • Web Application Firewall.

Istio menyediakan secure gateway untuk TLS dan mutual TLS pada ingress traffic. :contentReference[oaicite:9]{index=9}


Istio Ingress Gateway dan Authentication

Ingress Gateway dapat menjadi bagian dari arsitektur authentication API.

Client
  |
  | JWT
  v
Ingress Gateway
  |
  v
Authentication
  |
  v
Authorization
  |
  v
Application

Dalam arsitektur Istio, resource keamanan seperti RequestAuthentication dan AuthorizationPolicy dapat digunakan sesuai kebutuhan.

Dengan demikian, gateway dapat menjadi salah satu titik penting dalam pengamanan external traffic sebelum request diteruskan ke backend.


Istio Ingress Gateway dan Observability

Karena Ingress Gateway menggunakan Envoy Proxy, traffic yang melewatinya dapat menjadi bagian dari observability service mesh.

Informasi yang dapat dipantau antara lain:

  • Request count.
  • Response status.
  • Latency.
  • Traffic volume.
  • Connection error.
  • HTTP response code.
  • Access log.
External Client
       |
       v
Ingress Gateway
       |
       +---- Metrics
       |
       +---- Logs
       |
       +---- Tracing
       |
       v
Internal Service

Observability ini dapat membantu administrator melakukan troubleshooting terhadap masalah yang terjadi pada traffic ingress.


Shared Ingress Gateway

Pada lingkungan dengan banyak aplikasi, satu gateway dapat digunakan bersama oleh beberapa aplikasi.

                  Ingress Gateway
                  /      |      \
                 /       |       \
                v        v        v
             App A     App B    App C

Model shared gateway dapat mengurangi jumlah gateway yang harus dikelola.

Dokumentasi Istio menjelaskan shared gateway sebagai salah satu pola deployment gateway yang cocok ketika banyak aplikasi menggunakan infrastruktur ingress bersama. :contentReference[oaicite:10]{index=10}


Dedicated Ingress Gateway

Sebaliknya, organisasi dapat menyediakan gateway khusus untuk aplikasi tertentu.

Application A
     |
     v
Ingress Gateway A

Application B
     |
     v
Ingress Gateway B

Dedicated gateway dapat memberikan isolasi yang lebih besar untuk aplikasi yang memiliki kebutuhan performa atau keamanan khusus.

Namun, jumlah gateway yang lebih banyak berarti resource dan pengelolaan menjadi lebih kompleks. :contentReference[oaicite:11]{index=11}


Kelebihan Istio Ingress Gateway

  • Menyediakan entry point terpusat.
  • Mengurangi kebutuhan mengekspos setiap service secara langsung.
  • Mendukung HTTP dan HTTPS.
  • Mendukung TLS termination.
  • Mendukung TLS passthrough.
  • Mendukung routing berdasarkan hostname.
  • Mendukung routing berdasarkan URI.
  • Terintegrasi dengan VirtualService.
  • Terintegrasi dengan fitur security Istio.
  • Mendukung observability.
  • Dapat digunakan sebagai shared gateway.
  • Dapat digunakan sebagai dedicated gateway.

Kekurangan Istio Ingress Gateway

  • Menambah komponen pada arsitektur.
  • Membutuhkan pemahaman mengenai Istio.
  • Konfigurasi Gateway dan VirtualService harus konsisten.
  • Kesalahan TLS dapat menyebabkan koneksi gagal.
  • Kesalahan hostname dapat menghasilkan routing error.
  • Gateway membutuhkan resource CPU dan memory.
  • Gateway harus dimonitor dan di-maintain.
  • Arsitektur multi-gateway dapat menjadi kompleks.

Best Practice Istio Ingress Gateway

  • Gunakan HTTPS untuk traffic production.
  • Gunakan hostname yang spesifik.
  • Hindari wildcard yang tidak diperlukan.
  • Pisahkan Gateway dan VirtualService sesuai tanggung jawabnya.
  • Gunakan authentication dan authorization sesuai kebutuhan.
  • Monitor gateway secara berkala.
  • Gunakan beberapa replica untuk meningkatkan availability.
  • Gunakan load balancer yang sesuai.
  • Kelola sertifikat TLS dengan aman.
  • Dokumentasikan hostname dan route.
  • Gunakan shared gateway jika banyak aplikasi memiliki kebutuhan serupa.
  • Gunakan dedicated gateway jika membutuhkan isolasi khusus.
  • Untuk production, pertimbangkan pengelolaan gateway secara terpisah dari control plane.

Troubleshooting Istio Ingress Gateway

1. Gateway Tidak Dapat Diakses

Periksa Pod dan Service Ingress Gateway.

kubectl get pods -n istio-system

kubectl get svc -n istio-system

2. Hostname Tidak Berfungsi

Periksa apakah hostname pada Gateway sama dengan hostname pada VirtualService.

3. Mendapatkan HTTP 404

Periksa konfigurasi VirtualService dan nilai field gateways.

Istio menjelaskan bahwa apabila request masuk tidak cocok dengan gateway atau route yang ditentukan, request dapat ditolak, termasuk menghasilkan response 404 pada konfigurasi tertentu. :contentReference[oaicite:12]{index=12}

4. HTTPS Tidak Berfungsi

Periksa:

  • Port 443.
  • Protocol HTTPS.
  • TLS mode.
  • Credential name.
  • Sertifikat.
  • Hostname.

5. VirtualService Tidak Terhubung ke Gateway

Pastikan:

gateways:
- application-gateway

sesuai dengan nama Gateway yang digunakan.

6. Gateway Selector Tidak Cocok

Periksa label Pod gateway.

kubectl get pods -n istio-system --show-labels

Selector pada Gateway harus sesuai dengan label gateway deployment. :contentReference[oaicite:13]{index=13}

7. External IP Tidak Muncul

Periksa Service gateway:

kubectl get svc -n istio-system istio-ingressgateway

Jika menggunakan environment lokal atau cluster yang tidak menyediakan LoadBalancer, gunakan metode akses seperti NodePort atau konfigurasi load balancer eksternal.


Perbedaan Istio Ingress Gateway dan Kubernetes Ingress

Aspek Istio Ingress Gateway Kubernetes Ingress
Fokus Traffic management pada Istio. Expose service melalui Ingress API.
Routing Dapat menggunakan VirtualService. Menggunakan aturan Ingress.
TLS Dukungan konfigurasi Istio. Dukungan berdasarkan ingress controller.
Service Mesh Terintegrasi langsung dengan Istio. Tidak secara otomatis memiliki fitur mesh Istio.
Traffic Management Lebih terintegrasi dengan fitur Istio. Bergantung pada controller.

Dokumentasi Istio menyebut bahwa menggunakan Gateway dibanding Kubernetes Ingress memungkinkan penggunaan fitur Istio yang lebih lengkap, termasuk traffic management dan security. :contentReference[oaicite:14]{index=14}


Istio Ingress Gateway dan Kubernetes Gateway API

Selain Istio API, Istio juga mendukung Kubernetes Gateway API.

Gateway API merupakan API standar Kubernetes yang dikembangkan untuk menyediakan model routing yang lebih vendor-neutral.

Kubernetes Gateway API
          |
          v
       Istio
          |
          v
     Envoy Gateway
          |
          v
       Service

Istio saat ini menyatakan bahwa Gateway API didukung dan direncanakan menjadi API default untuk traffic management di masa mendatang. :contentReference[oaicite:15]{index=15}

Namun, Istio API Gateway + VirtualService tetap relevan dan banyak digunakan pada konfigurasi Istio yang sudah ada.


Contoh Alur Lengkap Istio Ingress Gateway

                    Internet
                       |
                       v
              External LoadBalancer
                       |
                       v
             Istio Ingress Gateway
                       |
                       v
                 Gateway
                       |
                       v
               VirtualService
                       |
          +------------+------------+
          |            |            |
          v            v            v
       User API     Order API    Product API
          |            |            |
          v            v            v
        Pods          Pods          Pods

Model tersebut menggambarkan bagaimana satu entry point dapat digunakan untuk menangani beberapa aplikasi atau API.


Contoh Arsitektur Production

                         Internet
                            |
                            v
                   Cloud Load Balancer
                            |
                            v
                +-----------------------+
                | Istio Ingress Gateway |
                |      Envoy Proxy      |
                +-----------+-----------+
                            |
                  +---------+---------+
                  |                   |
                  v                   v
             API Gateway          Web Service
                  |                   |
                  v                   v
             Microservices       Microservices
                  |
                  v
             Egress Gateway
                  |
                  v
             External APIs

Dalam arsitektur tersebut, Ingress Gateway menangani traffic yang masuk, sedangkan Egress Gateway menangani traffic yang keluar.

Dengan demikian, kedua gateway dapat membentuk boundary traffic dua arah pada service mesh.


FAQ Istio Ingress Gateway

1. Apa itu Istio Ingress Gateway?

Istio Ingress Gateway adalah gateway berbasis Envoy yang digunakan sebagai titik masuk traffic dari luar menuju service yang berada di dalam service mesh.

2. Apa fungsi utama Ingress Gateway?

Fungsi utamanya adalah menyediakan entry point yang terkontrol untuk external traffic menuju internal service.

3. Apa perbedaan Ingress Gateway dan Egress Gateway?

Ingress Gateway menangani traffic yang masuk ke mesh, sedangkan Egress Gateway menangani traffic yang keluar dari mesh.

4. Apa fungsi Gateway pada Istio?

Gateway menentukan port, protocol, hostname, dan konfigurasi koneksi yang diterima oleh gateway. Routing aplikasi biasanya didefinisikan menggunakan VirtualService. :contentReference[oaicite:16]{index=16}

5. Apa fungsi VirtualService?

VirtualService menentukan bagaimana request yang masuk melalui gateway diarahkan menuju destination.

6. Apakah Ingress Gateway bisa menggunakan HTTPS?

Ya. Istio mendukung secure ingress menggunakan TLS dan mutual TLS. :contentReference[oaicite:17]{index=17}

7. Apa itu TLS termination?

TLS termination adalah proses ketika koneksi TLS dari client dihentikan pada Ingress Gateway sebelum request diteruskan ke backend.

8. Apa itu TLS passthrough?

TLS passthrough adalah konfigurasi ketika gateway meneruskan koneksi TLS tanpa melakukan termination, sehingga backend tetap menangani TLS.

9. Apakah satu Ingress Gateway dapat menangani banyak service?

Ya. Satu gateway dapat digunakan oleh banyak aplikasi dengan routing berdasarkan hostname, URI, atau aturan lainnya.

10. Apakah Ingress Gateway wajib digunakan dalam Istio?

Tidak. Istio dapat digunakan tanpa mengekspos aplikasi melalui ingress gateway. Gateway digunakan ketika service perlu menerima traffic dari luar mesh.

11. Apakah Ingress Gateway sama dengan Kubernetes Ingress?

Tidak persis sama. Istio Gateway merupakan resource Istio yang terintegrasi dengan traffic management Istio, sedangkan Kubernetes Ingress merupakan API Kubernetes yang membutuhkan ingress controller. :contentReference[oaicite:18]{index=18}

12. Apakah Istio mendukung Kubernetes Gateway API?

Ya. Istio mendukung Kubernetes Gateway API dan saat ini menyatakan bahwa API tersebut diarahkan menjadi API default untuk traffic management di masa depan. :contentReference[oaicite:19]{index=19}


Baca Juga


Artikel Selanjutnya

Setelah memahami Istio Ingress Gateway, pembahasan service mesh dapat dilanjutkan ke topik berikutnya sesuai roadmap artikel Dewa234.

Ingress Gateway menjadi bagian penting karena berfungsi sebagai pintu masuk external traffic, sedangkan Egress Gateway sebelumnya membahas jalur keluar menuju external network.

                Internet
                   |
                   v
          Ingress Gateway
                   |
                   v
             Service Mesh
                   |
                   v
          Internal Services
                   |
                   v
           Egress Gateway
                   |
                   v
            External APIs

Kesimpulan

Istio Ingress Gateway merupakan komponen penting dalam Istio Service Mesh yang berfungsi sebagai titik masuk traffic dari luar menuju service yang berada di dalam mesh.

Dengan Ingress Gateway, external client tidak harus berkomunikasi secara langsung dengan setiap microservice. Traffic dapat masuk melalui gateway terlebih dahulu, kemudian diteruskan menuju service yang sesuai berdasarkan konfigurasi routing.

Istio memisahkan konfigurasi gateway dengan routing aplikasi. Resource Gateway digunakan untuk menentukan port, protocol, hostname, dan konfigurasi TLS, sedangkan VirtualService digunakan untuk menentukan bagaimana traffic diarahkan menuju destination. :contentReference[oaicite:20]{index=20}

Ingress Gateway juga mendukung kebutuhan HTTPS, TLS termination, TLS passthrough, SNI routing, observability, authentication, authorization, serta berbagai kebutuhan traffic management lainnya.

Dalam lingkungan production, Ingress Gateway dapat digunakan sebagai shared gateway untuk beberapa aplikasi atau dedicated gateway untuk aplikasi tertentu. Pemilihan model tersebut harus disesuaikan dengan kebutuhan keamanan, performa, isolasi, dan operasional.

Istio juga mendukung Kubernetes Gateway API dan menyatakan bahwa Gateway API diarahkan menjadi API default untuk traffic management di masa mendatang. Namun, konfigurasi Istio Gateway dan VirtualService tetap menjadi bagian penting dari banyak deployment Istio yang sudah berjalan. :contentReference[oaicite:21]{index=21}

Dengan memahami Ingress Gateway, kita sekarang memiliki gambaran lengkap mengenai dua arah utama traffic pada Service Mesh, yaitu ingress untuk traffic yang masuk dan egress untuk traffic yang keluar.

Konsep tersebut menjadi fondasi penting untuk memahami bagaimana Istio mengelola komunikasi antara external client, gateway, microservices, dan external services dalam arsitektur aplikasi modern.

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