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.
Use ferramentas de validação automáticas
O Cloud Service Mesh inclui ferramentas de diagnóstico e validação de configuração automatizadas que podem resolver problemas e ajudar a evitá-los no futuro. As secções seguintes explicam como usar estas ferramentas.
istioctl analyze
A ferramenta de diagnóstico istioctl analyze
pode detetar problemas de configuração comuns.
Instale a app istioctl
seguindo estas
instruções.
istioctl analyze
lê uma configuração de cluster e, se encontrar um problema,
fornece mensagens informativas e sugere soluções. Pode ser executado num cluster ativo ou num conjunto de ficheiros de configuração local. Também pode ser executado em função de uma combinação dos dois, o que lhe permite encontrar problemas antes de aplicar alterações a um cluster. Para mais informações, consulte o artigo
Diagnostique a sua configuração com o istioctl analyze
.
Para mais informações sobre os erros que o istioctl analyze
deteta, consulte o artigo
Mensagens de análise da configuração.
Analise um cluster ativo
Analise um cluster ativo através do seguinte comando.
istioctl analyze -A
Se o istioctl analyze
detetar um problema com a sua configuração, apresenta uma mensagem com informações úteis para o resolver, se for conhecido. Por exemplo, se cometer o erro comum de não etiquetar corretamente o espaço de nomes para ativar a injeção de sidecar do Istio, é gerada a seguinte mensagem:
Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection
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?
Veja o estado do plano de controlo
Os seguintes comandos podem ajudar a compreender o estado do plano de controlo da Cloud Service Mesh:
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
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.