Service Mesh (ASM) memungkinkan pengguna untuk mengarahkan trafik ke versi layanan yang berbeda berdasarkan rasio tertentu. Fitur ini cocok untuk skenario seperti rilis canary dan pengujian A/B. Topik ini menjelaskan cara menggunakan sumber daya Istio untuk mengarahkan trafik ke versi layanan yang berbeda.
Prasyarat
Aplikasi Bookinfo telah diterapkan dalam instance ASM. Untuk informasi lebih lanjut, lihat Terapkan aplikasi dalam cluster ACK yang ditambahkan ke instance ASM.
Langkah 1: Buat gateway Istio
Gateway Istio mendefinisikan load balancer yang bekerja di tepi service mesh untuk menerima trafik HTTP/TCP arah masuk atau arah keluar. Bagian berikut menjelaskan cara membuat gateway Istio dan mengaitkannya dengan gateway masuk.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih . Pada halaman yang muncul, klik Create.
Di halaman Create, konfigurasikan parameter berikut lalu klik Create.
Untuk detail lebih lanjut tentang parameter, lihat Gateway.
Parameter
Deskripsi
Basic Information
Atur Namespace ke default dan Name ke bookinfo-gateway.
Gateway Pod Selector
Untuk contoh ini, atur Key ke istio dan Value ke ingressgateway.
Exposed Service
Atur Name ke http, Port ke 80, Protocol ke HTTP, dan Service ke *.

Kode YAML berikut menunjukkan gateway Istio sesuai dengan konfigurasi sebelumnya.
Langkah 2: Buat layanan virtual
Layanan virtual mendefinisikan aturan routing trafik dan kebijakan pengalihan permintaan. Setelah Anda membuat layanan virtual, Anda dapat menggunakan jalur berikut untuk mengakses aplikasi Bookinfo: /productpage, /static, /login, /logout, dan /api/v1/products.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih . Pada halaman yang muncul, klik Create.
Di halaman Create, konfigurasikan parameter berikut lalu klik Create.
Untuk detail lebih lanjut tentang parameter, lihat Virtual Service.
Parameter
Deskripsi
Basic Information
Namespace
Dalam contoh ini, default dipilih.
Name
Tentukan nama untuk layanan virtual.
Gateways
Aktifkan saklar Apply To specific Gateways dan klik Select the name of the Gateway.
Di kotak dialog Select the name of the Gateway, pilih bookinfo-gateway, klik ikon
, lalu klik OK.Nonaktifkan saklar Apply To All Sidecars.
Hosts
Klik Select the gateway domain name which VirtualService belongs to. Dalam kotak dialog Select the gateway domain name which VirtualService belongs to, pilih *, klik ikon
, kemudian klik OK.HTTP Route
Name
Klik tab HTTP Route, klik Add Route, lalu masukkan nama rute di bidang Name.
Request matching rules
Klik Add Request Matching Rule berulang kali untuk mengonfigurasi lima aturan berikut:
Aktifkan Matching request URI, atur Method ke Exact dan Content ke /productpage.
Aktifkan Matching request URI, atur Method ke Prefix dan Content ke /static.
Aktifkan Matching request URI, atur Method ke Exact dan Content ke /login.
Aktifkan Matching request URI, atur Method ke Exact dan Content ke /logout.
Aktifkan Matching request URI, atur Method menjadi Prefix, dan Content menjadi /api/v1/products.
Route destination
Klik Add Route Destination. Atur Host ke productpage dan Port ke 9080.
Kode YAML berikut menunjukkan layanan virtual sesuai dengan konfigurasi sebelumnya.
Langkah 3: Akses aplikasi Bookinfo
Dapatkan alamat IP dari gateway masuk.
Metode 1: menggunakan Konsol ASM
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Ingress Gateway, peroleh Service address.
Metode 2: menggunakan Konsol ACK
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan cluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Pada halaman Services, pilih istio-system dari daftar drop-down Namespace. Di kolom External IP, periksa alamat IP untuk port 80 dari istio-ingressgateway.
Di bilah alamat browser Anda, masukkan http://{alamat IP gateway masuk}/productpage dan segarkan halaman 10 kali untuk mengakses aplikasi Bookinfo.
Aplikasi Bookinfo mengakses versi v1, v2, dan v3 dari layanan reviews. Anda dapat melihat bahwa rasio permintaan ke tiga versi layanan reviews mendekati 1:1:1.

Langkah 4: Buat aturan routing untuk versi layanan yang berbeda
Buat aturan tujuan dan kelompokkan instance layanan reviews berdasarkan versi. Dalam contoh ini, instance layanan reviews mencakup subset v1, v2, dan v3.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih . Pada halaman yang muncul, klik Create.
Di halaman Create, konfigurasikan parameter berikut dan klik Create.
Untuk detail lebih lanjut tentang parameter, lihat Destination Rule.
Parameter
Deskripsi
Basic Information
Atur Namespace ke default, tentukan Name untuk aturan tujuan, dan atur Host ke reviews.
Service Version (subset)
Klik tab Service Version (subset). Lalu, klik Add Service Version (subset) berulang kali untuk mengonfigurasi tiga subset berikut:
Subset 1: Atur Name ke v1. Klik Add Label, dan atur Key ke version dan Value ke v1.
Subset 2: Atur Name ke v2. Klik Add Label, dan atur Key ke version dan Value ke v2.
Subset 3: Atur Name ke v3. Klik Add Label, dan atur Key ke version dan Value ke v3.

Kode YAML berikut menunjukkan aturan tujuan sesuai dengan konfigurasi sebelumnya.
Buat layanan virtual untuk mengarahkan 10% trafik ke versi v1 layanan reviews, 40% trafik ke versi v2 layanan reviews, dan 50% trafik ke versi v3 layanan reviews.
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih . Pada halaman yang muncul, klik Create.
Di halaman Create, konfigurasikan parameter berikut dan klik Create.
Parameter
Deskripsi
Basic Information
Namespace
Untuk contoh ini, pilih default.
Name
Tentukan nama untuk layanan virtual.
Gateways
Aktifkan Apply To All Sidecars.
Hosts
Klik Add Host. Di kotak dialog Add Host, atur Namespace ke default. Di bagian Add Host, pilih reviews, klik ikon
, lalu klik OK.HTTP Route
Name
Klik tab HTTP Route. Klik Add Route, lalu masukkan nama rute di bidang Name.
Route destination
Klik Add Route Destination berulang kali untuk mengonfigurasi tiga tujuan rute berikut:
Atur Host ke reviews, Subset ke v1, dan Weight ke 10.
Atur Host menjadi reviews, Subset menjadi v2, dan Weight menjadi 40.
Atur Host ke reviews, Subset ke v3, dan Weight ke 50.

Kode YAML berikut menunjukkan aturan virtual sesuai dengan konfigurasi sebelumnya.
Langkah 5: Periksa apakah pengaturan routing trafik berlaku
Di bilah alamat browser Anda, masukkan http://{alamat IP gateway masuk}/productpage. Segarkan halaman 10 kali.
Jika trafik yang diarahkan ke versi v1, v2, dan v3 layanan reviews muncul dengan rasio mendekati 1:4:5, maka pengaturan routing trafik telah berlaku.