全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Gunakan Sumber Daya Istio untuk Mengarahkan Trafik ke Versi Layanan yang Berbeda

更新时间:Jul 17, 2025

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

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.

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

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

  3. 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.

    Perluas untuk melihat kode YAML dari gateway Istio

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

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

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

  3. 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

    1. Aktifkan saklar Apply To specific Gateways dan klik Select the name of the Gateway.

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

    3. 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.

    Perluas untuk melihat kode YAML dari layanan virtual

    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 IP dari gateway masuk.

    Metode 1: menggunakan Konsol ASM

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

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

    3. Di halaman Ingress Gateway, peroleh Service address.

    Metode 2: menggunakan Konsol ACK

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

    2. Di halaman Clusters, temukan cluster yang diinginkan dan klik namanya. Di panel kiri, pilih Network > Services.

    3. Pada halaman Services, pilih istio-system dari daftar drop-down Namespace. Di kolom External IP, periksa alamat IP untuk port 80 dari istio-ingressgateway.

  2. 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.

    yuque_diagram

Langkah 4: Buat aturan routing untuk versi layanan yang berbeda

  1. Buat aturan tujuan dan kelompokkan instance layanan reviews berdasarkan versi. Dalam contoh ini, instance layanan reviews mencakup subset v1, v2, dan v3.

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

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

    3. 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.

      Perluas untuk melihat kode YAML dari aturan tujuan

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

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

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

    3. 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.

      虚拟服务2

      Kode YAML berikut menunjukkan aturan virtual sesuai dengan konfigurasi sebelumnya.

      Perluas untuk melihat kode YAML dari layanan virtual

      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: 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.