全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Gunakan delegasi untuk mengonfigurasi layanan virtual di instance ASM

更新时间:Jul 02, 2025

Ketika menggunakan layanan virtual untuk menentukan aturan routing bagi layanan yang mencakup beberapa layanan mikro atau aturan routing kompleks, layanan virtual tersebut dapat menjadi sulit dipelihara. Untuk mengurangi risiko perubahan dalam aturan routing, Service Mesh (ASM) memperkenalkan delegasi guna mengelola aturan routing secara lebih terperinci. Topik ini menjelaskan cara menggunakan beberapa layanan virtual untuk menentukan aturan routing bagi sebuah layanan. Contoh aplikasi Bookinfo digunakan dalam panduan ini.

Prasyarat

Informasi latar belakang

Dalam Service Mesh, layanan virtual digunakan untuk menentukan aturan routing guna mengontrol trafik yang dirutekan ke layanan. Dalam skenario nyata, Anda mungkin perlu memelihara layanan virtual yang kompleks. Setiap kali Anda memodifikasi aturan routing yang ditentukan oleh layanan virtual, Anda harus memperbarui layanan virtual tersebut. Setelah aturan routing dimodifikasi, aturan tersebut dapat bertentangan satu sama lain, redundan, atau saling bergantung. Kesalahan konfigurasi aturan routing dapat mempengaruhi layanan yang diterapkan di klaster pada bidang data atau bahkan membuat semua layanan tidak dapat diakses.

ASM memperkenalkan delegasi untuk memperluas konfigurasi layanan virtual, yang memungkinkan Anda memisahkan aturan routing yang ditentukan untuk layanan. Anda dapat membagi layanan virtual menjadi layanan virtual utama dan beberapa layanan virtual sekunder. Layanan virtual utama menentukan aturan routing keseluruhan dari layanan, sedangkan setiap layanan virtual sekunder menentukan aturan routing terperinci. Layanan virtual utama dipelihara oleh administrator, sementara layanan virtual sekunder dipelihara oleh pemelihara layanan. Hal ini mengurangi risiko yang ditimbulkan oleh perubahan dalam aturan routing dan meningkatkan efisiensi penyebaran serta pembaruan layanan independen.

Catatan penggunaan

  • Anda hanya dapat menyetel parameter terkait delegasi di layanan virtual utama. Jika parameter terkait delegasi disetel baik di layanan virtual utama maupun sekunder, layanan virtual utama dan sekunder tidak akan berlaku.

  • Konfigurasi HTTPMatchRequest di layanan virtual sekunder harus merupakan subset dari konfigurasi di layanan virtual utama. Jika tidak, terdapat konflik, dan konfigurasi HTTPRoute tidak akan berlaku.

  • Parameter terkait delegasi hanya dapat ditentukan ketika bidang route dan redirect di layanan virtual utama dibiarkan kosong. Bidang hosts di layanan virtual sekunder juga harus dibiarkan kosong. Aturan routing yang ditentukan oleh layanan virtual sekunder digabungkan dengan aturan routing yang ditentukan oleh layanan virtual utama.

Langkah 1: Konfigurasikan gateway Istio

  1. Masuk ke Konsol ASM.

  2. Di panel navigasi sisi kiri, pilih Service Mesh > Mesh Management.

  3. Pada halaman Mesh Management, temukan instance ASM yang ingin dikonfigurasi. Klik nama instance ASM atau klik Manage di kolom Actions.

  4. Pada halaman detail instance ASM, pilih ASM Gateways > Gateway di panel navigasi sisi kiri. Pada halaman yang muncul, klik Create from YAML.

  5. Pilih namespace dari daftar drop-down Namespace, salin konten berikut ke editor kode, lalu klik Create. Dalam contoh ini, namespace default digunakan.

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: bookinfo-gateway
    spec:
      selector:
        istio: ingressgateway # gunakan kontroler default istio
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "*"

    Setel parameter number ke 80. Pengaturan ini menentukan bahwa aplikasi Bookinfo dapat membentuk koneksi HTTP arah masuk atau keluar menggunakan port 80.

