All Products
Search
Document Center

Alibaba Cloud Service Mesh:Meningkatkan efisiensi push lapisan kontrol dengan optimasi xds adaptif

Last Updated:Jun 21, 2026

Jika lapisan kontrol Anda melakukan push volume besar konfigurasi yang tidak relevan secara tidak efisien, gunakan fitur optimasi xds adaptif untuk meningkatkan efisiensi push. Fitur ini menganalisis hubungan pemanggilan layanan untuk secara otomatis menghasilkan resource sidecar yang dioptimalkan, lalu hanya melakukan push konfigurasi yang diperlukan ke layanan yang membutuhkannya—sehingga mengurangi komunikasi jaringan serta meningkatkan kinerja dan responsivitas service mesh Anda.

Penting
  • Untuk mengaktifkan optimasi xds adaptif, instans ASM Anda harus menggunakan versi 1.15.3.63 atau lebih baru. Untuk informasi selengkapnya tentang cara melakukan upgrade instans, lihat Upgrade an ASM instance.

  • Fitur optimasi xds adaptif hanya mendukung layanan yang menggunakan protokol HTTP.

Informasi latar belakang

Secara default, service mesh tidak dapat menentukan dependensi pemanggilan antarlayanan. Oleh karena itu, konfigurasi sidecar menyimpan informasi tentang semua layanan di bidang data. Setiap perubahan pada lapisan kontrol atau bidang data—seperti pembuatan aturan virtual service baru di lapisan kontrol—menyebabkan lapisan kontrol melakukan push konfigurasi baru ke semua sidecar di bidang data.

Untuk mengatasi hal ini, aktifkan fitur optimasi xds adaptif agar secara otomatis membuat resource sidecar yang mengoptimalkan push konfigurasi. Setelah Anda mengaktifkan fitur ini, sebuah gerbang keluar (egress gateway) bernama istio-axds-egressgateway diterapkan di kluster. Seluruh trafik HTTP awal diarahkan ke gerbang keluar ini, yang secara otomatis menganalisis dependensi layanan berdasarkan log akses. Proses ini sepenuhnya otomatis. Untuk informasi selengkapnya tentang efek optimasi penerapan resource sidecar, lihat Configuration push optimization with sidecar resources.

Prasyarat

Langkah 1: Aktifkan optimasi xds adaptif

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

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

  3. Pada halaman Adaptive xds optimization, aktifkan sakelar Enable adaptive xds optimization. Pada kotak dialog Confirm, klik OK.

    Setelah Anda mengklik OK, status Updating akan ditampilkan di bawah sakelar Enable adaptive xds optimization. Setelah pembaruan selesai, sakelar Enable adaptive xds optimization akan aktif dan daftar namespace yang dapat dioptimalkan secara adaptif akan ditampilkan di bawahnya.

Langkah 2: Aktifkan optimasi namespace

Saat Anda mengaktifkan optimasi xds adaptif untuk suatu namespace, fitur ini secara otomatis mengoptimalkan semua layanan di dalamnya menggunakan resource sidecar. Atau, Anda dapat mengaktifkan fitur ini untuk layanan tertentu dengan menambahkan anotasi asm.alibabacloud.com/asm-adaptive-xds: true ke bagian annotations layanan tersebut.

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

  2. Pada halaman Adaptive xds optimization, pada daftar Select namespaces to be optimized, aktifkan sakelar di samping namespace layanan target. Contoh ini menggunakan namespace default. Pada kotak dialog Confirm, klik OK.

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

  4. Pada halaman Sidecar Traffic Configuration, lihat detail resource sidecar.

    Anda dapat melihat resource sidecar yang dibuat secara otomatis dengan nama yang diawali dengan axds. Setiap resource sidecar sesuai dengan satu layanan dalam aplikasi Bookinfo yang telah Anda terapkan sebagai bagian dari prasyarat. Halaman ini menampilkan empat resource sidecar: axds-details (cakupan app:details), axds-productpage (cakupan app:productpage), axds-ratings (cakupan app:ratings), dan axds-reviews (cakupan app:reviews). Sumber (Source) semua resource adalah System, dan Namespace-nya adalah default.

