Passo a passo para resolver problemas do Cloud Service Mesh

Esta seção explica como resolver problemas ao usar do Cloud Service Mesh. Se você precisar de mais ajuda, consulte Como receber suporte.

Etapas da solução de problemas

Siga estas etapas gerais para resolver problemas do Cloud Service Mesh:

  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.

A ferramenta de diagnóstico do Cloud Service Mesh pode detectar configurações comuns problemas. Instale a ferramenta de solução de problemas usando estes instructions.

Antes de começar

  1. Verifique se o contexto kubeconfig do cluster está disponível no kubeconfig. Caso contrário, execute o seguinte comando:

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

    Substitua:

    • CLUSTER_NAME: o nome do cluster.
    • CLUSTER_LOCATION: a zona ou região da sua aglomerado.
    • PROJECT_NAME: o nome do projeto
  2. Verifique se o Application Default Credentials são criados. 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
    

    Substitua PROJECT_NAME pelo nome do projeto.

Ver status do plano de controle

Os comandos a seguir podem ajudá-lo a entender o status do Plano de controle do Cloud Service Mesh:

Gerenciado

  • Confira a lista de status da conexão de clientes no plano de controle do Cloud Service Mesh:

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

    Substitua:

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

    A tabela a seguir descreve as possíveis respostas.

    DESCONHECIDO (Padrão) ⁣As informações de status não estão disponíveis ou são desconhecidas.
    SINCRONIZADO O plano de controle enviou a configuração ao cliente e recebeu uma ACK dele.
    ERRO ⁣O plano de controle enviou a configuração ao cliente e recebeu um NACK dele.
    DESLOCADO O plano de controle enviou a configuração ao cliente, mas não recebeu um ACK ou um NACK do cliente.
    NÃO ENVIADO A configuração não foi enviada.
    N/A Não relevante.
    Sem suporte O status de sincronização não é compatível com nossa API de solução de problemas.

No cluster

  • kubectl get pods -n istio-system
  • kubectl 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

Exibir configurações de proxy

O comando a seguir pode ajudar você a entender o proxy do Cloud Service Mesh de configuração:

Gerenciado

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 pod.
  • NAMESPACE: o namespace do pod.
  • TYPE: um para os seguintes itens: cluster, listeners, rotas, endpoints, bootstrap, registro, segredo, tudo.
  • MEMBERSHIP_NAME: o nome da assinatura.
  • MEMBERSHIP_LOCATION: a região do seu assinatura. Verifique a localização da sua assinatura com gcloud container fleet memberships list --project FLEET_PROJECT_ID substituindo FLEET_PROJECT_ID pelo projeto da frota ID.
  • PROJECT_NAME: o nome do projeto

No cluster

Use o istioctl proxy-config para ver as configurações de proxy para clusters e planos de controle. Para mais informações, consulte Depuração do Envoy e do istiod.

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

Verificar problemas e soluções comuns

Você pode economizar tempo verificando se seus sintomas correspondem a um problema nessas áreas comuns seções de problemas e resoluções, agrupadas por função do Cloud Service Mesh área:

Se isso não resolver o problema, veja a próxima seção.

Restringir o escopo do problema

O Cloud Service Mesh consiste em várias tecnologias que trabalham juntas, o que significa que certos tipos de problemas estão associados a determinadas áreas funcionais ou componentes. 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 istiod 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?

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. Para saber mais sobre os registros que o Cloud Service Mesh gera e como interpretar as informações que elas contêm, consulte Como interpretar registros do Cloud Service Mesh.