全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Pengoptimalan xds adaptif

更新时间:Jul 02, 2025

Gunakan fitur pengoptimalan xds adaptif untuk meningkatkan kinerja Service Mesh.

Penting
  • Untuk mengaktifkan pengoptimalan xds adaptif, tingkatkan instance ASM ke versi 1.15.3.63 atau lebih baru.

  • Pengoptimalan xds adaptif hanya mendukung HTTP.

Latar Belakang

Sidecar menyimpan informasi layanan di bidang data, sementara bidang kontrol mendorong pembaruan konfigurasi (misalnya, aturan layanan virtual baru) ke semua Sidecar. Pembaruan yang terlalu sering dapat menurunkan kinerja Service Mesh.

Untuk mengoptimalkan proses ini, aktifkan fitur pengoptimalan xds adaptif. Fitur ini akan menerapkan egress gateway (istio-axds-egressgateway) di dalam kluster. Semua trafik HTTP diarahkan melalui gateway ini, dan dependensi layanan secara otomatis diinfer dari log akses gateway—tanpa memerlukan konfigurasi manual. Lihat Efek Optimalisasi Push Konfigurasi Setelah Menerapkan Sumber Daya Sidecar untuk detail lebih lanjut.

Sebelum memulai

Langkah 1: Aktifkan pengoptimalan xds adaptif

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

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih Mesh Optimization Center > Adaptive xds optimization.

  3. Nyalakan sakelar Enable adaptive xds optimization. Di kotak dialog Confirm, klik OK.

    Setelah Anda klik OK, pembaruan akan memerlukan waktu beberapa saat. Ketika sakelar Enable adaptive xds optimization dinyalakan, daftar namespace yang dapat dioptimalkan secara adaptif akan ditampilkan.

Langkah 2: Aktifkan pengoptimalan xds adaptif untuk sebuah namespace

Pengoptimalan xds adaptif berlaku untuk semua layanan di dalam namespace. Anda juga bisa menambahkan annotations asm.alibabacloud.com/asm-adaptive-xds: true pada layanan untuk mengaktifkan pengoptimalan xds adaptif hanya untuk layanan tersebut.

  1. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih Mesh Optimization Center > Adaptive xds optimization.

  2. Nyalakan sakelar di sebelah kanan namespace layanan target. Di kotak dialog Confirm, klik OK.

  3. Di halaman detail instance ASM, pilih Traffic Management Center > Sidecar Traffic Configuration di panel navigasi sebelah kiri.

  4. Di halaman Sidecar Traffic Configuration, lihat detail sumber daya Sidecar.

    Sumber daya Sidecar yang dimulai dengan axds terdaftar. Setiap sumber daya Sidecar sesuai dengan layanan di aplikasi Bookinfo.Sidecar资源

Langkah 3: Akses aplikasi untuk memicu pengoptimalan xds adaptif

  1. Dapatkan alamat IP dari gateway ingress.

  2. Akses aplikasi Bookinfo melalui:

