Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Cross-region disaster recovery with multiple ACK clusters in different VPCs (using CEN to connect VPC networks)

Última atualização: Sep 29, 2026

Service Mesh ASM oferece recursos de distribuição de tráfego entre regiões e failover entre regiões para services de aplicação. A distribuição de tráfego entre regiões roteia o tráfego para múltiplos clusters com base em pesos configurados, habilitando o balanceamento de carga multi-região. O failover entre regiões transfere o tráfego de uma região com falha para outras regiões, implementando a recuperação de desastres entre regiões. Usando a aplicação Bookinfo como exemplo, este tópico descreve como utilizar o failover e a distribuição de tráfego entre regiões para implementar recuperação de desastres e balanceamento de carga entre regiões.

Planejamento de rede

Antes de começar, planeje os blocos CIDR, nomes e outros detalhes dos seus vSwitches, VPCs e clusters. Este tópico utiliza o seguinte plano:

Nota

Para mais informações sobre o planejamento de endereços multi-cluster para o plano de dados, consulte Multi-cluster network planning.

  • Planejamento de rede de vSwitch e VPC

    • Planejamento de rede VPC

      Objeto

      Nome da VPC

      Região

      Bloco CIDR IPv4

      Cluster

      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

    • Planejamento de rede de vSwitch

      Importante

      Para evitar conflitos de rota após conectar as VPCs via CEN, certifique-se de que os dois vSwitches não utilizem blocos CIDR sobrepostos.

      Objeto

      Nome do vSwitch

      VPC

      Bloco CIDR IPv4

      Cluster

      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

  • Planejamento de rede de Pod e Service para os clusters

    Nome do cluster

    Região

    VPC

    CIDR de Pod

    CIDR de 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

Etapa 1: Crie clusters em regiões diferentes

  1. Crie VPCs e vSwitches nas regiões China (Hangzhou) e China (Shanghai) conforme o plano descrito anteriormente. Para mais informações, consulte Create a vSwitch e Create a VPC and a vSwitch.

  2. Crie clusters nas regiões China (Hangzhou) e China (Shanghai) utilizando as VPCs e o plano de rede descritos anteriormente. Para mais informações, consulte Create an ACK managed cluster.

  3. Crie uma instância ASM na região China (Hangzhou) conforme o plano descrito anteriormente. Para mais informações, consulte Create an ASM instance.

Etapa 2: Use o CEN para conectar VPCs entre regiões

Use o CEN para conectar as redes VPC entre os clusters e entre os clusters e o Service Mesh.

  1. Acesse o Cloud Enterprise Network console e crie uma instância CEN. Para mais informações, consulte Create a Cloud Enterprise Network instance.

  2. Crie transit routers.

    1. Na página Cloud Enterprise Network instances, clique em na instância CEN criada em Step 1. Em seguida, na aba Basic Information, clique em Create Transit Router.

    2. Na caixa de diálogo Create Transit Router, selecione uma Region, insira um Name e clique em Confirm.

    Este exemplo cria dois transit routers:

    • Region: China (Shanghai), Name: shanghai-router.

    • Region: China (Hangzhou), Name: hangzhou-router.

  3. Adicione VPCs aos transit routers. Repita as etapas a seguir para os transit routers de Shanghai e Hangzhou para conectar as respectivas VPCs.

    1. Na página Cloud Enterprise Network instances, clique em na instância CEN criada em Step 1. Em seguida, na aba Basic Information, clique no ID do transit router recém-criado para acessar a página de detalhes.

    2. Clique em na aba Intra-region Connections e, em seguida, clique em Create Network Instance Connection. Defina Instance Type como Virtual Private Cloud (VPC) e selecione a instância VPC correspondente à região em Network Instance.

    3. Mantenha as demais configurações com os valores padrão e clique em Create.

  4. Configure a largura de banda entre regiões.

    1. Clique em no transit router criado em Step 2. No lado direito da página, clique em Create Network Instance Connection.

    2. Na caixa de diálogo Connect Network Instance, defina as configurações e clique em Create.

      O exemplo a seguir apresenta a configuração de Hangzhou para Shanghai. Region refere-se à região atual e Peer Region refere-se à região de destino. Para mais informações sobre as opções de configuração, consulte Inter-region connection. Defina as seguintes configurações: Instance Type como Inter-region Connection, Region como China (Hangzhou), Connection Name como to-shanghai, Peer Region como China (Shanghai), Bandwidth Allocation Method como Pay-by-Data-Transfer e Bandwidth como 1 Mbps. Expanda Advanced Configuration e marque as seguintes caixas de seleção: Automatically Associate with Default Route Table of Transit Router, Automatically Propagate System Routes to Default Route Table of Transit Router e Automatically Publish Routes to Peer Region.

      Após a criação, visualize a nova instância na aba Inter-region Connections.

  5. Adicione regras de grupo de segurança.

    O exemplo a seguir utiliza o plug-in de rede Flannel. Adicione o bloco CIDR de Pod do cluster remoto ao grupo de segurança de cada cluster.

    Nota

    Se você utilizar o plug-in de rede Terway, use o bloco CIDR do vSwitch do cluster. Acesse o VPC console e localize o bloco CIDR do vSwitch na página vSwitch, na coluna IPv4 CIDR.

    1. Acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.

    2. Obtenha os blocos CIDR de Pod.

      1. Na página Clusters, selecione a região China (Shanghai), clique no nome do cluster ack-shanghai e, na página Cluster Information, acesse a aba Basic Information para obter o bloco CIDR de Pod do cluster ack-shanghai.

      2. Volte à página Clusters, selecione a região China (Hangzhou), clique no nome do cluster ack-hangzhou e, na página Cluster Information, acesse a aba Basic Information para obter o bloco CIDR de Pod do cluster ack-hangzhou.

    3. Configure os grupos de segurança.

      1. Na página Cluster Information de cada cluster, acesse a aba Basic Information e clique em no ID do grupo de segurança ao lado de Control Plane Security Group.

      2. Na aba Security Group Details, em Inbound, clique em Add Rule.

      3. Defina Protocol Type como All, defina Source como o bloco CIDR de Pod do cluster remoto, mantenha as demais configurações com os valores padrão e clique em Actions → Save.

    4. Acesse os nós de ambos os clusters e use o comando ping para testar a conectividade entre eles. Para mais informações, consulte Log on to a node.

