Em implantações multizona, o tráfego entre zonas aumenta a latência e os custos de transferência de dados. O roteamento com reconhecimento de zona direciona o tráfego para endpoints de serviço na mesma zona do chamador. Quando um endpoint da mesma zona fica indisponível, o tráfego passa automaticamente por failover para endpoints em outras zonas.
Este tutorial usa o aplicativo de exemplo Bookinfo para demonstrar ambos os comportamentos na topologia do ASM:
Preferência pela mesma zona: o tráfego de
productpagesegue parareviews-v1na mesma zona.Failover entre zonas: quando
reviews-v1fica indisponível, o tráfego é desviado parareviews-v2em outra zona.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do ASM. Consulte Crie uma instância do ASM.
Um cluster gerenciado pelo ACK adicionado à instância do ASM. Consulte Crie um cluster gerenciado pelo ACK e Adicionar um cluster a uma instância do ASM.
Nós do cluster distribuídos em pelo menos duas zonas. Este tutorial usa
cn-hangzhou-jecn-hangzhou-k. Para verificar as atribuições de zona, consulte os detalhes dos nós no console do ACK. Para mais informações, consulte Regiões e zonas.Um gateway de entrada implantado com a visualização de topologia ativada. Consulte Introdução.
Helm 3 instalado na máquina local.
Etapa 1: Implantar o aplicativo de exemplo
-
Extraia o pacote e abra o diretório
asm-az-routing. No arquivovalues.yaml, defina as zonas de implantação do aplicativo:zone1: cn-hangzhou-j zone2: cn-hangzhou-kEssa configuração implanta
reviews-v1emcn-hangzhou-jereviews-v2emcn-hangzhou-k. -
Instale o gráfico:
helm install --namespace azdemo azdemo ./ -
Após todos os pods entrarem em execução, envie requisições contínuas pelo gateway de entrada:
while true; do curl -I http://<ingress-gateway-ip>/productpage echo; sleep 1 doneSubstitua
<ingress-gateway-ip>pelo endereço IP do seu gateway de entrada. PressioneCtrl+Cpara interromper.
Etapa 2: Confirme o roteamento na mesma zona na topologia
Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha Observability Management Center > Mesh Topology.
Clique em Copy token and open in new window.
Na página de login, insira o token e clique em log in.
-
Selecione o namespace da instância do ASM. Na lista suspensa Display, selecione Traffic Distribution, Traffic Rate e Traffic Animation. Desmarque Service Nodes.
A topologia exibe o tráfego fluindo de
productpage-v1parareviews-v1na mesma zona, o que confirma a ativação do roteamento com reconhecimento de zona.
Etapa 3: Verifique o failover entre zonas
Simule uma falha de zona dimensionando reviews-v1 para zero pods e observe o desvio de tráfego.
No console do ACK, acesse Clusters e clique em no nome do cluster. Escolha Workloads > Deployments.
Localize o deployment
reviews-v1, clique em Scale na coluna Actions, defina Desired Number of Pods como0e clique em OK.-
Retorne à página Mesh Topology aberta na Etapa 2.
A topologia agora mostra
productpage-v1roteando parareviews-v2. Isso confirma o failover entre zonas: quando o serviçoreviewsda mesma zona fica indisponível, o tráfego é roteado automaticamente para o serviçoreviewsem outra zona.
Etapa 4: Verifique a recuperação do roteamento
Restaure reviews-v1 e confirme se o tráfego retorna ao endpoint da mesma zona.
No console do ACK, acesse Workloads > Deployments do mesmo cluster.
Localize o deployment
reviews-v1, clique em Scale na coluna Actions, defina Desired Number of Pods como1e clique em OK.-
Retorne à página Mesh Topology aberta na Etapa 2.
A topologia mostra
productpage-v1roteando novamente parareviews-v1na mesma zona, o que confirma a recuperação do roteamento com reconhecimento de zona após a restauração do endpoint.