# Ganti {IP address of the ingress gateway} dengan alamat IP yang didapat pada langkah sebelumnya.
http://{IP address of the ingress gateway}/productpage. 
  1. Lihat sumber daya Sidecar.

    1. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih Traffic Management Center > Sidecar Traffic Configuration.

    2. Di halaman Sidecar Traffic Configuration, klik View YAML di kolom Actions di sebelah kanan axds-productpage. Contoh berikut akan ditampilkan:

      apiVersion: networking.istio.io/v1beta1
      kind: Sidecar
      metadata:
        annotations:
          adapted-svc: productpage.default.svc.cluster.local
        creationTimestamp: '2024-01-05T07:52:56Z'
        generation: 4
        labels:
          asm-adaptive-xds-system: 'true'
          asm-system: 'true'
          provider: asm
        name: axds-productpage
        namespace: default
        resourceVersion: '23688435'
        uid: 753e3603-6bee-4dd1-b1fc-2e735a88****
      spec:
        egress:
          - hosts:
              - arms-prom/*
              - default/details.default.svc.cluster.local
              - default/kubernetes.default.svc.cluster.local
              - default/reviews.default.svc.cluster.local
              - istio-system/*
              - kube-system/*
        workloadSelector:
          labels:
            app: productpage

      Setelah mengakses Bookinfo, sumber daya Sidecar axds-productpage telah menambahkan details dan reviews yang productpage andalkan.

Perbandingan Kinerja

Tes berikut membandingkan kinerja bidang kontrol dan bidang data di mana namespace asm-perf belum mengaktifkan dan telah mengaktifkan optimalisasi push konfigurasi adaptif ketika ada banyak pembaruan konfigurasi.

  • Skala keluar beban kerja: Skala httpbin dari 2 menjadi 400 replika.

  • Mulai lalu lintas tes: Kirim permintaan secara acak dari aplikasi sleep ke berbagai aplikasi httpbin, memicu re-push pengoptimalan xds adaptif.

  • Mulai ulang beban kerja: Picu penyebaran ulang aplikasi httpbin, mensimulasikan skenario penskalaan dan pembaruan beban kerja.

Langkah 1: Persiapkan lingkungan

  1. Dapatkan skrip contoh.

    git clone https://github.com/AliyunContainerService/asm-labs.git && \
    
    cd asm-labs/asm-perf/adativexds
  2. Bangun lingkungan pengujian.

    bash run.sh -s

    Perintah ini akan membuat sumber daya berikut di dalam kluster:

    • Namespace asm-perf.

    • prometheus dan grafana untuk memantau beban kerja.

    • Aplikasi sleep dan 2 replika aplikasi httpbin untuk menerima push konfigurasi.

    Gunakan perintah berikut untuk port forwarding ke dashboard. Anda bisa mengakses dashboard dengan mengunjungi localhost:3000.

    kubectl port-forward svc/grafana -n asm-perf 3000

Langkah 2: Bandingkan kinerja

  1. Skala keluar beban kerja.

    bash run.sh -su

    Setelah beberapa saat, periksa dashboard. Hasil yang diharapkan adalah sebagai berikut:

    Pengoptimalan xds adaptif dinonaktifkan

    Penggunaan CPU aplikasi sleep

    image.png

    Penggunaan memori aplikasi sleep

    image.png

    Penggunaan bandwidth jaringan aplikasi sleep

    image.png

    Perubahan trafik bidang kontrol
    1. Di halaman Base Information instance mesh, catat ID CLB setelah CLB Instance for Exposing Istio Pilot.

    2. Masuk ke Konsol Classic Load Balancer CLB. Klik ikon kolom Monitoring untuk CLB yang sesuai, dan pilih Listener > Bandwidth/Traffic untuk melihat grafik.

      image.png

    Ketika layanan di dalam mesh berubah, bidang kontrol mendorong pembaruan konfigurasi, yang menurunkan kinerja.

    Pengoptimalan xds adaptif diaktifkan

    Penggunaan CPU aplikasi sleep

    image.png

    Penggunaan memori aplikasi sleep

    image.png

    Penggunaan bandwidth jaringan aplikasi sleep

    image.png

    Perubahan trafik bidang kontrol

    image.png

    Penurunan tidak lebih buruk dibandingkan ketika pengoptimalan xds adaptif dinonaktifkan.

    Lihat konfigurasi sumber daya Sidecar
    1. Lihat konfigurasi sumber daya Sidecar yang berlaku untuk aplikasi sleep.

      kubectl get sidecar axds-sleep -n asm-perf -o yaml

      Output yang diharapkan:

      apiVersion: networking.istio.io/v1
      kind: Sidecar
      metadata:
        annotations:
          adapted-svc: sleep.asm-perf.svc.cluster.local
        creationTimestamp: "2025-04-03T03:09:42Z"
        generation: 2
        labels:
          asm-adaptive-xds-system: "true"
          asm-system: "true"
          provider: asm
        name: axds-sleep
        namespace: asm-perf
        resourceVersion: "14844729886"
        uid: 31dfc081-b0ec-403f-b420-91f3c3e5f8fb
      spec:
        egress:
        - hosts:
          - arms-prom/*
          - asm-perf/grafana.asm-perf.svc.cluster.local
          - default/kubernetes.default.svc.cluster.local
          - istio-system/*
          - kube-system/*
        workloadSelector:
          labels:
            app: sleep

      Beberapa layanan berada di bawah spec.egress.hosts. Ini berarti bahwa hanya perubahan pada layanan di atas yang akan memicu pembaruan konfigurasi untuk aplikasi sleep. Lihat Efek Optimalisasi Push Konfigurasi Setelah Menerapkan Sumber Daya Sidecar untuk lebih lanjut.

  2. Mulai lalu lintas tes. Kirim total 100 permintaan secara acak dari aplikasi sleep ke berbagai aplikasi httpbin.

    bash run.sh -t

    Setelah permintaan selesai, periksa dashboard.

    Pengoptimalan xds adaptif dinonaktifkan

    Penggunaan CPU aplikasi sleep

    image.png

    Penggunaan memori aplikasi sleep

    image

    Penggunaan bandwidth jaringan aplikasi sleep

    image

    Perubahan trafik bidang kontrol

    image

    Memulai lalu lintas dari aplikasi sleep tidak memengaruhi pembaruan konfigurasi, karena setiap beban kerja memiliki konfigurasi lengkap.

    Pengoptimalan xds adaptif diaktifkan

    Penggunaan CPU aplikasi sleep

    image

    Penggunaan memori aplikasi sleep

    image

    Penggunaan bandwidth jaringan aplikasi sleep

    image

    Perubahan trafik bidang kontrol

    image.png

    Memulai lalu lintas dari aplikasi sleep memicu pembaruan konfigurasi dari bidang kontrol.

    Lihat konfigurasi sumber daya Sidecar
    1. Lihat konfigurasi sumber daya Sidecar yang berlaku untuk aplikasi sleep.

      kubectl get sidecar axds-sleep -n asm-perf -o yaml

      Output yang diharapkan:

      Perluas untuk melihat output yang diharapkan

      apiVersion: networking.istio.io/v1
      kind: Sidecar
      metadata:
        annotations:
          adapted-svc: sleep.asm-perf.svc.cluster.local
        creationTimestamp: "2025-04-03T05:26:00Z"
        generation: 90
        labels:
          asm-adaptive-xds-system: "true"
          asm-system: "true"
          provider: asm
        name: axds-sleep
        namespace: asm-perf
        resourceVersion: "14845598119"
        uid: a272cb0f-6e6a-492e-9ee1-b0d072813c19
      spec:
        egress:
        - hosts:
          - arms-prom/*
          - asm-perf/grafana.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v102.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v113.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v115.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v116.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v121.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v122.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v13.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v131.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v136.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v144.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v145.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v151.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v158.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v17.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v170.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v174.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v19.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v203.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v218.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v220.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v222.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v223.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v227.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v230.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v235.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v24.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v240.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v243.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v245.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v247.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v252.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v254.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v257.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v258.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v259.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v26.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v260.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v265.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v266.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v269.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v270.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v271.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v276.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v281.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v283.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v30.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v32.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v321.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v325.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v33.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v330.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v331.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v335.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v338.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v34.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v340.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v341.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v345.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v346.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v348.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v353.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v354.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v357.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v36.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v365.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v368.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v370.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v373.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v378.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v379.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v387.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v390.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v397.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v41.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v46.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v47.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v48.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v52.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v58.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v62.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v66.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v68.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v7.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v86.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v89.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v91.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v92.asm-perf.svc.cluster.local
          - asm-perf/httpbin-v94.asm-perf.svc.cluster.local
          - default/kubernetes.default.svc.cluster.local
          - istio-system/*
          - kube-system/*
        workloadSelector:
          labels:
            app: sleep

      Beberapa layanan berada di bawah spec.egress.hosts. Ini berarti bahwa hanya perubahan pada layanan di atas yang akan memicu re-push konfigurasi untuk aplikasi sleep. Lihat Efek Optimalisasi Push Konfigurasi Setelah Menerapkan Sumber Daya Sidecar untuk lebih lanjut.

  3. Mulai ulang beban kerja.

    bash run.sh -r

    Setelah semua beban kerja dimulai ulang, periksa perubahan trafik bidang kontrol.

    Pengoptimalan xds adaptif dinonaktifkan

    Perubahan trafik bidang kontrol

    image

    Ketika layanan di dalam mesh berubah, bidang kontrol mendorong pembaruan konfigurasi, yang menurunkan kinerja.

    Pengoptimalan xds adaptif diaktifkan

    Perubahan trafik bidang kontrol

    image

    Volume pembaruan konfigurasi secara signifikan berkurang dibandingkan ketika pengoptimalan xds adaptif dinonaktifkan.

  4. Pulihkan lingkungan pengujian.

    bash run.sh -sd

    Membutuhkan waktu sekitar 2 menit bagi pod aplikasi httpbin untuk menyusut dari 400 menjadi 2.

Tindakan lebih lanjut

Nonaktifkan fitur pengoptimalan xds adaptif

  1. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih Mesh Optimization Center > Adaptive xds optimization.

  2. Matikan sakelar di sebelah kanan namespace layanan target. Di kotak dialog Confirm, klik OK.

  3. Di panel navigasi sebelah kiri halaman detail service mesh, navigasikan ke Traffic Management Center > Sidecar Traffic Configuration.

    Sumber daya Sidecar yang dibuat oleh fitur pengoptimalan xds adaptif telah dihapus.

Ubah konfigurasi egress gateway

  1. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih Mesh Optimization Center > Adaptive xds optimization.

  2. Klik tab Egress Gateway Configuration, ubah konfigurasi sesuai kebutuhan, lalu klik Update Settings.

    Catatan

    ASM mendukung modifikasi pada konfigurasi egress gateway, termasuk mengubah pengaturan sumber daya, replika gateway, penskalaan HPA, dan pemantauan metrik HPA gateway.