Ketika layanan dalam mesh Anda perlu menerima traffic eksternal, gerbang Istio berfungsi sebagai titik masuk. Gerbang ini merupakan load balancer di tepi instans Service Mesh (ASM) yang menerima koneksi HTTP/TCP inbound atau outbound, mengontrol port, protokol, dan host yang diekspos sebelum traffic mencapai layanan backend melalui VirtualService.
Cara kerja gerbang
Gerbang beroperasi pada lapisan L4–L6 stack jaringan dan mendefinisikan:
Port dan protokol yang akan didengarkan (HTTP, HTTPS, TCP)
Host yang menerima traffic (domain tertentu atau wildcard)
Pengaturan TLS untuk koneksi terenkripsi
Gerbang saja tidak cukup untuk mengarahkan traffic ke layanan. Anda harus mengikat VirtualService ke gerbang tersebut agar traffic dapat diteruskan ke layanan backend tertentu. Untuk spesifikasi API lengkap, lihat Gateway.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ASM. Untuk informasi selengkapnya, lihat Create an ASM instance
Buat gerbang Istio
Opsi 1: Gunakan Konsol ASM
Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Gateways > Gateway. Pada halaman yang muncul, klik Create.
Pada halaman Create, konfigurasikan parameter gerbang lalu klik Create. Untuk deskripsi bidang, lihat atau Gateway.

Opsi 2: Gunakan file YAML
Masuk ke ASM console. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Gateways > Gateway. Pada halaman yang muncul, klik Create from YAML.
Pada halaman Create, pilih namespace dari daftar drop-down Namespace, pilih templat dari daftar drop-down Template, ubah konfigurasi di editor kode YAML, lalu klik Create.
Bidang utama
Tabel berikut mencantumkan bidang yang umum dikonfigurasi. Untuk referensi API lengkap, lihat Gateway.
| Field | Description |
|---|---|
spec.selector | Label selector yang menentukan pod gerbang mana yang menangani konfigurasi ini. Biasanya istio: ingressgateway. |
spec.servers[].port.number | Nomor port yang akan didengarkan. |
spec.servers[].port.protocol | Jenis protokol, seperti HTTP, HTTPS, atau TCP. |
spec.servers[].port.name | Label untuk port tersebut. |
spec.servers[].hosts | Host yang diekspos pada port ini. Tentukan * untuk mencocokkan semua host, atau cantumkan domain tertentu seperti example.com. |
spec.servers[].tls.mode | Mode TLS, seperti SIMPLE atau MUTUAL. |
spec.servers[].tls.credentialName | Nama rahasia Kubernetes yang berisi sertifikat dan kunci TLS. |
Contoh YAML
Gerbang HTTP
Ekspos port 80 untuk semua host dan alihkan traffic HTTP ke HTTPS:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: http-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*.example.com"
tls:
httpsRedirect: trueGerbang HTTPS dengan TLS
Akhiri TLS pada port 443 menggunakan rahasia Kubernetes:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: https-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 443
name: https
protocol: HTTPS
hosts:
- "bookinfo.example.com"
tls:
mode: SIMPLE
credentialName: bookinfo-tls-secretGerbang multi-port
Ekspos listener HTTP, HTTPS, dan wildcard pada port berbeda:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
namespace: some-config-namespace
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- test1.com
- test2.com
tls:
httpsRedirect: true
- port:
number: 443
name: https-443
protocol: HTTPS
hosts:
- uk.bookinfo.com
- eu.bookinfo.com
tls:
mode: SIMPLE
serverCertificate: /etc/certs/servercert.pem
privateKey: /etc/certs/privatekey.pem
- port:
number: 9443
name: https-9443
protocol: HTTPS
hosts:
- "bookinfo-namespace/*.bookinfo.com"
tls:
mode: SIMPLE
credentialName: bookinfo-secret
- port:
number: 9080
name: http-wildcard
protocol: HTTP
hosts:
- "*"Gerbang ini mengekspos port 80, 443, 9443, dan 9080. Gerbang ini berlaku untuk pod yang memiliki label istio: ingressgateway.
Ubah gerbang Istio
Pada halaman Gateway, temukan gerbang Istio yang dituju lalu klik YAML di kolom Actions.
Pada kotak dialog Edit, ubah konfigurasi sesuai kebutuhan bisnis Anda lalu klik OK.
Kembalikan gerbang Istio ke versi sebelumnya
Pada halaman Gateway, temukan gerbang Istio yang dituju lalu klik Version di kolom Actions.
Pada kotak dialog Version, klik Rollback untuk memulihkan versi sebelumnya.
Untuk informasi selengkapnya, lihat Roll back an Istio resource to an earlier version.
Hapus gerbang Istio
Setelah Anda menghapus gerbang Istio, aturan routing traffic terkait tidak lagi berfungsi. Akibatnya, layanan mungkin menjadi tidak dapat diakses. Lakukan operasi ini dengan hati-hati.
Pada halaman Gateway, temukan gerbang Istio yang dituju lalu klik Delete di kolom Actions.
Pada pesan Submit, klik OK.