All Products
Search
Document Center

Alibaba Cloud Service Mesh:Pengaturan rute traffic berbasis versi dengan Istio

Last Updated:Jun 21, 2026

Pengaturan rute traffic berbasis versi memungkinkan Anda membagi traffic antara berbagai versi layanan berdasarkan bobot yang ditentukan. Teknik ini ideal untuk rilis canary dan Pengujian A/B. Topik ini menjelaskan cara menggunakan sumber daya Istio untuk tujuan tersebut.

Prasyarat

Langkah 1: Buat Gateway

Gateway mendefinisikan load balancer di tepi service mesh untuk koneksi HTTP/TCP inbound atau outbound. Langkah ini menjelaskan cara membuat Gateway dan mengaitkannya dengan gerbang masuk.

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih ASM Gateways > Gateway. Pada halaman yang muncul, klik Create.

  3. Pada halaman Create, konfigurasikan parameter berikut lalu klik Create.

    Untuk informasi lebih lanjut tentang parameter tersebut, lihat Gateway.

    Parameter

    Deskripsi

    Basic Information

    Atur Namespaces ke default dan Name ke bookinfo-gateway.

    Gateway Pod Selector

    Atur Key ke istio dan Value ke ingressgateway.

    Exposed Service

    Atur Name ke http, Port ke 80, Protocol ke HTTP, dan Hosts ke *.

    Konfigurasi YAML untuk Gateway adalah sebagai berikut.

    Berikut adalah YAML untuk VirtualService.

    Gateway YAML

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: bookinfo-gateway
      namespace: default
    spec:
      selector:
        istio: ingressgateway
      servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
            - '*'
    

Langkah 2: Buat VirtualService

VirtualService mengarahkan permintaan ke aplikasi Bookinfo melalui jalur berikut: /productpage, /static, /login, /logout, dan /api/v1/products.

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Traffic Management Center > VirtualService. Pada halaman yang muncul, klik Create.

  3. Pada halaman Create, konfigurasikan parameter berikut lalu klik Create.

    Untuk informasi lebih lanjut tentang parameter tersebut, lihat Virtual Service.

    Parameter

    Deskripsi

    Basic Information

    Namespaces

    Dalam contoh ini, pilih default.

    Name

    Masukkan nama kustom untuk VirtualService.

    Gateways

    1. Aktifkan Apply To specific Gateways, lalu klik Select the name of the Gateway.

    2. Pada kotak dialog Select the name of the Gateway, pilih bookinfo-gateway, klik ikon 添加, lalu klik OK.

    3. Nonaktifkan Apply To All Sidecars.

    Hosts

    Klik Select the gateway domain name which VirtualService belongs to. Pada kotak dialog Select the gateway domain name which VirtualService belongs to, pilih *, klik ikon 添加, lalu klik OK.

    HTTP Route

    Name

    Klik HTTP Route, klik Add Route, lalu masukkan Name kustom.

    Request matching rules

    Klik Add Request Matching Rule berulang kali untuk mengonfigurasi lima aturan berikut:

    • Aktifkan Matching request URI, atur Method ke Exact, dan atur Content ke /productpage.

    • Aktifkan Matching request URI, atur Method ke Prefix, dan atur Content ke /static.

    • Aktifkan Matching request URI, atur Method ke Exact, dan atur Content ke /login.

    • Aktifkan Matching request URI, atur Method ke Exact, dan atur Content ke /logout.

    • Aktifkan Matching request URI, atur Method ke Prefix, dan atur Content ke /api/v1/products.

    Route destination

    Klik Add Route Destination, atur Host ke productpage, dan atur Port ke 9080.

    File YAML berikut menunjukkan VirtualService yang sesuai dengan konfigurasi di atas.

    VirtualService YAML

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: vs-demo
      namespace: default
    spec:
      hosts:
        - '*'
      http:
        - name: gw-to-productage
          match:
            - uri:
                exact: /productpage
            - uri:
                prefix: /static
            - uri:
                exact: /login
            - uri:
                exact: /logout
            - uri:
                prefix: /api/v1/products
          route:
            - destination:
                host: productpage
                port:
                  number: 9080
      gateways:
        - bookinfo-gateway
    

