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 estas instruções.
Antes de começar
Verifique se o contexto kubeconfig do cluster está disponível no arquivo 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 do cluster.PROJECT_NAME
: o nome do projeto
Verifique se as Application Default Credentials foram criadas. 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
Substituindo
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
Receba a lista de status de conexão dos clientes com o 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 da sua filiação. Você pode verificar a localização da sua assinatura comgcloud container fleet memberships list --project FLEET_PROJECT_ID
substituindoFLEET_PROJECT_ID
pelo ID do projeto da frota.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. VENCIDO O plano de controle enviou a configuração ao cliente, mas não recebeu um ACK ou NACK do cliente. NOT SENT 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 abaixo pode ajudar a entender as configurações do proxy do Cloud Service Mesh:
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 dos seguintes: cluster, listeners, rotas, endpoints, bootstrap, log, secret, all.MEMBERSHIP_NAME
: o nome da sua assinatura.MEMBERSHIP_LOCATION
: a região da sua filiação. Você pode verificar a localização da sua assinatura comgcloud container fleet memberships list --project FLEET_PROJECT_ID
substituindoFLEET_PROJECT_ID
pelo ID do projeto da frota.PROJECT_NAME
: o nome do projeto
No cluster
Use o istioctl proxy-config
para conferir as configurações de proxy dos planos de controle no cluster. 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. 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
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.