Langkah 3: Picu optimasi

  1. Dapatkan alamat IP gerbang masuk (ingress gateway).

  2. Pada bilah alamat browser Anda, masukkan http://{IP address of the ingress gateway}/productpage untuk mengakses aplikasi Bookinfo.

    Ganti {IP address of the ingress gateway} dengan alamat IP yang Anda peroleh pada langkah sebelumnya.

  3. Verifikasi resource sidecar yang telah dioptimalkan secara adaptif.

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

    2. Pada halaman Sidecar Traffic Configuration, temukan resource axds-productpage dan klik View YAML pada kolom Actions. Berikut contohnya.

      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

      Anda dapat melihat bahwa setelah mengakses aplikasi Bookinfo, resource Sidecar axds-productpage yang dihasilkan untuk mengoptimalkan layanan productpage telah secara otomatis menambahkan layanan details dan reviews yang menjadi dependensi layanan productpage, tanpa memerlukan konfigurasi manual.

Optimasi xds adaptif: perbandingan kinerja

Pengujian berikut membandingkan kinerja lapisan kontrol dan bidang data di namespace asm-perf dalam dua skenario: dengan optimasi xds adaptif dinonaktifkan dan dengan fitur tersebut diaktifkan.

  • Perbesar workload: Perbesar deployment httpbin dari 2 menjadi 400 replika.

  • Kirimkan traffic pengujian: Kirim permintaan acak dari aplikasi sleep ke berbagai aplikasi httpbin untuk memicu push konfigurasi adaptif baru.

  • Mulai ulang workload: Picu redeployment aplikasi httpbin untuk mensimulasikan skenario penskalaan dan pembaruan workload.

Langkah 1: Siapkan lingkungan

  1. Clone repositori skrip contoh.

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

    bash run.sh -s

    Perintah ini membuat resource berikut di kluster Anda:

    • Namespace asm-perf.

    • Workload prometheus dan grafana untuk pemantauan.

    • Satu aplikasi sleep dan satu aplikasi httpbin dengan dua replika untuk menerima push konfigurasi.

    Jalankan perintah berikut untuk meneruskan port ke dasbor pemantauan. Anda kemudian dapat mengakses dasbor tersebut melalui localhost:3000.

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