Langkah 3: Akses aplikasi Bookinfo

  1. Dapatkan alamat layanan gerbang masuk.

    Konsol ASM

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih ASM Gateways > Ingress Gateway.

    3. Pada halaman Ingress Gateway, temukan Service address.

    Konsol ACK

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Network > Services.

    3. Di bagian atas halaman Hosts, pilih Namespaces dari daftar drop-down Namespace. Di kolom External IP, temukan alamat IP yang terkait dengan port 80 untuk layanan istio-ingressgateway.

  2. Di bilah alamat browser Anda, masukkan http://{alamat IP gerbang masuk}/productpage dan refresh halaman beberapa kali untuk mengamati pengaturan rute round-robin default.

    Setiap kali Anda merefresh halaman, Anda mengakses salah satu versi v1, v2, atau v3 dari layanan reviews. Traffic ke ketiga versi layanan reviews didistribusikan dalam rasio sekitar 1:1:1.

    Halaman reviews-v1 hanya menampilkan ulasan teks tanpa peringkat bintang, halaman reviews-v2 menampilkan peringkat bintang hitam, dan halaman reviews-v3 menampilkan peringkat bintang merah.

Langkah 4: Buat aturan routing berbasis versi

  1. Buat DestinationRule untuk mendefinisikan subset berbasis versi (v1, v2, dan v3) untuk layanan reviews.

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Traffic Management Center > DestinationRule. Pada halaman yang muncul, klik Create.

    3. Pada halaman Create, konfigurasikan parameter berikut lalu klik Create.

      Untuk informasi lebih lanjut tentang parameter tersebut, lihat Destination Rule.

      Parameter

      Deskripsi

      Basic Information

      Atur Namespaces ke default, masukkan Name kustom untuk DestinationRule, dan atur Host ke reviews.

      Service Version (Subset)

      Klik Service Version (Subset). Klik Add Service Version (Subset) berulang kali untuk mengonfigurasi tiga subset berikut.

      • Subset 1: Atur Name ke v1. Klik Add Label, atur Key ke version, dan atur Value ke v1.

      • Subset 2: Atur Name ke v2. Klik Add Label, atur Key ke version, dan atur Value ke v2.

      • Subset 3: Atur Name ke v3. Klik Add Label, atur Key ke version, dan atur Value ke v3.

        File YAML berikut menunjukkan DestinationRule yang sesuai dengan konfigurasi di atas.

      DestinationRule YAML

      apiVersion: networking.istio.io/v1beta1
      kind: DestinationRule
      metadata:
        name: reviews
        namespace: default
        labels: {}
      spec:
        host: reviews
        subsets:
          - name: v1
            labels:
              version: v1
          - name: v2
            labels:
              version: v2
          - name: v3
            labels:
              version: v3
      
  2. Buat VirtualService untuk mengarahkan traffic ke layanan reviews berdasarkan bobot berikut: 10% ke v1, 40% ke v2, dan 50% ke v3.

    1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Traffic Management Center > VirtualService. Pada halaman yang muncul, klik Create.

    3. Pada halaman Create, konfigurasikan parameter berikut lalu klik Create.

      Parameter

      Deskripsi

      Basic Information

      Namespaces

      Dalam contoh ini, pilih default.

      Name

      Masukkan nama kustom untuk VirtualService.

      Gateways

      Aktifkan Apply To All Sidecars.

      Hosts

      Klik Add Host. Pada kotak dialog Add Host, atur Namespaces ke default. Di bagian Add Host, pilih layanan reviews, klik ikon 添加, lalu klik OK.

      HTTP Route

      Name

      Klik HTTP Route, klik Add Route, lalu masukkan Name kustom.

      Route destination

      Klik Add Route Destination berulang kali untuk mengonfigurasi tiga tujuan rute berikut.

      • Atur Host ke reviews, versi ke v1, dan bobot ke 10.

      • Atur Host ke reviews, Subset ke v2, dan Weight ke 40.

      • Atur Host ke reviews, Subset ke v3, dan Weight ke 50.

        File YAML berikut menunjukkan VirtualService yang sesuai dengan konfigurasi di atas.

      YAML untuk VirtualService adalah sebagai berikut.

      VirtualService YAML

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: reviews
        namespace: default
      spec:
        hosts:
          - reviews.default.svc.cluster.local
        http:
          - name: route
            route:
              - destination:
                  host: reviews
                  subset: v1
                weight: 10
              - destination:
                  host: reviews
                  subset: v2
                weight: 40
              - destination:
                  host: reviews
                  subset: v3
                weight: 50

Langkah 5: Verifikasi routing berbasis versi

Di bilah alamat browser Anda, masukkan http://{alamat IP gerbang masuk}/productpage dan refresh halaman sekitar 10 kali.

Jika traffic didistribusikan ke versi layanan v1, v2, dan v3 dalam rasio sekitar 1:4:5, aturan routing berbobot tersebut bekerja dengan benar.