O Service Mesh (ASM) permite iniciar tarefas de inspeção de pacotes para workloads implantados em uma instância ASM. Esse recurso obtém informações sobre pacotes TCP em pods durante um período específico e armazena os pacotes nos hosts dos nós de um cluster Kubernetes para download e visualização. Este tópico descreve como diagnosticar o tráfego em uma instância ASM por meio de uma tarefa de inspeção de pacotes.
Informações básicas
Devido à diversidade de aplicações gerenciadas pelo ASM, alguns fluxos de tráfego podem não corresponder ao esperado. Por exemplo, cabeçalhos de requisição excessivamente grandes ou requisições fora do padrão do protocolo HTTP. As tarefas de inspeção de pacotes capturam rapidamente informações de tráfego dos workloads e facilitam o diagnóstico de problemas complexos.
Pré-requisitos
Uma instância ASM das edições Enterprise ou Ultimate, executando a versão 1.21.6.72 ou posterior. Para mais informações, consulte Crie uma instância ASM ou Atualize uma instância ASM.
Um cluster Container Service for Kubernetes (ACK) adicionado à instância ASM. Para mais detalhes, consulte Adicionar um cluster a uma instância ASM.
Crie uma tarefa de inspeção de pacotes
Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha ASM Instance > Mesh Diagnosis.
Na página Mesh Diagnosis, clique em Service Packet Inspection.
-
Na aba Service Packet Inspection, clique em Create Task. Na caixa de diálogo, configure os seguintes parâmetros:
Parâmetro
Descrição
Kubernetes Clusters
Cluster ACK onde o pod de destino está implantado.
Namespace
Namespace do pod de destino.
Pod Name
Pod do qual os pacotes serão capturados.
Duration
Duração da captura de pacotes.
tcpdump Parameters
Filtros que determinam quais pacotes serão capturados. Consulte Filtros comuns do tcpdump para ver exemplos. Para a referência completa de parâmetros, consulte tcpdump(1).
Save File Name
Nome do arquivo pcap de saída.
Clique em OK.
Aguarde até que a coluna Status da tarefa mude para Complete.
Anote os valores nas colunas Host of File e File Save Path. Conecte-se ao nó Kubernetes correspondente e baixe o arquivo pcap no caminho especificado. Para mais detalhes, consulte Usar o Workbench para fazer upload e download de arquivos em uma instância.
Filtros comuns do tcpdump
Cada filtro visa um segmento específico do fluxo de tráfego do sidecar. O diagrama abaixo ilustra como o tráfego percorre 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 conforme o segmento de tráfego a ser inspecionado.
Pod cliente: aplicação para proxy sidecar
Capture o tráfego entre a aplicação e o listener outbound do proxy sidecar (porta 15001) dentro de 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
Esse filtro usa a interface de loopback (lo), pois a comunicação entre a aplicação e o sidecar ocorre dentro do mesmo pod via localhost.
Pod cliente: proxy sidecar para serviço de destino
Capture o tráfego que sai do proxy sidecar do pod cliente em direção a um serviço 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 uma interface de rede.
Pod servidor: proxy sidecar para aplicação
Capture o tráfego de entrada que o proxy sidecar encaminha para a aplicação dentro de um pod servidor:
-i lo host 127.0.0.6
Pod servidor: pod cliente para proxy sidecar
Capture o tráfego que chega a um pod servidor proveniente 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
Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.
Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha ASM Instance > Mesh Diagnosis.
Na página Mesh Diagnosis, clique em na aba Service Packet Inspection.
Localize 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 da sintaxe de filtros do tcpdump.