Service Mesh ASM menyediakan kemampuan distribusi traffic lintas wilayah dan failover lintas wilayah untuk layanan aplikasi. Distribusi traffic lintas wilayah mengarahkan traffic ke beberapa kluster berdasarkan bobot yang dikonfigurasi, sehingga memungkinkan load balancing multi-wilayah. Failover lintas wilayah mengalihkan traffic dari wilayah yang gagal ke wilayah lain, mencapai pemulihan bencana lintas wilayah. Dengan menggunakan aplikasi Bookinfo sebagai contoh, topik ini menjelaskan cara menerapkan pemulihan bencana dan load balancing lintas wilayah melalui failover dan distribusi traffic lintas wilayah.
Perencanaan jaringan
Sebelum memulai, rencanakan Blok CIDR, nama, dan detail lainnya untuk vSwitch, VPC, serta kluster Anda. Topik ini menggunakan rencana berikut:
Untuk informasi lebih lanjut tentang perencanaan alamat multi-kluster untuk bidang data, lihat Perencanaan jaringan multi-kluster.
-
Perencanaan jaringan vSwitch dan VPC
-
Perencanaan jaringan 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
-
Perencanaan jaringan vSwitch
PentingUntuk menghindari konflik rute setelah menghubungkan VPC menggunakan CEN, pastikan kedua vSwitch tidak menggunakan blok CIDR yang tumpang tindih.
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
-
-
Perencanaan jaringan Pod dan Service untuk kluster
Nama kluster
Wilayah
VPC
Pod CIDR
Service CIDR
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 China (Hangzhou) dan China (Shanghai) sesuai rencana sebelumnya. Untuk informasi lebih lanjut, lihat Buat vSwitch dan Buat VPC dan vSwitch.
-
Buat kluster di wilayah China (Hangzhou) dan China (Shanghai) menggunakan VPC dan rencana jaringan yang telah dijelaskan sebelumnya. Untuk informasi lebih lanjut, lihat Buat kluster ACK yang dikelola.
-
Buat instans ASM di wilayah China (Hangzhou) sesuai rencana sebelumnya. Untuk informasi lebih lanjut, lihat Buat instans ASM.
Langkah 2: Gunakan CEN untuk menghubungkan VPC lintas wilayah
Gunakan CEN untuk menghubungkan jaringan VPC antar kluster dan antara kluster dengan Service Mesh.
-
Login ke Konsol Cloud Enterprise Network dan buat instans CEN. Untuk informasi lebih lanjut, lihat Buat instans Cloud Enterprise Network.
-
Buat router transit.
-
Pada halaman Instans Cloud Enterprise Network, klik instans CEN yang dibuat di Langkah 1. Lalu, pada tab Informasi Dasar, klik Create Transit Router.
-
Pada kotak dialog Create Transit Router, pilih Region, masukkan Name, lalu klik Confirm.
Contoh ini membuat dua router transit:
-
Region: China (Shanghai), Name: shanghai-router.
-
Region: China (Hangzhou), Name: hangzhou-router.
-
-
Tambahkan VPC ke router transit. Ulangi langkah-langkah berikut untuk router transit Shanghai dan Hangzhou agar menghubungkan VPC masing-masing wilayah.
-
Pada halaman Instans Cloud Enterprise Network, klik instans CEN yang dibuat di Langkah 1. Lalu, pada tab Informasi Dasar, klik ID router transit yang baru dibuat untuk membuka halaman detailnya.
-
Klik tab Intra-region Connections, lalu klik Create Network Instance Connection. Atur Instance Type menjadi Virtual Private Cloud (VPC), dan pilih instans VPC yang sesuai dengan wilayah untuk Network Instance.
-
Biarkan pengaturan lain tetap pada nilai default dan klik Create.
-
-
Konfigurasikan bandwidth lintas wilayah.
-
Klik router transit yang dibuat di Langkah 2. Di sisi kanan halaman, klik Create Network Instance Connection.
-
Pada kotak dialog Connect Network Instance, konfigurasikan pengaturan dan klik Create.
Contoh berikut menunjukkan konfigurasi dari Hangzhou ke Shanghai. Region mengacu pada wilayah saat ini, dan Peer Region mengacu pada wilayah tujuan. Untuk informasi lebih lanjut tentang opsi konfigurasi, lihat Inter-region connection. Konfigurasikan pengaturan berikut: atur Instance Type menjadi Inter-region Connection, Region menjadi China (Hangzhou), Connection Name menjadi
to-shanghai, Peer Region menjadi China (Shanghai), Bandwidth Allocation Method menjadi Pay-by-Data-Transfer, dan Bandwidth menjadi1Mbps. Perluas Advanced Configuration dan centang kotak berikut: Automatically Associate with Default Route Table of Transit Router, Automatically Propagate System Routes to Default Route Table of Transit Router, dan Automatically Publish Routes to Peer Region.Setelah pembuatan, Anda dapat melihat instans baru pada tab Inter-region Connections.
-
-
Tambahkan aturan grup keamanan.
Contoh berikut menggunakan plug-in jaringan Flannel. Tambahkan blok CIDR Pod dari kluster peer ke grup keamanan masing-masing kluster.
CatatanJika Anda menggunakan plug-in jaringan Terway, gunakan blok CIDR vSwitch kluster. Anda dapat login ke Konsol VPC dan temukan blok CIDR vSwitch pada halaman vSwitch di kolom IPv4 CIDR.
-
Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Dapatkan blok CIDR Pod.
-
Pada halaman Clusters, pilih wilayah China (Shanghai), klik nama kluster ack-shanghai, lalu pada halaman Cluster Information, buka tab Basic Information untuk mendapatkan blok CIDR Pod kluster ack-shanghai.
-
Kembali ke halaman Clusters, pilih wilayah China (Hangzhou), klik nama kluster ack-hangzhou, lalu pada halaman Cluster Information, buka tab Basic Information untuk mendapatkan blok CIDR Pod kluster ack-hangzhou.
-
-
Konfigurasikan grup keamanan.
-
Pada halaman Cluster Information untuk setiap kluster, buka tab Basic Information dan klik ID grup keamanan di samping Control Plane Security Group.
-
Pada tab Security Group Details, di bawah Inbound, klik Add Rule.
-
Atur Protocol Type menjadi All, atur Source menjadi blok CIDR Pod kluster peer, biarkan pengaturan lain tetap pada nilai default, lalu klik Actions → Save.
-
-
Login ke node di kedua kluster dan gunakan perintah ping untuk menguji konektivitas antar kluster. Untuk informasi lebih lanjut, lihat Log on to a node.
-
Langkah 3: Tambahkan kluster ke instans ASM dan buat gerbang masuk yang dikelola
-
Tambahkan kluster di wilayah China (Hangzhou) dan China (Shanghai) ke instans ASM. Untuk informasi lebih lanjut, lihat Add a cluster to an ASM instance.
-
Buat gerbang masuk.
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: Deploy aplikasi demo Bookinfo
Langkah-langkah berikut memerlukan pergantian konteks kubeconfig beberapa kali. Kami menyarankan Anda mengonfigurasi kubeconfig kedua kluster dalam satu file konfigurasi yang sama dan menggunakan kubectl config use-context untuk mengganti konteks. Anda juga dapat menggunakan kubecm atau kubectx untuk mengelola file kubeconfig untuk beberapa kluster.
-
Deploy aplikasi Bookinfo di kedua kluster ack-hangzhou dan ack-shanghai.
kubectl apply -f bookinfo.yaml -
Sambungkan ke instans ASM menggunakan kubectl dan buat aturan routing.
-
Buat asm.yaml dengan konten berikut.
-
Buat aturan routing.
kubectl apply -f asm.yaml
-
-
Verifikasi bahwa aplikasi Bookinfo berhasil dideploy.
-
Pada bilah alamat browser Anda, masukkan http://{alamat IP gerbang masuk}/productpage dan refresh halaman beberapa kali untuk mengamati routing round-robin default.
Setiap kali Anda merefresh halaman, Anda mengakses salah satu versi v1, v2, atau v3 dari layanan reviews. Anda akan melihat bahwa traffic ke ketiga versi layanan reviews didistribusikan dengan rasio sekitar 1:1:1.
Halaman reviews-v1 hanya menampilkan ulasan teks tanpa peringkat bintang, halaman reviews-v2 menampilkan peringkat bintang hitam, dan halaman reviews-v3 menampilkan peringkat bintang merah.
Langkah 5: Gunakan failover lintas wilayah dan distribusi traffic lintas wilayah
Konfigurasikan failover lintas wilayah
-
Nonaktifkan layanan reviews di kluster ack-hangzhou.
-
Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Pada halaman Deployments, atur Namespace menjadi default dan klik Scale di kolom Actions di sebelah kanan reviews-v1.
-
Pada kotak dialog Scale, atur Desired Number of Pods menjadi 0 dan klik OK.
-
-
Konfigurasikan DestinationRule.
Konfigurasikan DestinationRule sehingga jika layanan reviews tidak dapat dijangkau dalam waktu 1 detik, layanan tersebut akan dieject selama 1 menit.
-
Pada halaman detail instans ASM, pilih di panel navigasi kiri.
-
Pada halaman DestinationRule, klik YAML di kolom Actions di sebelah reviews.
-
Pada panel Edit, tambahkan konten berikut dan klik OK.
spec: ...... trafficPolicy: connectionPool: http: maxRequestsPerConnection: 1 outlierDetection: baseEjectionTime: 1m consecutive5xxErrors: 1 interval: 1s-
maxRequestsPerConnection: jumlah maksimum permintaan per koneksi.
-
baseEjectionTime: durasi ejection minimum.
-
consecutive5xxErrors: jumlah error berturut-turut.
-
interval: interval antar pemeriksaan ejection.
-
-
-
Aktifkan failover lintas wilayah.
-
Pada halaman detail instans ASM, pilih di panel navigasi kiri.
-
Versi instans ASM sebelum 1.22.6.66
-
Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Setting.
-
Pada kotak dialog Geolocation-based Failover, atur sehingga ketika sumber kebijakan adalah cn-shanghai, fail over ke cn-hangzhou, dan ketika sumber kebijakan adalah cn-hangzhou, fail over ke cn-shanghai. Lalu, klik Submit.
Versi instans ASM 1.22.6.66 atau lebih baru
-
Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Setting.
-
Klik Specify priority rules for regions di bawah Cross-region Rules. Atur Failed Region menjadi
cn-shanghaidan The region to which the traffic is preferentially routed menjadicn-hangzhou. -
Klik Add. Lalu atur Failed Region menjadi
cn-hangzhoudan Preferred Failover Region menjadicn-shanghai. Klik Save.
-
-
-
Jalankan perintah berikut untuk mengirim 10 permintaan ke aplikasi Bookinfo dan hitung berapa kali permintaan diarahkan ke versi v2 layanan reviews.
for ((i=1;i<=10;i++));do curl http://<alamat gerbang masuk pada port 80 di kluster ack-hangzhou>/productpage 2>&1|grep full.stars;done|wc -lOutput yang diharapkan:
20Anda akan melihat 20 baris yang dikembalikan dari 10 permintaan (setiap permintaan yang diarahkan ke layanan reviews v2 mengembalikan dua baris yang berisi
full stars), menunjukkan bahwa semua 10 permintaan diarahkan ke layanan reviews v2 di kluster ack-shanghai. Failover lintas wilayah berhasil.
Konfigurasikan distribusi traffic lintas wilayah
Distribusi traffic lintas wilayah hanya didukung untuk instans ASM versi 1.22.6.66 atau lebih baru.
-
Login ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Configure a Geolocation-based Load Balancing.
-
Klik Configure a traffic distribution rule. Atur Source menjadi
cn-hangzhou, Destination menjadicn-shanghai, dan Traffic Percentage menjadi 10%. Klik Save.CatatanSecara default, load balancing berbasis geolokasi menggunakan mode failover. Anda harus terlebih dahulu mengklik Disable di pojok kanan atas halaman sebelum dapat beralih ke dan mengaktifkan mode distribusi traffic.
-
Jalankan perintah berikut untuk mengirim 10 permintaan ke aplikasi Bookinfo dan verifikasi bahwa distribusi traffic lintas wilayah berfungsi.
for ((i=1;i<=10;i++));do curl http://<alamat gerbang masuk pada port 80 di kluster ack-hangzhou>/productpage 2>&1|grep full.stars;doneOutput yang diharapkan:
<!-- full stars: --> <!-- full stars: -->Anda akan melihat dua baris yang berisi
full starsdari 10 permintaan, menunjukkan bahwa 9 permintaan diarahkan ke layanan reviews v1 di kluster ack-hangzhou dan 1 permintaan diarahkan ke layanan reviews v2 di kluster ack-shanghai. Traffic berhasil didistribusikan lintas kluster berdasarkan bobot yang dikonfigurasi.
FAQ
Mengapa penambahan kluster Kubernetes ke ASM gagal meskipun saya telah menghubungkan VPC kluster menggunakan Cloud Enterprise Network (CEN)?
Jika kluster Anda berada di wilayah berbeda dan Anda belum membeli paket transfer data lintas wilayah atau belum mengonfigurasi traffic lintas wilayah dengan benar, lapisan kontrol ASM tidak dapat terhubung ke kluster bidang data, sehingga menyebabkan kegagalan penambahan kluster.
Untuk mengatasi masalah ini, konfigurasikan ulang traffic lintas wilayah di Cloud Enterprise Network (CEN) untuk menghubungkan VPC kluster. Untuk informasi lebih lanjut, lihat Langkah 2: Gunakan CEN untuk menghubungkan VPC lintas wilayah.