Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Cenário de recuperação de desastres para múltiplos clusters ACK em diferentes VPCs (baseado em CEN para conectividade de rede VPC)

Última atualização: Jul 05, 2026

O Alibaba Cloud Service Mesh (ASM) oferece dois recursos de gerenciamento de tráfego baseados em geolocalização para implantações multi-cluster. Use o failover inter-região para redirecionar automaticamente o tráfego a uma região íntegra quando um serviço em determinada região ficar indisponível. Use a distribuição de tráfego inter-região para dividir o tráfego entre regiões conforme pesos configurados, permitindo o balanceamento de carga multirregional.

Este tutorial utiliza a aplicação de exemplo Bookinfo para demonstrar ambos os recursos em dois clusters ACK localizados em regiões distintas.

Como funciona

O ASM lê a região de cada workload a partir dos rótulos dos nós na nuvem e usa essa informação para tomar decisões de roteamento com base na localidade.

Recurso

Comportamento

Configuração

Failover inter-região

Redireciona solicitações para fora de uma região não íntegra seguindo regras de prioridade

O caminho na UI depende da versão da instância ASM (consulte a Etapa 5)

Distribuição de tráfego inter-região

Divide as solicitações entre regiões de acordo com pesos definidos

Requer ASM versão 1.22.6.66 ou posterior

Ambos os recursos são configurados por meio de Geolocation-based Load Balancing na página Base Information da instância ASM. O failover e a distribuição de tráfego são mutuamente exclusivos: desative um antes de ativar o outro.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Uma conta Alibaba Cloud com permissões para criar clusters ACK, instâncias ASM, VPCs e instâncias do Cloud Enterprise Network (CEN)

  • Familiaridade com kubectl e gerenciamento de kubeconfig para múltiplos clusters

Configuração de rede

Planeje os seguintes blocos CIDR antes de criar qualquer recurso. Todos os vSwitches no mesmo CEN devem usar blocos CIDR sem sobreposição para evitar conflitos de rota.

Para obter orientações sobre o planejamento de CIDR, consulte Planejar blocos CIDR para múltiplos clusters no plano de dados.

Configuração de VPC

Objeto

Nome da VPC

Região

Bloco CIDR IPv4

Cluster

vpc-hangzhou

cn-hangzhou

20.0.0.0/8

Cluster

vpc-shanghai

cn-shanghai

21.0.0.0/8

Service Mesh

vpc-hangzhou2

cn-hangzhou

192.168.0.0/16

Configuração de vSwitch

Objeto

Nome do vSwitch

VPC

Bloco CIDR IPv4

Cluster

vpc-hangzhou-switch-1

vpc-hangzhou

20.0.0.0/16

Cluster

vpc-shanghai-switch-1

vpc-shanghai

21.0.0.0/16

Service Mesh

vpc-hangzhou-switch-2

vpc-hangzhou2

192.168.0.0/24

CIDRs de Pod e serviço do cluster

Cluster

Região

VPC

CIDR de Pod

CIDR de Serviço

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: Criar clusters em diferentes regiões

  1. Crie as VPCs e os vSwitches nas regiões de Hangzhou e Xangai utilizando os valores das tabelas de configuração de rede acima. Consulte Criar um vSwitch e Criar uma VPC e um vSwitch.

  2. Crie um cluster gerenciado ACK em cada região usando as VPCs criadas. Consulte Criar um cluster gerenciado ACK.

  3. Crie uma instância ASM na região de Hangzhou usando a VPC vpc-hangzhou2. Consulte Criar uma instância ASM.

Etapa 2: Conectar redes VPC entre regiões usando CEN

