Anthos Service Mesh 1.6

Solução de problemas do Anthos Service Mesh

Nesta seção, explicamos como solucionar e resolver problemas ao usar o Anthos Service Mesh. Se você precisar de mais ajuda, consulte Como receber suporte.

Etapas para solução de problemas

Siga estas etapas gerais para resolver o problema no Anthos Service Mesh com mais eficiência:

  1. Use as ferramentas de validação de configurações automatizadas.
  2. Verifique se você tem um problema comum com uma solução conhecida.
  3. Restrinja o escopo do problema.
  4. Analise registros e informações relevantes.
  5. Colete registros de diagnóstico e procure ajuda.

Usar ferramentas de validação automatizadas

O Anthos Service Mesh inclui ferramentas automatizadas de diagnóstico e validação de configuração que podem resolver problemas e ajudar você a evitá-los no futuro. As seções a seguir explicam como usar essas ferramentas.

istioctl analyze

A ferramenta de diagnóstico istioctl analyze pode detectar problemas comuns de configuração. Instale istioctl usando estas instruções.

istioctl analyze lê uma configuração de cluster e, se encontra um problema, fornece mensagens informativas e sugere soluções. Ele pode ser executado em um cluster ativo ou em um conjunto de arquivos de configuração locais. Ele também pode ser executado em uma combinação dos dois, permitindo que você encontre problemas antes de aplicar alterações a um cluster. Para mais informações, consulte Diagnosticar a configuração com istioctl analyze. Para mais informações sobre os erros que o istioctl analyze detecta, consulte Mensagens de análise de configuração.

Analisar um cluster ativo

Analise um cluster ativo usando o comando a seguir.

istioctl analyze -A

Se o istioctl analyze detectar um problema com sua configuração, ele exibirá uma mensagem com informações úteis para resolvê-lo, se conhecido. Por exemplo, se você cometeu o erro comum para não rotular o namespace corretamente para ativar a injeção de sidecar do Istio, ele gerará a seguinte mensagem:

Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection.
Run 'kubectl label namespace default istio-injection=enabled' to enable it,
or 'kubectl label namespace default istio-injection=disabled'
to explicitly mark it as not needing injection

asmctl

Use asmctl para confirmar que a implantação do Anthos Service Mesh está configurada corretamente. Esse comando verifica se as APIs adequadas estão ativadas e se o mTLS está configurado corretamente:

asmctl validate --with-testing-workloads

Se o problema persistir, consulte a próxima seção para verificar se ele já é conhecido.

Verificar problemas e soluções comuns

É possível economizar tempo verificando se os sintomas correspondem a um problema nessas seções comuns de problemas e resoluções, agrupado pela área funcional do Anthos Service Mesh:

Se isso não resolver o problema, consulte a próxima seção para restringir o escopo do problema para ajudar na solução do problema.

Restringir o escopo do problema

O Anthos Service Mesh consiste em várias tecnologias que trabalham juntas. Isso significa que determinados tipos de problemas estão associados a determinadas funções ou componentes funcionais. Cada um desses componentes gera registros úteis. Antes de tentar analisar manualmente o volume de informações que eles fornecem, restrinja o escopo da solução de problemas respondendo às seguintes perguntas:

  • O problema ocorre dentro do plano de controle ou do plano de dados, por exemplo, proxies do Istio ou Envoy?
  • Em qual área funcional você está enfrentando o problema, por exemplo: rede, telemetria, segurança etc.?
  • Há perda de tráfego de malha de serviço ampla ou em uma implantação específica?
  • O problema surge ou piora devido à falta de capacidade de escalonamento de tráfego na malha de serviço?
  • O problema causa latência ou outros problemas de desempenho?
  • É possível reproduzir o problema sob demanda?
  • O problema começou após uma alteração de configuração recente no Istio, no GKE etc.?
  • Há um aumento ou pico no tráfego na malha de serviço?
  • Esse cluster tem algum recurso perceptível ativado ou implantações não típicas?
  • Você observa alta utilização da CPU ou da memória? Em caso afirmativo, qual é o uso esperado em grande escala?
  • Há restrições de cota a serem consideradas?

Ver status do plano de controle

Os comandos a seguir podem ajudar a entender o status do plano de controle do Anthos Service Mesh:

  • kubectl get pods -n istio-system
  • kubectl get describe -n istio-system
  • Para todos os pods no istio-system: kubectl logs -n istio-system -l istio --all-containers
  • istioctl version
  • istioctl proxy-status
  • kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
  • kubectl top pods -n istio-system

Use os seguintes comandos para entender a escala da implantação:

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

Analisar registros e informações relevantes

Depois de restringir o escopo do problema, concentre-se em determinados registros e informações com mais eficiência. Consulte Analisar registros e informações relevantes para saber mais sobre os registros que o Anthos Service Mesh gera e como interpretar as informações que eles contêm.

Coletar registros de diagnóstico e procurar ajuda

Se outras etapas de solução de problemas tiverem falhado, será possível coletar registros de diagnóstico e buscar mais ajuda. Use este script (em inglês) para gravar todos os recursos/registros do Kubernetes e do Istio do cluster em uma pasta istio-dump. Prepare essa pasta ao entrar em contato com o suporte descrito em Como receber suporte.