All Products
Search
Document Center

Alibaba Cloud Service Mesh:Pemulihan bencana lintas wilayah dengan beberapa kluster ACK di VPC berbeda (menggunakan CEN untuk menghubungkan jaringan VPC)

Last Updated:Oct 01, 2026

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:

Catatan

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

      Penting

      Untuk 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

  1. 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.

  2. 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.

  3. 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.

  1. Login ke Konsol Cloud Enterprise Network dan buat instans CEN. Untuk informasi lebih lanjut, lihat Buat instans Cloud Enterprise Network.

  2. Buat router transit.

    1. Pada halaman Instans Cloud Enterprise Network, klik instans CEN yang dibuat di Langkah 1. Lalu, pada tab Informasi Dasar, klik Create Transit Router.

    2. 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.

  3. Tambahkan VPC ke router transit. Ulangi langkah-langkah berikut untuk router transit Shanghai dan Hangzhou agar menghubungkan VPC masing-masing wilayah.

    1. 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.

    2. 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.

    3. Biarkan pengaturan lain tetap pada nilai default dan klik Create.

  4. Konfigurasikan bandwidth lintas wilayah.

    1. Klik router transit yang dibuat di Langkah 2. Di sisi kanan halaman, klik Create Network Instance Connection.

    2. 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 menjadi 1 Mbps. 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.

  5. Tambahkan aturan grup keamanan.

    Contoh berikut menggunakan plug-in jaringan Flannel. Tambahkan blok CIDR Pod dari kluster peer ke grup keamanan masing-masing kluster.

    Catatan

    Jika 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.

    1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Dapatkan blok CIDR Pod.

      1. 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.

      2. 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.

    3. Konfigurasikan grup keamanan.

      1. Pada halaman Cluster Information untuk setiap kluster, buka tab Basic Information dan klik ID grup keamanan di samping Control Plane Security Group.

      2. Pada tab Security Group Details, di bawah Inbound, klik Add Rule.

      3. Atur Protocol Type menjadi All, atur Source menjadi blok CIDR Pod kluster peer, biarkan pengaturan lain tetap pada nilai default, lalu klik Actions → Save.

    4. 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

  1. Tambahkan kluster di wilayah China (Hangzhou) dan China (Shanghai) ke instans ASM. Untuk informasi lebih lanjut, lihat Add a cluster to an ASM instance.

  2. 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

Penting

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.

  1. Deploy aplikasi Bookinfo di kedua kluster ack-hangzhou dan ack-shanghai.

    kubectl apply -f bookinfo.yaml
  2. Sambungkan ke instans ASM menggunakan kubectl dan buat aturan routing.

    1. Buat asm.yaml dengan konten berikut.

      Expand to view YAML content

      apiVersion: networking.istio.io/v1alpha3
      kind: Gateway
      metadata:
        name: bookinfo-gateway
      spec:
        selector:
          istio: ingressgateway # use istio default controller
        servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
          - "*"
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:
        name: bookinfo
      spec:
        hosts:
        - "*"
        gateways:
        - bookinfo-gateway
        http:
        - match:
          - uri:
              exact: /productpage
          - uri:
              prefix: /static
          - uri:
              exact: /login
          - uri:
              exact: /logout
          - uri:
              prefix: /api/v1/products
          route:
          - destination:
              host: productpage
              port:
                number: 9080
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: productpage
      spec:
        host: productpage
        subsets:
        - name: v1
          labels:
            version: v1
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: reviews
      spec:
        host: reviews
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v3
          labels:
            version: v3
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: ratings
      spec:
        host: ratings
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v2-mysql
          labels:
            version: v2-mysql
        - name: v2-mysql-vm
          labels:
            version: v2-mysql-vm
      ---
      apiVersion: networking.istio.io/v1alpha3
      kind: DestinationRule
      metadata:
        name: details
      spec:
        host: details
        subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
      ---
      	  
    2. Buat aturan routing.

      kubectl apply -f asm.yaml
  3. Verifikasi bahwa aplikasi Bookinfo berhasil dideploy.

    1. Dapatkan alamat gerbang masuk.

    2. 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

  1. Nonaktifkan layanan reviews di kluster ack-hangzhou.

    1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Pada halaman Deployments, atur Namespace menjadi default dan klik Scale di kolom Actions di sebelah kanan reviews-v1.

    4. Pada kotak dialog Scale, atur Desired Number of Pods menjadi 0 dan klik OK.

  2. Konfigurasikan DestinationRule.

    Konfigurasikan DestinationRule sehingga jika layanan reviews tidak dapat dijangkau dalam waktu 1 detik, layanan tersebut akan dieject selama 1 menit.

    1. Pada halaman detail instans ASM, pilih Traffic Management Center > DestinationRule di panel navigasi kiri.

    2. Pada halaman DestinationRule, klik YAML di kolom Actions di sebelah reviews.

    3. 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.

  3. Aktifkan failover lintas wilayah.

    1. Pada halaman detail instans ASM, pilih ASM Instance > Base Information di panel navigasi kiri.

    2. Versi instans ASM sebelum 1.22.6.66

      1. Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Setting.

      2. 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

      1. Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Setting.

      2. Klik Specify priority rules for regions di bawah Cross-region Rules. Atur Failed Region menjadi cn-shanghai dan The region to which the traffic is preferentially routed menjadi cn-hangzhou.

      3. Klik Add. Lalu atur Failed Region menjadi cn-hangzhou dan Preferred Failover Region menjadi cn-shanghai. Klik Save.

  4. 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 -l

    Output yang diharapkan:

    20

    Anda 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

Penting

Distribusi traffic lintas wilayah hanya didukung untuk instans ASM versi 1.22.6.66 atau lebih baru.

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

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Instance Information > Base Information.

  3. Pada halaman Base Information, klik Geolocation-based Load Balancing di sebelah kanan Configure a Geolocation-based Load Balancing.

  4. Klik Configure a traffic distribution rule. Atur Source menjadi cn-hangzhou, Destination menjadi cn-shanghai, dan Traffic Percentage menjadi 10%. Klik Save.

    Catatan

    Secara 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.

  5. 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;done

    Output yang diharapkan:

    <!-- full stars: -->
    <!-- full stars: -->

    Anda akan melihat dua baris yang berisi full stars dari 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.