Service Mesh ASM menyediakan kemampuan distribusi trafik lintas wilayah dan gagalover lintas wilayah untuk layanan aplikasi. Fitur distribusi trafik lintas wilayah mengarahkan trafik ke beberapa kluster sesuai dengan bobot yang ditentukan, mencapai load balancing multi-wilayah. Fitur gagalover lintas wilayah memindahkan trafik dari satu wilayah ke wilayah lain ketika layanan di wilayah tersebut gagal, menerapkan pemulihan bencana lintas wilayah. Topik ini menggunakan aplikasi Bookinfo untuk menunjukkan cara mengimplementasikan pemulihan bencana lintas wilayah dan load balancing trafik menggunakan kemampuan gagalover lintas wilayah dan distribusi trafik.
Konfigurasi jaringan
Konfigurasikan blok CIDR, nama, dan informasi lainnya untuk vSwitches, VPCs, dan kluster. Lihat Rencanakan blok CIDR untuk beberapa kluster pada data plane untuk informasi lebih lanjut. Berikut adalah contoh konfigurasi jaringan.
Konfigurasi jaringan vSwitches dan VPCs
VPC
Objek
Nama VPC
Wilayah
Blok CIDR IPv4
Kluster
vpc-hangzhou
cn-hangzhou
20.0.0.0/8
vpc-shanghai
cn-shanghai
21.0.0.0/8
Service Mesh
vpc-hangzhou2
cn-hangzhou
192.168.0.0/16
vSwitch
PentingUntuk menghindari konflik rute saat menghubungkan jaringan VPC menggunakan CEN, dua vSwitch tidak dapat menggunakan blok CIDR yang sama.
Objek
Nama vSwitch
VPC
Blok CIDR IPv4
Kluster
vpc-hangzhou-switch-1
vpc-hangzhou
20.0.0.0/16
vpc-shanghai-switch-1
vpc-shanghai
21.0.0.0/16
Service Mesh
vpc-hangzhou-switch-2
vpc-hangzhou2
192.168.0.0/24
Konfigurasi jaringan Pod dan Service untuk kluster
Nama kluster
Wilayah
VPC
Pod CIDR
CIDR Service
ack-hangzhou
cn-hangzhou
vpc-hangzhou
10.0.0.0/16
172.16.0.0/16
ack-shanghai
cn-shanghai
vpc-shanghai
10.1.0.0/16
172.17.0.0/16
Langkah 1: Buat kluster di wilayah berbeda
Buat VPC dan vSwitch di wilayah Hangzhou dan Shanghai sesuai dengan konfigurasi di atas. Untuk informasi lebih lanjut, lihat Buat vSwitch dan Buat VPC dan vSwitch.
Gunakan VPC yang Anda buat untuk membuat kluster di wilayah Hangzhou dan Shanghai. Untuk informasi lebih lanjut, lihat Buat kluster terkelola ACK.
Buat instance ASM di wilayah Hangzhou sesuai dengan konfigurasi di atas. Untuk informasi lebih lanjut, lihat Buat instance ASM.
Langkah 2: Gunakan CEN untuk mengimplementasikan konektivitas jaringan VPC lintas wilayah
Gunakan CEN untuk menghubungkan jaringan VPC antar kluster, bersama dengan jaringan VPC antara kluster dan Service Mesh.
Masuk ke Konsol Cloud Enterprise Network (CEN), dan buat instance CEN. Untuk informasi lebih lanjut, lihat Buat instance CEN.
Buat transit router.
Pada halaman CEN Instances, klik nama instance CEN yang dibuat di Langkah 1, lalu di bawah tab Basic Information, klik Create Transit Router.
Pilih Region, masukkan Name, lalu klik OK.
Dalam contoh ini, dua transit router dikonfigurasi:
Region: China (Shanghai); Name: shanghai-router.
Region: China (Hangzhou); Name: hangzhou-router.
Tambahkan VPC ke kedua transit router dengan mengulangi langkah-langkah berikut:
Klik ID transit router.
Pilih tab Intra-region Connections, lalu klik Create Connection.
Untuk Instance Type, pilih Virtual Private Cloud (VPC), dan untuk Network Instance, pilih instance VPC yang sesuai dengan wilayah.
Biarkan opsi lainnya sebagai default, lalu klik OK.
Konfigurasikan bandwidth untuk komunikasi lintas wilayah.
Klik nama transit router yang Anda buat di Langkah 2, lalu klik Create Connection di sebelah kanan halaman.
Di kotak dialog Connection With Peer Network Instance, konfigurasikan parameter terkait, lalu klik OK.
Gambar berikut menunjukkan contoh koneksi dari Hangzhou ke Shanghai. Region mewakili wilayah transit router, dan Peer Region mewakili wilayah tujuan. Untuk informasi tentang item konfigurasi, lihat koneksi lintas wilayah.

