Solução de problemas do Cloud Service Mesh passo a passo
Esta seção explica como solucionar e resolver problemas ao usar o 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:
- Use as ferramentas de validação de configurações automatizadas.
- Verifique se você tem um problema comum com uma solução conhecida.
- Restrinja o escopo do problema.
- Analise registros e informações relevantes.
- Colete registros de diagnóstico e procure ajuda.
A ferramenta de diagnóstico do Cloud Service Mesh pode detectar problemas comuns de configuração. Instale a ferramenta de solução de problemas usando estes instruções.
Antes de começar
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 cluster.PROJECT_NAME
: o nome do projeto
Verifique se o Application Default Credentials são criados. Caso contrário, 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 ajudar 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 sua assinatura.MEMBERSHIP_LOCATION
: a região do seu assinatura. Verifique a localização da sua assinatura comgcloud container fleet memberships list --project FLEET_PROJECT_ID
substituindoFLEET_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 para o cliente e recebeu um ACK dele. ERRO O plano de controle enviou a configuração para o 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
Conferir as 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 comgcloud container fleet memberships list --project FLEET_PROJECT_ID
substituindoFLEET_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
Como depurar o Envoy e o istiod.
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 Cloud Service Mesh:
- Problemas de instalação
- Problemas de plano de controle gerenciado
- Problemas de observabilidade
- Problemas de implantação fora do Google Cloud
- Problemas de proxy
- Problemas de recursos
- Problemas de escalonamento
- Problemas de segurança
- Problemas de gerenciamento de tráfego
- Problemas com o webhook
- Problemas de proxies do sidecar
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 eles contêm, consulte Como interpretar os registros do Cloud Service Mesh.