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:
- Use as ferramentas de validação de configuração automática.
- Verifique se tem um problema comum com uma solução conhecida.
- Restrinja o âmbito do problema.
- Reveja os registos e as informações relevantes.
- 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
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.
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 comandogcloud 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 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 comandogcloud 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 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:
- Problemas de instalação
- Problemas do plano de controlo gerido
- Problemas de observabilidade
- Problemas deGoogle Cloud implementação
- Problemas de proxy
- Problemas de recursos
- Problemas de dimensionamento
- Problemas de segurança
- Problemas de gestão de tráfego
- Problemas com o webhook
- Problemas com proxies complementares
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.