Setelah pembuatan selesai, Anda dapat melihat instance pada tab Inter-region Connections.
Tambahkan aturan grup keamanan.
Contoh berikut menggunakan plugin jaringan Flannel untuk menambahkan CIDR jaringan Pod kluster peer ke grup keamanan setiap kluster.
CatatanUntuk plugin jaringan Terway, gunakan CIDR kluster vSwitch. Anda dapat masuk ke Konsol VPC, dan mendapatkan CIDR vSwitch dari kolom IPv4 CIDR Block pada halaman VSwitch.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Dapatkan CIDR jaringan Pod.
Pada halaman Clusters, pilih wilayah Shanghai, klik nama kluster ack-shanghai, lalu pada halaman Cluster Information, klik tab Basic Information untuk melihat blok CIDR Pod kluster ack-shanghai.
Kembali ke halaman Clusters, pilih wilayah Hangzhou, klik nama kluster ack-hangzhou, lalu pada halaman Cluster Information, klik tab Basic Information untuk mendapatkan blok CIDR Pod kluster ack-hangzhou.
Konfigurasikan grup keamanan.
Pada halaman Cluster Information setiap kluster, klik tab Basic Information, lalu klik ID grup keamanan di sebelah kanan Control Plane Security Group.
Klik Add Rule di bawah tab Inbound.
Atur Protocol Type ke All, Source ke blok CIDR Pod kluster peer, biarkan nilai default lainnya, lalu klik Save di kolom Actions.
Masuk ke node kedua kluster dan gunakan perintah ping untuk menguji apakah jaringan terhubung ke kluster lain. Untuk informasi lebih lanjut, lihat Masuk ke node.
Langkah 3: Tambahkan kluster ke instance ASM dan buat gateway ingress terkelola
Tambahkan kluster dari wilayah Hangzhou dan Shanghai ke instance ASM. Untuk informasi lebih lanjut, lihat Tambahkan kluster ke instance ASM.
Buat gateway ingress.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: annotations: asm.alibabacloud.com/managed-by-asm: 'true' name: ingressgateway namespace: istio-system spec: gatewayType: ingress dnsPolicy: ClusterFirst externalTrafficPolicy: Local hostNetwork: false ports: - name: http port: 80 protocol: TCP targetPort: 80 - name: https port: 443 protocol: TCP targetPort: 443 replicaCount: 1 resources: limits: cpu: '2' memory: 2G requests: cpu: 200m memory: 256Mi rollingMaxSurge: 100% rollingMaxUnavailable: 25% runAsRoot: true serviceType: LoadBalancer
Langkah 4: Sebarkan aplikasi demo Bookinfo
Langkah-langkah berikut melibatkan penggantian kubeconfig beberapa kali. Kami sarankan Anda mengonfigurasi kubeconfig kedua kluster dalam file config yang sama dan menggunakan kubectl config use-context untuk beralih di antara mereka. Anda juga dapat menggunakan kubecm atau kubectx untuk mengelola kubeconfig untuk beberapa kluster.
Sebarkan aplikasi Bookinfo di kluster ack-hangzhou dan ack-shanghai.
kubectl apply -f bookinfo.yamlGunakan kubectl untuk terhubung ke instance ASM dan buat aturan routing.
Buat asm.yaml dengan konten berikut.
Buat aturan routing.
kubectl apply -f asm.yaml
Verifikasi bahwa aplikasi Bookinfo berhasil diterapkan.
Di bilah alamat browser Anda, masukkan http://{Alamat IP gateway ingress}/productpage dan segarkan halaman 10 kali untuk mengakses aplikasi Bookinfo.
Aplikasi Bookinfo mengakses versi v1, v2, dan v3 layanan reviews. Anda dapat melihat bahwa rasio permintaan ke tiga versi layanan reviews mendekati 1:1:1.

