Ao usar o Service Mesh (ASM) para gerenciar vários clusters, é possível implantar as cargas de trabalho de um serviço nesses clusters. Por padrão, o ASM balanceia o tráfego do serviço entre todos os clusters. Para manter o tráfego dentro do cluster de origem, utilize o recurso de manutenção de tráfego no cluster. Este tópico usa a aplicação Bookinfo para demonstrar como ativar esse recurso em um ambiente multi-cluster.
Pré-requisitos
Dois clusters ACK criados na mesma VPC. Neste tópico, os clusters são nomeados m1c1 e m1c2. Para mais informações, consulte Criar um cluster dedicado ACK (descontinuado).
Uma instância do ASM versão 1.15.3.101 ou posterior criada. Neste tópico, a instância é nomeada mesh1. Para mais informações, consulte Criar uma instância do ASM.
Preparações
Etapa 1: Configurar a conectividade entre clusters
(Opcional) Renomear os grupos de segurança
Renomeie os grupos de segurança de ambos os clusters para facilitar a identificação. Neste exemplo, o Security Group Name está definido como m1c1-sg e m1c2-sg.
Adicionar uma regra de grupo de segurança
Adicione regras de grupo de segurança que permitam o acesso mútuo entre os clusters. Nas configurações do grupo de segurança m1c1-sg, adicione uma regra para autorizar o acesso proveniente de m1c2-sg. Da mesma forma, no grupo de segurança m1c2-sg, adicione uma regra para autorizar o acesso proveniente de m1c1-sg. Para mais informações, consulte Adicionar uma regra de grupo de segurança.
Adicione uma regra na direção inbound: defina Authorization Policy como Allow, Protocol Type como All, Port Range como -1/-1, Authorization Type como Security Group Access e Priority como 1.
Etapa 2: Adicionar clusters e implantar um gateway de entrada
Após adicionar ambos os clusters à instância do ASM, eles obtêm acesso mútuo. Portanto, basta implantar um gateway de entrada em apenas um deles.
Adicione os dois clusters à instância do ASM. Para mais informações, consulte Adicionar um cluster a uma instância do ASM.
Implante um gateway de entrada para o cluster m1c1. Para mais informações, consulte Criar um gateway de entrada.
Etapa 3: Implantar o Bookinfo em cada cluster
Para verificar o recurso de manutenção de tráfego no cluster, este tópico utiliza duas aplicações Bookinfo ligeiramente diferentes. A única diferença é a versão do serviço Reviews: o m1c1 executa a v1 e o m1c2 executa a v2.
-
Utilize o seguinte arquivo YAML para implantar a aplicação Bookinfo com a implantação Reviews v1 no cluster m1c1. Para mais informações, consulte Implantar uma aplicação em um cluster associado a uma instância do ASM.
A implantação v1 do serviço Reviews não exibe classificações por estrelas na seção de resenhas do livro.
-
Utilize o seguinte arquivo YAML para implantar a aplicação Bookinfo com a implantação Reviews v2 no cluster m1c2.
A implantação v2 do serviço Reviews exibe classificações como estrelas pretas na seção de resenhas do livro.
Etapa 4: Criar um gateway, serviço virtual e regra de destino
-
Use o seguinte arquivo YAML para criar um gateway no namespace padrão da instância do ASM. Para mais informações, consulte Gerenciar gateways.
-
Use o seguinte arquivo YAML para criar um serviço virtual no namespace padrão da instância do ASM. Para mais informações, consulte Gerenciar serviços virtuais.
-
Use o seguinte arquivo YAML para criar uma regra de destino no namespace padrão da instância do ASM. Para mais informações, consulte Gerenciar regras de destino.
-
No seu navegador, acesse http://{endereço IP do gateway de entrada}/productpage1 ou http://{endereço IP do gateway de entrada}/productpage2 e atualize a página.
Para encontrar o endereço IP do gateway de entrada, consulte Criar um gateway de entrada.
Se as classificações por estrelas aparecerem alternadamente na seção de resenhas do livro, a aplicação Bookinfo foi implantada com sucesso. A página exibe a productpage da aplicação BookInfo Sample, que contém informações sobre o livro The Comedy of Errors. A seção Book Reviews à direita mostra resenhas do Reviewer1 (5 estrelas) e do Reviewer2 (4 estrelas).
Procedimento
As etapas a seguir descrevem como ativar o recurso de manutenção de tráfego no cluster para um serviço específico, neste caso, o serviço Reviews. Para obter informações sobre como ativar o recurso globalmente ou no nível de namespace, consulte Operações relacionadas.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Base Information, na seção Config Info, clique em Keep traffic in cluster à direita de edit.
Na caixa de diálogo Configure services that keep traffic in cluster, ative a chave Enable Keep traffic in cluster, selecione Select Service e clique em Select services.
Na caixa de diálogo Add services, selecione Service, escolha o Namespace na lista suspensa Namespace, marque Select services na seção Select a service, clique em no ícone
e clique em OK.-
Após concluir a configuração, clique em Configure services that keep traffic in cluster na caixa de diálogo OK.
Na seção Config Info, Configured é exibido à direita de Keep traffic in cluster, indicando que o recurso Keep traffic in cluster está ativado.
-
Verifique se o recurso de manutenção de tráfego no cluster está funcionando.
-
No seu navegador, acesse http://{endereço IP do gateway de entrada}/productpage1 e atualize a página.
A seção de resenhas do livro consistently não mostra classificações, o que confirma que o recurso de manutenção de tráfego no cluster está funcionando conforme esperado.
-
No seu navegador, acesse http://{endereço IP do gateway de entrada}/productpage2 e atualize a página.
A seção de resenhas do livro exibe consistentemente resenhas com classificações de estrelas pretas. A página mostra corretamente os detalhes do livro The Comedy of Errors e o conteúdo da resenha na seção Book Reviews, confirmando que o tráfego é roteado corretamente para o serviço local no cluster m1c2.
-
Análise dos resultados
O diagrama a seguir ilustra o fluxo de tráfego na malha antes e depois da ativação do recurso de manutenção de tráfego no cluster.
|
Status |
Descrição |
|
Desativado |
Na aplicação Bookinfo, o serviço Productpage chama o serviço Reviews para obter resenhas de livros. Ao acessar http://{endereço IP do gateway de entrada}/productpage1 em um navegador, você acessa o serviço Productpage no cluster m1c1. Ao acessar http://{endereço IP do gateway de entrada}/productpage2, você acessa o serviço Productpage no cluster m1c2. Existem cargas de trabalho para o serviço Reviews tanto no cluster m1c1 quanto no m1c2. Por padrão, o Service Mesh balanceia as solicitações para o serviço Reviews entre ambos os clusters, mesmo quando o tráfego se origina de um serviço dentro de um desses clusters (por exemplo, do serviço Productpage no m1c1). Como resultado, as classificações por estrelas aparecem e desaparecem alternadamente na seção de resenhas do livro. |
|
Ativado |
Ao acessar o serviço Productpage em um cluster específico, como o m1c1, o Service Mesh deixa de balancear as solicitações entre os clusters. Em vez disso, ele roteia todas as solicitações para o serviço Reviews local. Consequentemente, a seção de resenhas do livro consistentemente não mostra classificações por estrelas. Importante
Após a ativação deste recurso, se o serviço reviews-v1 no cluster m1c1 falhar, o serviço Productpage não poderá fazer failover para o serviço reviews-v2 no cluster m1c2. |
Se você ativar o recurso de manutenção de tráfego no cluster para um serviço, os chamadores só poderão acessar os endpoints desse serviço dentro do mesmo cluster. Mesmo que os endpoints no cluster estejam indisponíveis, a malha não transferirá o tráfego para seus endpoints em outros clusters.
Para manter o tráfego no cluster para um serviço e, ao mesmo tempo, habilitar o failover, utilize regras de tráfego para criar faixas de tráfego e ativar o deslocamento de tráfego. Para mais informações, consulte Usar regras de tráfego para configurar faixas de tráfego e deslocamento de tráfego.
Operações relacionadas
Ativar tráfego no cluster globalmente
Na página Base Information, na seção Config Info, clique em Keep traffic in cluster à direita de edit.
-
Na caixa de diálogo Configure services that keep traffic in cluster, ative a chave Enable Keep traffic in cluster, selecione All Services e clique em OK.
Após ativar esta opção, o Service Mesh mantém todo o tráfego dentro de seu cluster de origem.
Ativar tráfego no cluster para um namespace
Na página Base Information, na seção Config Info, clique em Keep traffic in cluster à direita de edit.
Na caixa de diálogo Configure services that keep traffic in cluster, ative a chave Enable Keep traffic in cluster, selecione Select Service e clique em Select services.
Na caixa de diálogo Add services, selecione Namespace, escolha o namespace desejado na seção Select services, clique em no ícone
e clique em OK.-
Na caixa de diálogo Configure services that keep traffic in cluster, clique em OK.
Após ativar esta opção, o Service Mesh mantém o tráfego para os serviços no namespace de destino dentro do cluster de origem.