Resolva problemas do Cloud Service Mesh passo a passo

Esta secção explica como resolver problemas quando usa o Cloud Service Mesh. Se precisar de assistência adicional, consulte a secção Receber apoio técnico.

Passos de resolução de problemas

Siga estes passos gerais para resolver problemas do Cloud Service Mesh:

  1. Use as ferramentas de validação de configuração automática.
  2. Verifique se tem um problema comum com uma solução conhecida.
  3. Restrinja o âmbito do problema.
  4. Reveja os registos e as informações relevantes.
  5. Recolha registos de diagnóstico e procure ajuda.

A ferramenta de diagnóstico da malha de serviços na nuvem pode detetar problemas de configuração comuns. Instale a ferramenta de resolução de problemas seguindo estas instruções.

Antes de começar

  1. Certifique-se de que o contexto kubeconfig do cluster está disponível no ficheiro kubeconfig. Caso contrário, execute o seguinte comando:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CLUSTER_LOCATION --project=PROJECT_NAME
    

    Substitua o seguinte:

    • CLUSTER_NAME: o nome do cluster.
    • CLUSTER_LOCATION: a zona ou a região do seu cluster.
    • PROJECT_NAME: o nome do projeto.
  2. Verifique se as Credenciais padrão da aplicação foram criadas. Se não estiverem, execute um dos seguintes comandos:

    gcloud auth application-default login --billing-project=PROJECT_NAME
    
    gcloud auth application-default set-quota-project PROJECT_NAME
    

    Substituir PROJECT_NAME pelo nome do seu projeto.

Veja o estado do plano de controlo

Os seguintes comandos podem ajudar a compreender o estado do plano de controlo do Cloud Service Mesh:

Gerido

  • Obtenha a lista do estado da ligação dos clientes ao plano de controlo da Cloud Service Mesh:

    gcloud beta container fleet mesh debug proxy-status \
        --membership=MEMBERSHIP_NAME \
        --location=MEMBERSHIP_LOCATION \
        --project=PROJECT_NAME
    

    Substitua o seguinte:

    • MEMBERSHIP_NAME: o nome da sua subscrição.
    • MEMBERSHIP_LOCATION: a região da sua subscrição. Pode verificar a localização da sua subscrição com o comando gcloud container fleet memberships list --project FLEET_PROJECT_ID substituindo FLEET_PROJECT_ID pelo ID do projeto da frota.
    • PROJECT_NAME: o nome do projeto.

    A tabela seguinte descreve as possíveis respostas.

    DESCONHECIDO (Predefinição) ⁣As informações de estado não estão disponíveis ou são desconhecidas.
    SYNCED O plano de controlo enviou a configuração para o cliente e recebeu um ACK do cliente.
    ERRO ⁣O plano de controlo enviou a configuração para o cliente e recebeu um NACK do cliente.
    DESATUALIZADO O plano de controlo enviou a configuração ao cliente, mas não recebeu um ACK nem um NACK do cliente.
    NÃO ENVIADO A configuração não foi enviada.
    N/A Não aplicável.
    Não suportado O estado de sincronização não é suportado pela nossa API de resolução de problemas.

No cluster

  • kubectl get pods -n istio-system
  • kubectl describe -n istio-system
  • Para todos os agrupamentos em 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 compreender a escala da implementação:

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

Veja as configurações de proxy

O seguinte comando pode ajudar a compreender as configurações do proxy do Cloud Service Mesh:

Gerido

gcloud beta container fleet mesh debug proxy-config POD_NAME.NAMESPACE \ 
    --type=TYPE \
    --membership=MEMBERSHIP_NAME \
    --location=MEMBERSHIP_LOCATION \
    --project=PROJECT_NAME
  • POD_NAME: o nome do seu Pod.
  • NAMESPACE: o espaço de nomes do seu Pod.
  • TYPE: um dos seguintes: cluster, listeners, routes, endpoints, bootstrap, log, secret, all.
  • MEMBERSHIP_NAME: o nome da sua subscrição.
  • MEMBERSHIP_LOCATION: a região da sua subscrição. Pode verificar a localização da sua subscrição com o comando gcloud container fleet memberships list --project FLEET_PROJECT_ID substituindo FLEET_PROJECT_ID pelo ID do projeto da frota.
  • PROJECT_NAME: o nome do projeto.

No cluster

Use o istioctl proxy-config para ver as configurações de proxy para planos de controlo no cluster. Para mais informações, consulte o artigo Depurar o Envoy e o istiod.

Se o problema persistir, consulte a secção seguinte para verificar se o seu problema já é conhecido.

Verifique problemas e soluções comuns

Pode poupar tempo ao verificar se os seus sintomas correspondem a um problema nestas secções de problemas e resoluções comuns, agrupadas por área funcional do Cloud Service Mesh:

Se isto não resolver o problema, consulte a secção seguinte.

Restrinja o âmbito do problema

A malha de serviços na nuvem consiste em várias tecnologias que funcionam em conjunto, o que significa que determinados tipos de problemas estão associados a áreas funcionais ou componentes específicos. Cada um destes componentes gera os seus próprios registos úteis. Antes de tentar analisar manualmente o volume de informações que fornecem, restrinja o âmbito da resolução de problemas respondendo às seguintes perguntas:

  • O problema ocorre no plano de controlo ou no plano de dados, por exemplo, proxies istiod ou Envoy?
  • Em que área funcional está a ter o problema, por exemplo, rede, telemetria, segurança, etc.?
  • Existe uma perda de tráfego ao nível da malha de serviços ou numa implementação específica?
  • O problema aparece ou agrava-se devido à incapacidade de dimensionar o tráfego na malha de serviços?
  • O problema causa latência ou outros problemas de desempenho?
  • Consegue reproduzir o problema a pedido?
  • O problema começou após uma alteração de configuração recente no Istio, GKE, etc.?
  • Existe um aumento ou um pico no tráfego na malha de serviços?
  • Este cluster tem funcionalidades notáveis ativadas ou implementações não típicas?
  • Observa uma utilização elevada da CPU ou da memória? Se sim, qual é a utilização esperada em grande escala?
  • Existem restrições de quota a ter em conta?

Reveja os registos e as informações relevantes

Depois de restringir o âmbito do problema, pode concentrar-se em determinados registos e informações de forma mais eficaz. Para saber mais acerca dos registos que o Cloud Service Mesh gera e como interpretar as informações que contêm, consulte o artigo Interpretar registos do Cloud Service Mesh.