Etapa 3: Adicionar clusters à instância do ASM e criar um ingress gateway gerenciado

  1. Adicione os clusters das regiões China (Hangzhou) e China (Shanghai) à instância do ASM. Para mais informações, consulte Add a cluster to an ASM instance.

  2. Crie um ingress gateway.

    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

Etapa 4: Implantar a aplicação de demonstração Bookinfo

Importante

As etapas a seguir exigem a alternância de contextos do kubeconfig várias vezes. Recomendamos configurar os dois kubeconfigs de cluster no mesmo arquivo de configuração e usar kubectl config use-context para alternar entre os contextos. Também é possível utilizar kubecm ou kubectx para gerenciar arquivos kubeconfig de múltiplos clusters.

  1. Implante a aplicação Bookinfo nos clusters ack-hangzhou e ack-shanghai.

    kubectl apply -f bookinfo.yaml
  2. Conecte-se à instância do ASM via kubectl e crie as regras de roteamento.

    1. Crie o arquivo asm.yaml com o conteúdo a seguir.

      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. Crie as regras de roteamento.

      kubectl apply -f asm.yaml
  3. Verifique se a aplicação Bookinfo foi implantada com sucesso.

    1. Obtain the ingress gateway address.

    2. Na barra de endereços do navegador, insira http://{endereço IP do ingress gateway}/productpage e atualize a página várias vezes para observar o roteamento round-robin padrão.

      A cada atualização, uma das versões v1, v2 ou v3 do service reviews é acessada. O tráfego entre as três versões é distribuído em uma proporção aproximada de 1:1:1.

      A página reviews-v1 exibe apenas avaliações em texto, sem estrelas; a página reviews-v2 exibe estrelas pretas; e a página reviews-v3 exibe estrelas vermelhas.

Etapa 5: Usar failover entre regiões e distribuição de tráfego entre regiões