Langkah 2: Bandingkan kinerja

  1. Lakukan scale out pada beban kerja.

    bash run.sh -su

    Tunggu sebentar lalu periksa dasbor. Hasil berikut diharapkan:

    Tanpa optimasi xds adaptif

    Penggunaan CPU aplikasi Sleep

    image.png

    Penggunaan memori aplikasi Sleep

    image.png

    Lebar pita jaringan aplikasi Sleep

    image.png

    Trafik lapisan kontrol
    1. Pada halaman Base Information instans ASM, catat ID CLB yang terkait dengan CLB Instance for Exposing Istio Pilot.

    2. Masuk ke Classic Load Balancer (CLB) console. Klik ikon Monitoring untuk CLB yang sesuai, pilih Listener > Bandwidth/Traffic, lalu lihat grafik Listener Traffic.

      image.png

    Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu.

    Dengan optimasi xds adaptif

    Penggunaan CPU aplikasi Sleep

    image.png

    Penggunaan memori aplikasi Sleep

    image.png

    Lebar pita jaringan aplikasi Sleep

    image.png

    Trafik lapisan kontrol

    image.png

    Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu. Namun, dampak terhadap kinerja lebih rendah dibandingkan skenario tanpa optimasi xds adaptif.

    Konfigurasi resource sidecar
    1. Lihat konfigurasi resource sidecar aktif 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

      Bidang spec.egress.hosts mencantumkan beberapa layanan. Artinya, hanya perubahan pada layanan-layanan yang tercantum ini yang akan memicu push ulang konfigurasi ke aplikasi sleep. Untuk informasi selengkapnya tentang dampak kinerja resource sidecar, lihat Configuration push optimization with sidecar resources.

  2. Kirimkan traffic pengujian. Kirim total 100 permintaan acak dari aplikasi sleep ke berbagai aplikasi httpbin.

    bash run.sh -t

    Setelah permintaan selesai, periksa kembali dasbor.

    Tanpa optimasi xds adaptif

    Penggunaan CPU aplikasi Sleep

    image.png

    Penggunaan memori aplikasi Sleep

    image

    Lebar pita jaringan aplikasi Sleep

    image

    Trafik lapisan kontrol

    image

    Saat optimasi xds adaptif dinonaktifkan, pengiriman traffic dari aplikasi sleep tidak memengaruhi pengiriman konfigurasi karena setiap workload sudah memiliki konfigurasi lengkap.

    Dengan optimasi xds adaptif

    Penggunaan CPU aplikasi Sleep

    image

    Penggunaan memori aplikasi Sleep

    image

    Lebar pita jaringan aplikasi Sleep

    image

    Trafik lapisan kontrol

    image.png

    Pengiriman traffic dari aplikasi sleep memicu push konfigurasi dari lapisan kontrol.

    Konfigurasi resource sidecar
    1. Lihat konfigurasi resource sidecar aktif untuk aplikasi sleep.

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

      Output yang diharapkan:

      Expected output

      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

      Bidang spec.egress.hosts mencantumkan beberapa layanan. Artinya, hanya perubahan pada layanan-layanan yang tercantum ini yang akan memicu push ulang konfigurasi ke aplikasi sleep. Untuk informasi selengkapnya tentang dampak kinerja resource sidecar, lihat Configuration push optimization with sidecar resources.

  3. Mulai ulang workload.

    bash run.sh -r

    Setelah semua workload dimulai ulang, periksa perubahan trafik lapisan kontrol.

    Tanpa optimasi xds adaptif

    Trafik lapisan kontrol

    image

    Saat layanan di mesh berubah, lapisan kontrol melakukan push konfigurasi baru, yang menimbulkan overhead kinerja tertentu.

    Dengan optimasi xds adaptif

    Trafik lapisan kontrol

    image

    Saat melakukan restart workload, volume push konfigurasi berkurang secara signifikan dibandingkan skenario tanpa optimasi xds adaptif.

  4. Kembalikan lingkungan pengujian.

    bash run.sh -sd

    Dibutuhkan sekitar dua menit bagi Pod aplikasi httpbin untuk berkurang dari 400 menjadi 2, sehingga mengembalikan lingkungan ke kondisi awal.

Operasi terkait

Nonaktifkan optimasi xds adaptif

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

  2. Pada halaman Adaptive xds optimization, nonaktifkan sakelar Enable adaptive xds optimization. Pada kotak dialog Confirm, klik OK.

    Setelah Anda mengklik OK, status Updating akan ditampilkan di bawah sakelar Enable adaptive xds optimization. Setelah pembaruan selesai, sakelar Enable adaptive xds optimization akan dinonaktifkan.

  3. Pada halaman detail instans, di panel navigasi sebelah kiri, pilih Traffic Management Center > Sidecar Traffic Configuration.

    Resource sidecar yang dibuat oleh fitur optimasi xds adaptif kini telah dihapus.

Ubah konfigurasi gerbang keluar (egress gateway)

Mengaktifkan optimasi xds adaptif akan menerapkan gerbang keluar bernama istio-axds-egressgateway ke kluster ACK Anda. Gerbang ini terlihat pada halaman Network > Services kluster target Anda di Konsol ACK. Seluruh trafik HTTP awal diarahkan ke gerbang keluar ini, yang secara otomatis menganalisis dependensi layanan dari log aksesnya. Anda dapat mengubah konfigurasi gerbang keluar untuk menangani beban lalu lintas yang berbeda sesuai kebutuhan.

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

  2. Pada halaman Adaptive xds optimization, klik tab Egress Gateway Configuration. Ubah konfigurasi gerbang keluar sesuai kebutuhan, lalu klik Update Settings.

    Setelah Anda mengklik Update Settings, service mesh akan memasuki status pembaruan singkat. Setelah pembaruan selesai, gerbang keluar akan diperbarui dengan konfigurasi yang ditentukan.

    Catatan

    ASM memungkinkan Anda mengubah pengaturan resource gerbang keluar, jumlah replika gerbang, status auto-scaling HPA, ambang batas pemantauan metrik HPA, serta jumlah replika HPA maksimum dan minimum.