Nesta seção, explicamos como solucionar e resolver problemas ao usar o Anthos Service Mesh. Se você precisar de mais ajuda, consulte Como receber suporte.
Etapas de solução de problemas
Siga estas etapas gerais para resolver o problema no Anthos Service Mesh com mais eficiência:
- 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.
kpt
erros durante a instalação
Quando você instala o Anthos Service Mesh usando install_asm
com uma versão não compatível de
kpt
, install_asm
gera as seguintes mensagens de erro:
2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM.. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 41.7M 100 41.7M 0 0 31.1M 0 0:00:01 0:00:01 --:--:-- 31.1M 2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package... 2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:54:59.832100 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3) 2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:55:01.963543 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3) 2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm' 2021-07-14T15:55:04.101990 install_asm_1_9_3: ------------- error: unknown flag: --auto-set 2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
Se você encontrar esses erros, faça o download da versão mais recente do install_asm
. O script install_asm
precisa ser uma das seguintes versões ou mais recentes:
- Para a versão 1.8 - 1.8.6-asm.5+config1
- Para a versão 1.9 - 1.9.6-asm.2+config1
- Para a versão 1.10 - 1.10.2-asm.3+config1
Se você fizer o download do anthos-service-mesh-package
para instalar o Anthos Service Mesh usando istioctl install
, se tiver uma versão não compatível de kpt
, verá as seguintes mensagens de erro:
Package "asm": Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages * branch release-1.10-asm -> FETCH_HEAD Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema. Please update the package to the latest format by following https://kpt.dev/installation/migration.
A instalação do Anthos Service Mesh requer uma versão antes da 1.x de kpt
. É
necessário que a sessão do shell esteja configurada para usar a versão 0.39.2 do kpt
. Execute o comando a seguir para conseguir a versão kpt
:
kpt version
O resultado será assim:
0.39.2
Se você vir uma versão de kpt
maior que a versão 1.0, consulte
Como configurar seu ambiente para
fazer o download da versão necessária para seu sistema operacional.
Usar ferramentas de validação automatizadas
O Anthos Service Mesh inclui ferramentas automatizadas de diagnóstico e validação de configuração que podem resolver problemas e ajudar você a evitá-los no futuro. As seções a seguir explicam como usar essas ferramentas.
istioctl analyze
A ferramenta de diagnóstico istioctl analyze
pode detectar problemas comuns de configuração.
Instale istioctl
usando estas
instruções.
istioctl analyze
lê uma configuração de cluster e, se encontra um problema,
fornece mensagens informativas e sugere soluções. Ele pode ser executado em um cluster
ativo ou em um conjunto de arquivos de configuração locais. Ele também pode ser executado em uma
combinação dos dois, permitindo que você encontre problemas antes de aplicar
alterações a um cluster. Para mais informações, consulte
Diagnosticar a configuração com istioctl analyze
.
Para mais informações sobre os erros que o istioctl analyze
detecta, consulte
Mensagens de análise de configuração.
Analisar um cluster ativo
Analise um cluster ativo usando o comando a seguir.
istioctl analyze -A
Se o istioctl analyze
detectar um problema com sua configuração, ele exibirá
uma mensagem com informações úteis para resolvê-lo, se conhecido. Por
exemplo, se você cometeu o erro comum de não rotular o namespace corretamente
para ativar a injeção de sidecar do Istio, ele gerará 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 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 Anthos Service Mesh:
- Problemas de plano de controle gerenciado
- Problemas de observabilidade
- Problemas de recursos
- Problemas de escalonamento
- Problemas de segurança
- Problemas de gerenciamento de tráfego
- Problemas de suporte à VM
- 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 Anthos 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?
Ver status do plano de controle
Os comandos a seguir podem ajudar a entender o status do plano de controle do Anthos Service Mesh:
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
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 Anthos Service Mesh gera e como interpretar as informações que eles contêm, consulte Como interpretar os registros do Anthos Service Mesh.