Langkah 5: Gunakan gagalover lintas wilayah dan distribusi trafik lintas wilayah
Konfigurasikan gagalover lintas wilayah
Nonaktifkan layanan review di kluster ack-hangzhou.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel sebelah kiri, pilih .
Pada halaman Deployments, atur Namespace ke default, dan klik Scale di kolom Actions.
Atur Desired Number Of Pods ke 0, lalu klik OK.
Konfigurasikan aturan tujuan.
Konfigurasikan aturan tujuan sehingga ketika layanan review tidak dapat diakses dalam 1 detik, itu akan dieject selama 1 menit.
Pada halaman detail instance ASM, pilih di panel navigasi sebelah kiri.
Klik Edit YAML di kolom Actions dari reviews.
Tambahkan konten berikut, lalu klik OK.
spec: ...... trafficPolicy: connectionPool: http: maxRequestsPerConnection: 1 outlierDetection: baseEjectionTime: 1m consecutive5xxErrors: 1 interval: 1smaxRequestsPerConnection: jumlah maksimum koneksi.
baseEjectionTime: durasi eject minimum.
consecutive5xxErrors: jumlah kesalahan berturut-turut.
interval: interval waktu untuk deteksi eject.
Aktifkan gagalover lintas wilayah.
Pada halaman detail instance ASM, pilih di panel navigasi sebelah kiri.
Untuk versi instance ASM di bawah 1.22.6.66
Pada halaman Base Information, klik Configure a Geolocation-based Load Balancing di sebelah kanan Geolocation-based Load Balancing.
Di kotak dialog Geolocation-based Failover, atur Failover to cn-hangzhou ketika Policy berasal dari cn-shanghai, dan atur Failover to cn-shanghai ketika Policy berasal dari cn-hangzhou, lalu klik Confirm.
Untuk versi instance ASM 1.22.6.66 dan di atasnya
Pada halaman Base Information, klik Configure a Geolocation-based Load Balancing di sebelah kanan Geolocation-based Load Balancing.
Klik Specify priority rules for regions. Atur Region in which the failure occurs ke
cn-shanghai, dan The region to which the traffic is preferentially routed kecn-hangzhou.Klik Add, lalu atur Region in which the failure occurs ke
cn-hangzhou, The region to which the traffic is preferentially routed kecn-shanghai, dan klik Save Configuration.
Jalankan perintah berikut untuk meminta aplikasi Bookinfo 10 kali dan hitung jumlah hasil yang dirutekan ke versi v2 layanan reviews.
for ((i=1;i<=10;i++));do curl http://<Port 80 dari Alamat IP gateway ingress di kluster ack-hangzhou>/productpage 2>&1|grep full.stars;done|wc -lOutput yang diharapkan:
20Output menunjukkan bahwa 10 permintaan akses dibuat dan 20 baris hasil dikembalikan (setiap kali permintaan dirutekan ke versi v2 layanan reviews, dua baris yang berisi
full starsdikembalikan). Ini menunjukkan bahwa semua 10 permintaan dirutekan ke versi v2 layanan reviews di kluster ack-shanghai, dan gagalover lintas wilayah berhasil.
Konfigurasikan distribusi trafik lintas wilayah
Kemampuan distribusi trafik lintas wilayah hanya didukung untuk instance dengan versi ≥1.22.6.66.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Pada halaman Base Information, klik Configure a Geolocation-based Load Balancing di sebelah kanan Geolocation-based Load Balancing.
Klik Congifure a traffic distribution rule, atur Source ke
cn-hangzhou, Destination kecn-shanghai, Traffic Percentage ke 10%, dan klik Save Configuration.CatatanLoad balancing berbasis lokasi geografis diaktifkan dalam mode gagalover secara default. Anda perlu klik Disable di pojok kanan atas halaman sebelum Anda dapat memilih ulang dan mengaktifkan mode distribusi trafik.
Jalankan perintah berikut untuk meminta aplikasi Bookinfo 10 kali untuk memverifikasi apakah distribusi trafik lintas wilayah berhasil.
for ((i=1;i<=10;i++));do curl http://<Port 80 dari Alamat IP gateway ingress di kluster ack-hangzhou>/productpage 2>&1|grep full.stars;doneOutput yang diharapkan:
<!-- full stars: --> <!-- full stars: -->Output menunjukkan bahwa setelah 10 akses, 2 baris
full starsditampilkan, menunjukkan bahwa dari 10 permintaan, 9 dirutekan ke versi v1 layanan reviews di kluster ack-hangzhou, dan 1 dirutekan ke versi v2 layanan reviews di kluster ack-shanghai. Ini mengonfirmasi bahwa trafik berhasil dirutekan ke beberapa kluster sesuai dengan bobot yang dikonfigurasi.
FAQ
Mengapa penambahan kluster Kubernetes ke ASM gagal meskipun saya telah menghubungkan jaringan VPC kluster melalui CEN?
Ketika kluster Anda berada di wilayah berbeda, jika Anda belum membeli paket transfer data lintas wilayah atau belum mengonfigurasi trafik lintas wilayah dengan benar saat menghubungkan jaringan VPC kluster, control plane ASM tidak akan dapat terhubung ke kluster data plane, mengakibatkan kegagalan menambahkan kluster ke ASM.
Untuk menyelesaikan masalah ini, Anda perlu mengonfigurasi ulang pengaturan trafik lintas wilayah di Cloud Enterprise Network (CEN) untuk menghubungkan jaringan VPC kluster. Untuk informasi lebih lanjut, lihat Langkah 2: Gunakan CEN untuk mengimplementasikan komunikasi VPC lintas wilayah.