Ative a topologia de malha quando precisar visualizar e monitorar interações entre serviços. O gráfico de topologia de malha permite monitorar a integridade dos serviços em tempo real, analisar problemas de latência e comunicação entre serviços e compreender como o tráfego flui e se distribui. Isso ajuda a identificar e resolver problemas rapidamente, garantindo a confiabilidade e o alto desempenho dos serviços.
Introdução ao recurso
A topologia de malha é uma ferramenta de observabilidade do Service Mesh. Ela oferece visualização avançada do tráfego da malha ao combinar o tráfego de requisições em tempo real com os dados de configuração. Isso proporciona visibilidade imediata sobre o comportamento de invocação e o status de integridade dos serviços, ajudando a localizar problemas com rapidez. A topologia de malha oferece os seguintes recursos:
Gráfico de topologia de chamadas de tráfego: visualiza o tráfego de requisições em tempo real como um gráfico de topologia.
Visualização de configuração da malha: utiliza configurações do seu Service Mesh para anotar nós no gráfico de topologia. Isso ajuda a entender instantaneamente quais configurações estão ativas, incluindo autenticação de pares, serviços virtuais, regras de destino, além de circuit breaking e limitação de taxa do ASM.
Visualização do status de integridade: usa cores nos nós ou nas arestas para representar o status de integridade do serviço ou da requisição, facilitando a localização rápida de nós ou requisições problemáticas.
Reprodução de tráfego: permite reproduzir o tráfego de um período passado selecionado, possibilitando inspeção detalhada do tráfego da aplicação durante esse intervalo.
Etapa 1: Ativar a topologia de malha
Método 1: Criar uma nova instância do ASM
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em Create ASM Instance.
-
Na seção Observability, selecione Enable Prometheus Metrics. Em seguida, escolha um tipo de Prometheus conforme necessário e execute as operações relacionadas.
Tipo de Prometheus
Operação
Managed Service for Prometheus
Selecione Use Managed Service for Prometheus to collect monitoring metrics e, em seguida, selecione Enable ASM Mesh Topology to Enhance Mesh Observability. Para obter detalhes sobre a integração do Managed Service for Prometheus e informações de faturamento, consulte Integrar o Managed Service for Prometheus para monitoramento de malha e Faturamento.
Prometheus autogerenciado
Selecione Integrate Self-Hosted Prometheus for Monitoring e, em seguida, selecione Enable ASM Mesh Topology to Enhance Mesh Observability. Insira o endpoint do serviço Prometheus usado pela topologia de malha do ASM (ou seja, o endpoint de acesso do seu serviço Prometheus autogerenciado). Para obter detalhes sobre a integração do Prometheus autogerenciado, consulte Integrar Prometheus autogerenciado para monitoramento de malha.
NotaSelecionar Enable Prometheus Metrics ativa a coleta de métricas para sua instância do Service Mesh. Isso não cria automaticamente uma instância do ARMS nem uma instância do Prometheus autogerenciado.
Desmarcar tanto Enable Prometheus Metrics quanto Enable ASM Mesh Topology to Enhance Mesh Observability desativa a topologia de malha.
-
Configure as informações necessárias, leia atentamente e selecione Service Agreement. Depois, na parte inferior da página, clique em Create Service Mesh.
Para obter detalhes sobre os itens de configuração, consulte Criar uma instância do ASM.
Adicione um cluster ACK à instância do ASM recém-criada. Para obter detalhes, consulte Adicionar um cluster a uma instância do ASM.
Método 2: Usar uma instância existente do ASM
Certifique-se de que sua instância do ASM já tenha um cluster ACK adicionado. Para obter detalhes, consulte Adicionar um cluster a uma instância do ASM.
Versão do ASM anterior a 1.12.4.50
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha . No lado direito da página, clique em Settings.
-
No painel Settings Update, selecione Enable Prometheus Metrics. Em seguida, escolha um tipo de Prometheus conforme necessário e execute as operações relacionadas.
Tipo de Prometheus
Operação
Managed Service for Prometheus
Selecione Use Managed Service for Prometheus to collect monitoring metrics e, em seguida, selecione Enable ASM Mesh Topology to Enhance Mesh Observability. Para obter detalhes sobre a integração do Managed Service for Prometheus e informações de faturamento, consulte Integrar o Managed Service for Prometheus para monitoramento de malha e Faturamento.
Prometheus autogerenciado
Selecione Integrate Self-Hosted Prometheus for Monitoring e, em seguida, selecione Enable ASM Mesh Topology to Enhance Mesh Observability. Insira o endpoint do serviço Prometheus usado pela topologia de malha do ASM (ou seja, o endpoint de acesso do seu serviço Prometheus autogerenciado). Para obter detalhes sobre a integração do Prometheus autogerenciado, consulte Integrar Prometheus autogerenciado para monitoramento de malha.
Após concluir a configuração, na parte inferior do painel Settings Update, clique em OK.
Versão do ASM 1.12.4.50 ou posterior
A topologia de malha depende da integração do Service Mesh com as métricas do Prometheus. Se você ainda não integrou o Prometheus para monitoramento de malha, faça essa integração primeiro. Para obter detalhes, consulte Integrar o Managed Service for Prometheus para monitoramento de malha e Integrar Prometheus autogerenciado para monitoramento de malha. Para obter informações de faturamento sobre o Managed Service for Prometheus, consulte Faturamento.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
-
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha . Na seção Activate ASM mesh topology , execute as seguintes operações com base na sua versão do ASM.
Versão do ASM anterior a 1.18.2.112: Clique em Activate.
-
Versão do ASM 1.18.2.112 ou posterior: Escolha um dos seguintes modos de implantação. Para entender as diferenças entre os dois modos e como configurar o modo gerenciado, consulte Ativar a topologia de malha no modo gerenciado.
Clique em In-Kubernetes-cluster Mode, insira o endpoint do serviço Prometheus usado pela topologia de malha do ASM e clique em Activate.
Clique em Managed Mode, clique em Activate, configure as informações necessárias na caixa de diálogo exibida e clique em OK.
Etapa 2: Acessar a topologia de malha
Existem três maneiras de acessar a topologia de malha. O acesso direto requer a versão 1.12.4.50 ou posterior do ASM. O acesso personalizado requer a versão 1.16.4.5 ou posterior do ASM.
Método 1: Acessar diretamente a topologia de malha
Se a sua versão do ASM for 1.12.4.50 ou posterior, você pode optar por criar automaticamente um Classic Load Balancer (CLB) para acessar a topologia de malha do ASM e acessar diretamente o serviço de topologia de malha.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha .
-
Na seção Access, execute as seguintes operações com base na versão da sua instância do ASM.
Versão do ASM anterior a 1.15.3.120: Selecione Automatically Create Internet-facing CLB Instance to Access ASM Mesh Topology.
Versão do ASM 1.15.3.120 ou posterior, mas anterior a 1.17.2.19: Ative a chave ao lado de Automatically Create Internet-facing CLB Instance to Access ASM Mesh Topology. Na caixa de diálogo exibida, clique em OK.
Versão do ASM 1.17.2.19 ou posterior: Ative a chave ao lado de Create CLB Instance to Access ASM Mesh Topology. Na caixa de diálogo exibida, configure as definições necessárias conforme apropriado e clique em OK.
Após ativar o acesso à topologia de malha, seu Service Mesh entra em um breve estado de atualização.
-
Verifique se a atualização do seu Service Mesh foi concluída.
No painel de navegação à esquerda, escolha .
-
Na seção Basic Information, verifique o Status do seu Service Mesh.
Se o Status for Updating, a atualização está em andamento. Se o Status for Running, a atualização foi concluída.
Na página Mesh Topology, na seção Access, clique em Click here to access ASM Mesh Topology ou Copy token and open in new window para ir à página de login da topologia de malha.
Método 2: Usar o gateway do ASM para acessar a topologia de malha
-
Crie um gateway de entrada e adicione uma configuração de porta que suporte o acesso à topologia de malha no gateway de entrada. Para obter detalhes, consulte Criar um serviço de gateway de entrada ou Gerenciar gateways de entrada usando KubeAPI.
O YAML a seguir mostra um exemplo de configuração de porta.
- name: http-kiali port: 20001 protocol: TCP targetPort: 20001spec: clusterIds: - c729bdf9ef09b4a259e693f76axxx cpu: {} externalTrafficPolicy: Local maxReplicas: 5 minReplicas: 2 ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 targetPort: 443 - name: tls port: 15443 targetPort: 15443 - name: http-kiali port: 20001 protocol: TCP targetPort: 20001 -
Use o YAML a seguir para criar uma regra de gateway. Para obter detalhes, consulte Gerenciar regras de gateway.
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: kiali-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 20001 protocol: HTTP -
Use o YAML a seguir para criar um serviço virtual. Para obter detalhes, consulte Gerenciar serviços virtuais.
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali-vs namespace: istio-system spec: gateways: - kiali-gateway hosts: - '*' http: - route: - destination: host: kiali port: number: 20001 -
Faça login na topologia de malha.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha .
Na seção Config Info, clique em Access from Ingress Gateway ao lado de Activate ASM mesh topology para ir à página de login da topologia de malha.
Método 3: Acesso personalizado à topologia de malha
Após ativar a topologia de malha, um Service chamado Kiali é criado no namespace istio-system do seu cluster Kubernetes. É possível acessar a topologia de malha criando um serviço de proxy para esse Service. Por exemplo, crie um proxy reverso Nginx para o Service Kiali e acesse a topologia de malha por meio do Nginx. Use a Custom Access Configuration para definir como acessar o Service Kiali. Este método requer a versão 1.16.4.5 ou posterior do ASM. Para obter detalhes sobre como atualizar sua versão do ASM, consulte Atualizar uma instância do ASM.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Abaixo da seção Authentication, clique em Expand advanced options. Na seção Customize Access Modes, configure as informações necessárias e clique em Save configuration of Mesh Topology.
Item de configuração
Descrição
Customize a Domain Name
Define o nome de domínio personalizado atendido pela topologia de malha. Se você usar um nome de domínio personalizado para acessar a topologia de malha, configure esta definição. Caso contrário, o fluxo de login OIDC pode ser afetado. Ao fazer login na topologia de malha usando OIDC, a topologia de malha substitui o nome de domínio no URI de redirecionamento pelo seu nome de domínio personalizado para garantir a integração adequada com a aplicação OIDC.
Customize a Port
Define a porta na qual o serviço de topologia de malha escuta. O padrão é 20001. Ao definir isso, o serviço de topologia de malha escutará na porta personalizada especificada.
Customize a Service Root Path
Define o caminho raiz atendido pela topologia de malha. O padrão é /. Ao definir isso, a topologia de malha servirá conteúdo a partir do caminho especificado. Ao acessar a topologia de malha, anexe seu caminho raiz personalizado ao endereço de acesso original.
Select a Protocol (https/http)
Define o protocolo atendido pela topologia de malha. Apenas http ou https são suportados. Se você acessar a topologia de malha usando HTTPS, configure esta definição. Caso contrário, o fluxo de login OIDC pode ser afetado. Ao fazer login na topologia de malha usando OIDC, a topologia de malha substitui a parte do protocolo no URI de redirecionamento pelo seu protocolo personalizado para garantir a integração adequada com a aplicação OIDC.
Etapa 3: Fazer login na topologia de malha
Existem três maneiras de fazer login na topologia de malha. O login via OIDC requer a versão 1.15.3.120 ou posterior do ASM. O login com identidade de conta Alibaba Cloud requer a versão 1.16.4.5 ou posterior do ASM.
Método 1: Fazer login na topologia de malha usando um token
Versão do ASM anterior a 1.12.4.50
Obtenha um token no console do ACK e use-o para fazer login na topologia de malha.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Secret, selecione istio-system para Namespaces, clique em kiali-service-account-token-**** e, em seguida, clique no ícone
ao lado da linha token para copiar o token.Na página de login da topologia de malha, cole o token e clique em Log in para acessar o console da topologia de malha.
Versão do ASM 1.12.4.50 ou posterior
Obtenha um token no console do ASM e use-o para fazer login na topologia de malha.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha .
Na página Mesh Topology, na seção Access, clique em Copy token and open in new window.
Na página de login da topologia de malha, cole o token e clique em Log in para acessar o console da topologia de malha.
Método 2: Fazer login na topologia de malha usando OIDC
O OIDC (OpenID Connect) é um protocolo de autenticação e autorização de identidade comumente usado para implementar single sign-on (SSO). Você pode integrar um provedor de identidade (IdP) usando o protocolo OIDC para fazer login na topologia de malha. Este método requer a versão 1.15.3.120 ou posterior do ASM. Para obter detalhes sobre como atualizar sua versão do ASM, consulte Atualizar uma instância do ASM.
-
Configure seu IdP. Para obter detalhes, consulte as etapas 1 e 2 em Integrar o ASM com o Alibaba Cloud IDaaS para SSO em aplicações de malha.
Defina o Login Redirect URI como o endereço IP do CLB da topologia de malha (para acesso direto via CLB) ou o endereço do gateway do ASM (para acesso via gateway do ASM). Exemplos:
Se estiver acessando a topologia de malha via CLB e o IP do CLB for
xxx.xxx.xxx.xxx, defina o Login Redirect URI comohttp://xxx.xxx.xxx.xxx:20001. Não anexe/ou caminhos como/xxxa20001.Se estiver acessando a topologia de malha via gateway do ASM e o IP do gateway for
yyy.yyy.yyy.yyy, defina o Login Redirect URI comohttp://yyy.yyy.yyy.yyy:20001. Não anexe/ou caminhos como/xxxa20001.
-
Faça login na topologia de malha usando OIDC.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância desejada. No painel de navegação à esquerda, escolha .
Na seção Authentication, selecione Login with OIDC. Configure as informações necessárias, clique em Save configuration of Mesh Topology e, em seguida, clique em Open ASM mesh topology in a new page.
Na página de login da topologia de malha, clique em Log In with OpenID para ir à página de login da aplicação OIDC.
Método 3: Fazer login na topologia de malha usando a identidade da conta Alibaba Cloud
Você pode integrar uma aplicação OAuth do RAM da Alibaba Cloud usando o protocolo OIDC para fazer login na topologia de malha com sua identidade de conta Alibaba Cloud. Para mais informações, consulte Login de aplicação web na Alibaba Cloud.
Ao usar este método, o Service Mesh ASM cria automaticamente uma aplicação OAuth do RAM da Alibaba Cloud com o prefixo asm-kiali e a integra à topologia de malha. Este método requer a versão 1.16.4.5 ou posterior do ASM. Para obter detalhes sobre como atualizar sua versão do ASM, consulte Atualizar uma instância do ASM.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Na seção Login authentication method, selecione Alibaba Cloud account identity logon. Na caixa de diálogo exibida, clique em Add callback address, insira o endereço de callback e clique em OK.
A malha passará por uma breve atualização. Aguarde até que a atualização seja concluída antes de prosseguir.
NotaPara o formato do endereço de callback, consulte Login Redirect URI em Método 2: Fazer login na topologia de malha usando OIDC.
Se você usar o acesso direto à topologia de malha, o endereço de callback será preenchido automaticamente.
Na página de login da topologia de malha, clique em Log In with OpenID para fazer login com sua identidade de conta Alibaba Cloud.
Perguntas frequentes
Por que a topologia de malha não carrega ao usar o ARMS Prometheus para coletar métricas?
Se o seu Service Mesh ASM selecionar Use ARMS Prometheus to collect metrics e você tiver ativado o token de autenticação para sua instância do ARMS Prometheus, a topologia de malha não conseguirá acessar sua instância do ARMS Prometheus, fazendo com que a topologia de malha falhe ao carregar. Escolha uma das seguintes soluções. Para mais informações, consulte Conectar dados de monitoramento do Prometheus ao Grafana local.
Solução 1: No console do ARMS, desative o token na página Setting. Para mais informações, consulte Conectar dados do Prometheus ao Grafana ou aplicações autogerenciadas usando endpoints de API HTTP.
-
Solução 2: Configure o token de autenticação do ARMS Prometheus na topologia de malha para conectar à sua instância do ARMS Prometheus.
NotaEsta operação requer a versão 1.15.3.120 ou posterior do ASM.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na caixa de texto na seção Connection with ARMS Prometheus, insira o token de autenticação configurado para o ARMS Prometheus. Em seguida, clique em Save configuration of Mesh Topology para configurar o token de autenticação para que a topologia de malha acesse sua instância do ARMS Prometheus.
Por que a topologia de malha mostra apenas tráfego parcial?
Siga estas etapas para solucionar o problema.
-
Problema de configuração
Confirme se a observação da topologia de malha selecionou os tipos de tráfego corretos (como gRPC, HTTP ou TCP) nas configurações de exibição de tráfego. Não selecionar essas opções pode impedir a visualização de todas as informações de tráfego.
-
Limitação de namespace
Na topologia de malha, confirme se você selecionou os namespaces corretos. Parte do tráfego pode residir em namespaces não selecionados.
-
Coleta e atualização de dados
Confirme se sua instância do Prometheus está coletando métricas corretamente. O ASM exibe apenas dados coletados com sucesso. Alguns dados de tráfego podem não aparecer prontamente no gráfico de topologia devido a atrasos, perda de pacotes ou outros problemas.
Confirme se todas as cargas de trabalho no seu cluster têm proxies de malha injetados. Apenas cargas de trabalho com proxies de malha injetados relatam métricas de monitoramento de tráfego.
Confirme se a página da topologia de malha é atualizada em tempo real ou atualize manualmente para obter os dados de tráfego mais recentes.
-
Efeitos da configuração de proxy sidecar e tráfego
Parte do tráfego pode ser afetada pelas configurações de proxy Sidecar ou pelas configurações de tráfego Sidecar no ASM, fazendo com que ele ignore o proxy de malha e se torne inobservável. Verifique se a configuração do proxy Sidecar desativa o proxy por porta ou endereço, ou se a configuração de tráfego Sidecar especifica destinos de tráfego de entrada e saída corretos.
Referências
Se encontrar certas requisições com latência anormal, use logs de acesso para identificar a causa. Para obter detalhes, consulte Identificar causas de latência anormal de requisições usando logs de acesso.
Para minimizar a latência de invocação de serviços mantendo o tráfego dentro da mesma zona ao acessar um serviço alvo a partir de um cliente, use o roteamento prioritário na mesma zona. Para obter detalhes, consulte Observar o roteamento prioritário na mesma zona usando a topologia de malha.
Para observar a topologia de tráfego em vários clusters, use a topologia de malha no modo gerenciado. Isso implanta apenas um serviço de topologia de malha para toda a instância de malha, reduzindo o esforço de configuração. Para obter detalhes, consulte Ativar a topologia de malha no modo gerenciado.
A interceptação de requisições pelo Sidecar pode interferir nas verificações de integridade das aplicações na malha, causando falhas. Ative o redirecionamento de verificação de integridade para garantir que as verificações sejam executadas corretamente. Para obter detalhes, consulte Ativar o redirecionamento de verificação de integridade para aplicações na malha.