Conecte as VPCs dos clusters entre si e à VPC do Service Mesh usando roteadores de trânsito do CEN.

  1. Faça login no console do Cloud Enterprise Network (CEN) e crie uma instância CEN. Consulte Criar uma instância CEN.

  2. Crie dois roteadores de trânsito, um em cada região:

    1. Na página CEN Instances, clique em no nome da sua instância CEN. Na aba Basic Information, clique em em Create Transit Router.

    2. Defina a Region e o Name e clique em em OK.

    Nome

    Região

    hangzhou-router

    China (Hangzhou)

    shanghai-router

    China (Shanghai)

  3. Adicione VPCs a cada roteador de trânsito. Repita as etapas a seguir para cada VPC:

    1. Clique em no ID do roteador de trânsito.

    2. Na aba Intra-region Connections, clique em em Create Connection.

    3. Defina Instance Type como Virtual Private Cloud (VPC) e selecione a VPC correspondente à região do roteador de trânsito.

    4. Mantenha todas as outras configurações padrão e clique em em OK.

  4. Configure a largura de banda para comunicação inter-região. Após a criação, a conexão aparece na aba Inter-region Connections.

    1. Clique em no nome de um roteador de trânsito e depois em Create Connection.

    2. Na caixa de diálogo Connection With Peer Network Instance, defina Region como a região local e Peer Region como a região remota.

    3. Configure a largura de banda e outros parâmetros e clique em em OK. Para mais detalhes, consulte Conexões inter-região.

    2023-09-27_15-11-25.png

  5. Adicione regras de entrada no grupo de segurança para permitir tráfego entre clusters:

    1. Faça login no console ACK. No painel de navegação à esquerda, clique em em Clusters.

    2. Obtenha o CIDR de Pod de cada cluster:

      • Selecione a região de Xangai, clique em em ack-shanghai e, na página Cluster Information, clique em na aba Basic Information para encontrar o CIDR de Pod.

      • Repita o processo para ack-hangzhou na região de Hangzhou.

    3. Adicione uma regra de entrada no grupo de segurança de cada cluster:

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

      2. Na aba Inbound, clique em em Add Rule.

      3. Defina Protocol Type como All e Source como o CIDR de Pod do cluster par. Mantenha todas as outras configurações padrão e clique em em Save.

    4. Acesse um nó em cada cluster e execute ping para confirmar a conectividade com o outro cluster. Consulte Fazer login nos nós.

    Para o plugin de rede Flannel , adicione o CIDR de Pod do cluster par como origem. Para o plugin de rede Terway , adicione o CIDR do vSwitch do cluster par. Para encontrar o CIDR do vSwitch, faça login no console VPC e verifique a coluna IPv4 CIDR Block na página vSwitch .

Etapa 3: Adicionar clusters ao ASM e criar um gateway de entrada

  1. Adicione os clusters ack-hangzhou e ack-shanghai à sua instância ASM. Consulte Adicionar um cluster a uma instância ASM.

  2. Crie um gateway de entrada gerenciado aplicando o seguinte manifesto:

    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 Bookinfo

Importante

As etapas a seguir exigem alternar entre os contextos kubeconfig do ack-hangzhou e ack-shanghai. Use kubectl config use-context para trocar de contexto ou utilize ferramentas como kubecm ou kubectx para gerenciar múltiplos kubeconfigs.

  1. Implante a aplicação Bookinfo em ambos os clusters:

    kubectl apply -f bookinfo.yaml
  2. Conecte o kubectl à instância ASM e aplique as regras de roteamento. Crie um arquivo chamado asm.yaml com o seguinte conteúdo:

    Visualizar o YAML completo

    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

    Aplique as regras de roteamento:

    kubectl apply -f asm.yaml
  3. Verifique a implantação:

    1. Obter o endereço IP do gateway de entrada.

    2. Abra http://<ingress-gateway-IP>/productpage em um navegador e atualize a página 10 vezes. A aplicação Bookinfo distribui as solicitações entre as versões v1, v2 e v3 do serviço reviews. Após 10 atualizações, a proporção de tráfego entre as três versões deve ser próxima de 1:1:1. yuque_diagram

Etapa 5: Configurar failover inter-região e distribuição de tráfego

Configurar failover inter-região

Quando o serviço reviews no ack-hangzhou fica indisponível, o ASM redireciona as solicitações para o serviço reviews no ack-shanghai. Isso requer duas configurações: detecção de outliers (para que o proxy saiba quando um endpoint não está íntegro) e uma política de failover baseada em geolocalização (para que o proxy saiba para onde redirecionar o tráfego).

Roteamento esperado após a ativação do failover:

Região de origem

Roteamento normal

Após failover

cn-hangzhou

reviews (ack-hangzhou)

reviews (ack-shanghai)

cn-shanghai

reviews (ack-shanghai)

reviews (ack-hangzhou)

Simular uma interrupção de serviço

Dimensione o Deployment reviews no ack-hangzhou para zero réplicas:

  1. Faça login no console ACK. No painel de navegação à esquerda, clique em em Clusters.

  2. Clique em no nome do cluster ack-hangzhou. No painel esquerdo, escolha Workloads > Deployments.

  3. Na página Deployments, defina Namespace como default e clique em em Scale na coluna Actions referente ao Deployment reviews.

  4. Defina Desired Number Of Pods como 0 e clique em em OK.

Configurar detecção de outliers