Configure o failover entre regiões

  1. Desative o service reviews no cluster ack-hangzhou.

    1. Acesse o ACK console. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique em o nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    3. Na página Deployments, defina o Namespace como default e clique em Scale na coluna Actions à direita de reviews-v1.

    4. Na caixa de diálogo Scale, defina Desired Number of Pods como 0 e clique em OK.

  2. Configure a DestinationRule.

    Configure a DestinationRule para que, caso o service reviews não seja alcançável em 1 segundo, ele seja ejetado por 1 minuto.

    1. Na página de detalhes da instância ASM, escolha Traffic Management Center > DestinationRule no painel de navegação à esquerda.

    2. Na página DestinationRule, clique em YAML na coluna Actions ao lado de reviews.

    3. No painel Edit, adicione o conteúdo a seguir e clique em OK.

      spec:
        ......
        trafficPolicy:
          connectionPool:
            http:
              maxRequestsPerConnection: 1
          outlierDetection:
            baseEjectionTime: 1m
            consecutive5xxErrors: 1
            interval: 1s
      • maxRequestsPerConnection: número máximo de requisições por conexão.

      • baseEjectionTime: duração mínima da ejeção.

      • consecutive5xxErrors: número de erros consecutivos.

      • interval: intervalo entre verificações de ejeção.

  3. Ative o failover entre regiões.

    1. Na página de detalhes da instância ASM, escolha ASM Instance > Base Information no painel de navegação à esquerda.

    2. ASM instance version earlier than 1.22.6.66

      1. Na página Base Information, clique em Geolocation-based Load Balancing à direita de Setting.

      2. Na caixa de diálogo Geolocation-based Failover, configure para que, quando a policy source for cn-shanghai, o failover seja direcionado para cn-hangzhou, e quando a policy source for cn-hangzhou, o fail over to seja cn-shanghai. Em seguida, clique em Submit.

      ASM instance version 1.22.6.66 or later

      1. Na página Base Information, clique em Geolocation-based Load Balancing à direita de Setting.

      2. Clique em Specify priority rules for regions em Cross-region Rules. Defina Failed Region como cn-shanghai e The region to which the traffic is preferentially routed como cn-hangzhou.

      3. Clique em Add. Em seguida, defina Failed Region como cn-hangzhou e Preferred Failover Region como cn-shanghai. Clique em Save.

  4. Execute o comando a seguir para enviar 10 requisições ao aplicativo Bookinfo e contar quantas vezes a requisição foi roteada para a versão v2 do service reviews.

    for ((i=1;i<=10;i++));do curl http://<ingress gateway address on port 80 in ack-hangzhou cluster>/productpage 2>&1|grep full.stars;done|wc -l

    Saída esperada:

    20

    Serão retornadas 20 linhas provenientes de 10 requisições (cada requisição roteada para o service reviews v2 retorna duas linhas contendo full stars), indicando que todas as 10 requisições foram roteadas para o service reviews v2 no cluster ack-shanghai. O failover entre regiões foi concluído com êxito.

Configure a distribuição de tráfego entre regiões

Importante

A distribuição de tráfego entre regiões é suportada apenas em instâncias ASM de versão 1.22.6.66 ou posterior.

  1. Acesse o ASM console. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em o nome da instância ASM. No painel de navegação à esquerda, escolha Instance Information > Base Information.

  3. Na página Base Information, clique em Geolocation-based Load Balancing à direita de Configure a Geolocation-based Load Balancing.

  4. Clique em Configure a traffic distribution rule. Defina Source como cn-hangzhou, Destination como cn-shanghai e Traffic Percentage como 10%. Clique em Save.

    Nota

    Por padrão, o balanceamento de carga baseado em geolocalização utiliza o modo de failover. Antes de alternar para o modo de distribuição de tráfego e ativá-lo, clique em Disable no canto superior direito da página.

  5. Execute o comando a seguir para enviar 10 requisições ao aplicativo Bookinfo e verifique se a distribuição de tráfego entre regiões está funcionando.

    for ((i=1;i<=10;i++));do curl http://<ingress gateway address on port 80 in ack-hangzhou cluster>/productpage 2>&1|grep full.stars;done

    Saída esperada:

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

    Serão exibidas duas linhas contendo full stars entre as 10 requisições, indicando que 9 foram roteadas para o service reviews v1 no cluster ack-hangzhou e 1 foi roteada para o service reviews v2 no cluster ack-shanghai. O tráfego foi distribuído entre os clusters com base nos pesos configurados.

Perguntas frequentes

Por que a adição de um cluster Kubernetes ao ASM falha mesmo após conectar os VPCs dos clusters usando Cloud Enterprise Network (CEN)?

Se os clusters estiverem em regiões diferentes e você não tiver adquirido um plano de transferência de dados entre regiões nem configurado corretamente o tráfego entre regiões, o plano de controle do ASM não conseguirá se conectar aos clusters do plano de dados, causando falha na adição do cluster.

Para resolver esse problema, reconfigure o tráfego entre regiões no Cloud Enterprise Network (CEN) para conectar os VPCs dos clusters. Para mais informações, consulte Step 2: Use CEN to connect VPCs across regions.