Langkah 2: Konfigurasikan layanan virtual utama

  1. Masuk ke Konsol ASM.

  2. Di panel navigasi sisi kiri, pilih Service Mesh > Mesh Management.

  3. Pada halaman Mesh Management, temukan instance ASM yang ingin dikonfigurasi. Klik nama instance ASM atau klik Manage di kolom Actions.

  4. Pada halaman detail instance ASM, pilih Traffic Management Center > VirtualService di panel navigasi sisi kiri. Pada halaman yang muncul, klik Create from YAML.

  5. Pilih namespace dari daftar drop-down Namespace, salin konten berikut ke editor kode, lalu klik Create. Dalam contoh ini, namespace default digunakan.

    Konten berikut dapat digunakan untuk membuat delegasi bernama vs-1 dan delegasi bernama vs-2. Delegasi vs-1 menentukan bahwa hanya URL permintaan yang berisi /log yang dapat digunakan untuk mengakses aplikasi Bookinfo. Delegasi vs-2 menentukan bahwa hanya URL permintaan yang berisi / yang dapat digunakan untuk mengakses aplikasi Bookinfo.

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: bookinfo
      namespace: default
    spec:
      gateways:
        - bookinfo-gateway
      hosts:
        - '*'
      http:
        - delegate:
            name: vs-1
            namespace: ns1
          match:
            - uri:
                prefix: /log
        - delegate:
            name: vs-2
            namespace: ns1
          match:
            - uri:
                prefix: /

    Deskripsi parameter di bidang delegasi:

    • name: nama delegasi.

    • namespace: namespace tempat delegasi berlaku.

Langkah 3: Konfigurasikan layanan virtual sekunder

  1. Masuk ke Konsol ASM.

  2. Di panel navigasi sisi kiri, pilih Service Mesh > Mesh Management.

  3. Pada halaman Mesh Management, temukan instance ASM yang ingin dikonfigurasi. Klik nama instance ASM atau klik Manage di kolom Actions.

  4. Pada halaman detail instance ASM, pilih Traffic Management Center > VirtualService di panel navigasi sisi kiri. Pada halaman yang muncul, klik Create from YAML.

  5. Pilih namespace dari daftar drop-down Namespace, salin konten berikut ke editor kode, lalu klik Create.

    Dalam contoh ini, namespace ns1 digunakan. Untuk informasi lebih lanjut tentang cara membuat namespace, lihat Kelola Namespace Global.

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: vs-1
      namespace: ns1
    spec:
      http:
        - match:
            - uri:
                exact: /login
            - uri:
                exact: /logout
          route:
            - destination:
                host: productpage.default.svc.cluster.local
                port:
                  number: 9080
    • metadata: menghubungkan layanan virtual sekunder dengan delegasi di layanan virtual utama. Pengaturan metadata harus sama dengan pengaturan delegasi di layanan virtual utama. Dalam sublangkah ini, pengaturan metadata sama dengan pengaturan delegasi vs-1. Ini berarti layanan virtual sekunder dihubungkan dengan delegasi vs-1.

    • match: menentukan kondisi filter untuk permintaan HTTP. Dalam sublangkah ini, uri disetel ke exact: /login dan exact: /logout. Pengaturan ini menentukan bahwa Anda dapat masuk atau keluar dari aplikasi Bookinfo.

  6. Ulangi langkah-langkah sebelumnya. Di halaman Buat, pilih namespace dari daftar drop-down Namespace, salin konten berikut ke editor kode, lalu klik Create.

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: vs-2
      namespace: ns1
    spec:
      http:
        - match:
            - uri:
                exact: /productpage
            - uri:
                prefix: /static
            - uri:
                prefix: /api/v1/products
          route:
            - destination:
                host: productpage.default.svc.cluster.local
                port:
                  number: 9080
    • metadata: menghubungkan layanan virtual sekunder dengan delegasi di layanan virtual utama. Pengaturan metadata harus sama dengan pengaturan delegasi di layanan virtual utama. Dalam sublangkah ini, pengaturan metadata sama dengan pengaturan delegasi vs-2. Ini berarti layanan virtual sekunder dihubungkan dengan delegasi vs-2.

    • match: menentukan kondisi filter untuk permintaan HTTP. Dalam sublangkah ini, pengaturan menentukan bahwa hanya URL permintaan yang berisi /productpage atau dimulai dengan /static atau /api/v1/products yang dapat digunakan untuk mengakses aplikasi Bookinfo.

Verifikasi hasil

  1. Masukkan http://<alamat IP gateway masuk ASM>/productpage di bilah alamat browser.

    Halaman berikut muncul. Ini berarti aplikasi Bookinfo diakses menggunakan URL permintaan yang berisi /productpage. Hasilnya menunjukkan bahwa layanan virtual sekunder yang dihubungkan dengan delegasi vs-2 berlaku. Untuk informasi lebih lanjut tentang cara mendapatkan alamat IP gateway masuk ASM, lihat bagian "Dapatkan Alamat IP Gateway Masuk" dalam topik Gunakan Sumber Daya Istio untuk Merutekan Trafik ke Versi Layanan yang Berbeda. 服务

  2. Klik Sign in di pojok kanan atas. Di kotak dialog yang muncul, masukkan nama pengguna dan kata sandi yang sesuai untuk masuk ke aplikasi Bookinfo.

    Halaman berikut muncul. Ini berarti Anda telah masuk ke aplikasi Bookinfo. Hasilnya menunjukkan bahwa layanan virtual sekunder yang dihubungkan dengan delegasi vs-1 berlaku. 登录