Gunakan fitur pengoptimalan xds adaptif untuk meningkatkan kinerja Service Mesh.
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
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
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.
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Nyalakan sakelar di sebelah kanan namespace layanan target. Di kotak dialog Confirm, klik OK.
Di halaman detail instance ASM, pilih di panel navigasi sebelah kiri.
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.

Langkah 3: Akses aplikasi untuk memicu pengoptimalan xds adaptif
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. Lihat sumber daya Sidecar.
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
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: productpageSetelah mengakses Bookinfo, sumber daya Sidecar
axds-productpagetelah menambahkandetailsdanreviewsyangproductpageandalkan.
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
httpbindari 2 menjadi 400 replika.Mulai lalu lintas tes: Kirim permintaan secara acak dari aplikasi
sleepke berbagai aplikasihttpbin, 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
Dapatkan skrip contoh.
git clone https://github.com/AliyunContainerService/asm-labs.git && \ cd asm-labs/asm-perf/adativexdsBangun lingkungan pengujian.
bash run.sh -sPerintah ini akan membuat sumber daya berikut di dalam kluster:
Namespace
asm-perf.prometheusdangrafanauntuk memantau beban kerja.Aplikasi
sleepdan 2 replika aplikasihttpbinuntuk 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
Skala keluar beban kerja.
bash run.sh -suSetelah beberapa saat, periksa dashboard. Hasil yang diharapkan adalah sebagai berikut:
Pengoptimalan xds adaptif dinonaktifkan
Penggunaan CPU aplikasi sleep

Penggunaan memori aplikasi sleep

Penggunaan bandwidth jaringan aplikasi sleep

Perubahan trafik bidang kontrol
Di halaman Base Information instance mesh, catat ID CLB setelah CLB Instance for Exposing Istio Pilot.
Masuk ke Konsol Classic Load Balancer CLB. Klik ikon kolom Monitoring untuk CLB yang sesuai, dan pilih untuk melihat grafik.

Ketika layanan di dalam mesh berubah, bidang kontrol mendorong pembaruan konfigurasi, yang menurunkan kinerja.
Pengoptimalan xds adaptif diaktifkan
Penggunaan CPU aplikasi sleep

Penggunaan memori aplikasi sleep

Penggunaan bandwidth jaringan aplikasi sleep

Perubahan trafik bidang kontrol

Penurunan tidak lebih buruk dibandingkan ketika pengoptimalan xds adaptif dinonaktifkan.
Lihat konfigurasi sumber daya Sidecar
Lihat konfigurasi sumber daya Sidecar yang berlaku untuk aplikasi
sleep.kubectl get sidecar axds-sleep -n asm-perf -o yamlOutput 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: sleepBeberapa layanan berada di bawah
spec.egress.hosts. Ini berarti bahwa hanya perubahan pada layanan di atas yang akan memicu pembaruan konfigurasi untuk aplikasisleep. Lihat Efek Optimalisasi Push Konfigurasi Setelah Menerapkan Sumber Daya Sidecar untuk lebih lanjut.
Mulai lalu lintas tes. Kirim total 100 permintaan secara acak dari aplikasi
sleepke berbagai aplikasihttpbin.bash run.sh -tSetelah permintaan selesai, periksa dashboard.
Pengoptimalan xds adaptif dinonaktifkan
Penggunaan CPU aplikasi sleep

Penggunaan memori aplikasi sleep

Penggunaan bandwidth jaringan aplikasi sleep

Perubahan trafik bidang kontrol

Memulai lalu lintas dari aplikasi
sleeptidak memengaruhi pembaruan konfigurasi, karena setiap beban kerja memiliki konfigurasi lengkap.Pengoptimalan xds adaptif diaktifkan
Penggunaan CPU aplikasi sleep

Penggunaan memori aplikasi sleep

Penggunaan bandwidth jaringan aplikasi sleep

Perubahan trafik bidang kontrol

Memulai lalu lintas dari aplikasi
sleepmemicu pembaruan konfigurasi dari bidang kontrol.Lihat konfigurasi sumber daya Sidecar
Lihat konfigurasi sumber daya Sidecar yang berlaku untuk aplikasi
sleep.kubectl get sidecar axds-sleep -n asm-perf -o yamlOutput yang diharapkan:
Beberapa layanan berada di bawah
spec.egress.hosts. Ini berarti bahwa hanya perubahan pada layanan di atas yang akan memicu re-push konfigurasi untuk aplikasisleep. Lihat Efek Optimalisasi Push Konfigurasi Setelah Menerapkan Sumber Daya Sidecar untuk lebih lanjut.
Mulai ulang beban kerja.
bash run.sh -rSetelah semua beban kerja dimulai ulang, periksa perubahan trafik bidang kontrol.
Pengoptimalan xds adaptif dinonaktifkan
Perubahan trafik bidang kontrol

Ketika layanan di dalam mesh berubah, bidang kontrol mendorong pembaruan konfigurasi, yang menurunkan kinerja.
Pengoptimalan xds adaptif diaktifkan
Perubahan trafik bidang kontrol

Volume pembaruan konfigurasi secara signifikan berkurang dibandingkan ketika pengoptimalan xds adaptif dinonaktifkan.
Pulihkan lingkungan pengujian.
bash run.sh -sdMembutuhkan waktu sekitar 2 menit bagi pod aplikasi
httpbinuntuk menyusut dari 400 menjadi 2.
Tindakan lebih lanjut
Nonaktifkan fitur pengoptimalan xds adaptif
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Matikan sakelar di sebelah kanan namespace layanan target. Di kotak dialog Confirm, klik OK.
Di panel navigasi sebelah kiri halaman detail service mesh, navigasikan ke .
Sumber daya Sidecar yang dibuat oleh fitur pengoptimalan xds adaptif telah dihapus.
Ubah konfigurasi egress gateway
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Klik tab Egress Gateway Configuration, ubah konfigurasi sesuai kebutuhan, lalu klik Update Settings.
CatatanASM mendukung modifikasi pada konfigurasi egress gateway, termasuk mengubah pengaturan sumber daya, replika gateway, penskalaan HPA, dan pemantauan metrik HPA gateway.