O Service Mesh (ASM) permite iniciar tarefas de inspeção de pacotes para cargas de trabalho implantadas em uma instância do ASM. Com isso, você obtém informações sobre pacotes TCP em pods durante um determinado período e exporta esses pacotes para os hosts dos nós em um cluster Kubernetes para que você baixe e visualize. Este tópico descreve como diagnosticar o tráfego em uma instância do ASM usando uma tarefa de inspeção de pacotes.
Informações de contexto
Devido à diversidade de aplicativos gerenciados pelo ASM, parte do tráfego pode não atender às expectativas. Por exemplo, os cabeçalhos de requisição podem ser muito grandes ou as requisições podem não estar em conformidade com o protocolo HTTP padrão. As tarefas de inspeção de pacotes capturam rapidamente as informações de tráfego das cargas de trabalho e ajudam a diagnosticar problemas complexos de tráfego.
Pré-requisitos
Uma instância do ASM da Enterprise Edition ou Ultimate Edition, com a versão 1.21.6.72 ou posterior. Para mais informações, consulte Crie uma instância do ASM ou Atualize uma instância do ASM.
Um cluster do Container Service for Kubernetes (ACK) adicionado à instância do ASM. Para mais informações, consulte Adicione um cluster a uma instância do ASM.
Crie uma tarefa de inspeção de pacotes
Acesse o console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Instance > Mesh Diagnosis.
Na página Mesh Diagnosis, clique em Service Packet Inspection.
-
Na guia Service Packet Inspection, clique em Create Task. Na caixa de diálogo, configure os seguintes parâmetros:
Parâmetro
Descrição
Kubernetes Clusters
O cluster ACK no qual o pod de destino está implantado.
Namespace
O namespace do pod de destino.
Pod Name
O pod do qual capturar pacotes.
Duration
A duração da captura de pacotes.
tcpdump Parameters
Filtros que determinam quais pacotes capturar. Consulte Filtros comuns do tcpdump para ver exemplos. Para a referência completa dos parâmetros, consulte tcpdump(1).
Save File Name
O nome do arquivo pcap de saída.
Clique em OK.
Aguarde até que a coluna Status da tarefa mude para Complete.
Salve os valores nas colunas Host of File e File Save Path. Conecte-se ao nó Kubernetes correspondente e baixe o arquivo pcap do caminho especificado. Para obter mais detalhes, consulte Use o Workbench para fazer upload e download de arquivos em uma instância.
Filtros comuns do tcpdump
Cada filtro tem como alvo um segmento específico do fluxo de tráfego do sidecar. O diagrama a seguir mostra como o tráfego se move em um pod com um proxy sidecar:
Client pod Server pod
+--------------------------+ +--------------------------+
| | | |
| App -(lo)-> Sidecar | | Sidecar -(lo)-> App |
| (port 15001) | | (127.0.0.6) |
| | | |
| Sidecar -(any)-> | | <-(any)- Sidecar |
| [destination service] | | [client pod] |
+--------------------------+ +--------------------------+
Use os filtros abaixo de acordo com o segmento de tráfego que você precisa inspecionar.
Pod cliente: do aplicativo para o proxy sidecar
Capture o tráfego entre o aplicativo e o listener do proxy sidecar de saída (porta 15001) em um pod cliente:
# Replace 172.16.xx.xx with the IP address of the destination service.
-i lo dst port 15001 or src host 172.16.xx.xx
Este filtro usa a interface de loopback (lo) porque a comunicação entre o aplicativo e o sidecar ocorre no mesmo pod via localhost.
Pod cliente: do proxy sidecar para o service de destino
Capture o tráfego que sai do proxy sidecar do pod cliente em direção a um service de destino:
# Replace 192.168.xx.xx with the IP address of the pod that runs the destination service.
-i any host 192.168.xx.xx
Este filtro usa -i any porque o tráfego sai do pod por meio de uma interface de rede.
Pod servidor: do proxy sidecar para o aplicativo
Capture o tráfego de entrada que o proxy sidecar encaminha para o aplicativo em um pod servidor:
-i lo host 127.0.0.6
Pod servidor: do pod cliente para o proxy sidecar
Capture o tráfego que chega a um pod servidor a partir de um pod cliente específico:
# Replace 192.168.xx.xx with the IP address of the client pod.
-i any host 192.168.xx.xx
Exclua uma tarefa de inspeção de pacotes
Acesse o console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Instance > Mesh Diagnosis.
Na página Mesh Diagnosis, clique na guia Service Packet Inspection.
Encontre a tarefa e clique em Delete na coluna Actions. Na mensagem de confirmação, clique em OK.
Tópicos relacionados
Página man do tcpdump -- Referência completa para a sintaxe de filtros do tcpdump.