A detecção de outliers informa aos proxies sidecar quando um endpoint não está íntegro e o remove do pool de balanceamento de carga. A configuração atende a três propósitos:

  • Detecção de outliers: instrui cada proxy a ejetar um endpoint após detectar falhas consecutivas

  • Pool de conexões: força cada solicitação HTTP a usar uma nova conexão, acionando o failover imediatamente após a detecção de uma falha (apenas para fins de demonstração)

  • Recuperação de ejeção: mantém o endpoint ejetado fora de rotação por uma duração mínima antes de ser reconsiderado

  1. Na página de detalhes da instância ASM, escolha Traffic Management Center > DestinationRule.

  2. Na coluna Actions referente a reviews, clique em em Edit YAML.

  3. Adicione o seguinte bloco trafficPolicy ao spec e clique em em OK:

    spec:
      # ... existing subsets configuration ...
      trafficPolicy:
        connectionPool:
          http:
            maxRequestsPerConnection: 1  # Each request uses a new connection;
                                         # this triggers ejection immediately after
                                         # a failure. For demonstration only.
        outlierDetection:
          interval: 1s        # Check for unhealthy endpoints every second
          consecutive5xxErrors: 1  # Eject after 1 consecutive 5xx error
          baseEjectionTime: 1m    # Keep the endpoint ejected for at least 1 minute

Ativar a política de failover baseada em geolocalização

O caminho na UI depende da versão da sua instância ASM.

ASM versão 1.22.6.66 e posterior

  1. Na página de detalhes da instância ASM, escolha ASM Instance > Base Information.

  2. Clique em em Configure a Geolocation-based Load Balancing ao lado de Geolocation-based Load Balancing.

  3. Clique em em Specify priority rules for regions.

  4. Defina Region in which the failure occurs como cn-shanghai e The region to which the traffic is preferentially routed como cn-hangzhou. Clique em em Add.

  5. Defina Region in which the failure occurs como cn-hangzhou e The region to which the traffic is preferentially routed como cn-shanghai. Clique em em Save Configuration.

Versões do ASM anteriores à 1.22.6.66

  1. Na página de detalhes da instância ASM, escolha ASM Instance > Base Information.

  2. Clique em em Setting ao lado de Geolocation-based Load Balancing.

  3. Na caixa de diálogo Geolocation-based Failover, defina Failover to como cn-hangzhou quando a Policy for de cn-shanghai, e defina Failover to como cn-shanghai quando a Policy for de cn-hangzhou. Clique em em Confirm.

Verificar o failover

Envie 10 solicitações para o gateway de entrada do ack-hangzhou e conte quantas chegam ao serviço reviews v2 (que executa no ack-shanghai):

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

Saída esperada:

20

A saída 20 confirma que todas as 10 solicitações foram roteadas para o serviço reviews v2 no ack-shanghai. Cada solicitação para a versão v2 retorna duas linhas contendo full stars, portanto, 10 solicitações produzem 20 linhas.

Configurar distribuição de tráfego inter-região

Importante

A distribuição de tráfego inter-região requer a versão 1.22.6.66 ou posterior da instância ASM.

A distribuição de tráfego e o failover são mutuamente exclusivos. Se você configurou o failover na seção anterior, desative-o antes de ativar a distribuição de tráfego.

Roteamento alvo após a configuração da distribuição de tráfego:

Região de origem

Destino

Porcentagem de tráfego

cn-hangzhou

cn-hangzhou (local)

90%

cn-hangzhou

cn-shanghai (remoto)

10%

  1. Faça login no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Clique em no nome da sua instância ASM. No painel de navegação à esquerda, escolha ASM Instance > Base Information.

  3. Clique em em Configure a Geolocation-based Load Balancing ao lado de Geolocation-based Load Balancing.

  4. Se o modo de failover estiver ativado, clique em em Disable no canto superior direito para alternar para o modo de distribuição de tráfego.

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

Verificar a distribuição de tráfego

Envie 10 solicitações e inspecione qual versão do serviço reviews responde:

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

Saída esperada:

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

Duas linhas de full stars em 10 solicitações confirmam que a distribuição está funcionando. Nove solicitações foram para o serviço reviews v1 no ack-hangzhou (sem estrelas) e uma solicitação foi para o serviço reviews v2 no ack-shanghai (duas linhas de full stars), correspondendo à divisão configurada de 90%/10%.

Perguntas frequentes

Por que a adição de um cluster ao ASM falha mesmo após conectar as VPCs via CEN?

Quando os clusters estão em regiões diferentes, o plano de controle do ASM precisa se comunicar com os clusters do plano de dados pela conexão inter-região. Se você não adquiriu um plano de transferência de dados inter-região ou não configurou corretamente a largura de banda inter-região no CEN, essa conexão não pode ser estabelecida e a adição do cluster falha.

Reconfigure as definições de tráfego inter-região no CEN. Consulte Etapa 2: Conectar redes VPC entre regiões usando CEN.

Próximos passos