Risolvi i problemi passo passo di Cloud Service Mesh

Questa sezione spiega come risolvere i problemi relativi all'utilizzo di Cloud Service Mesh. Se hai bisogno di ulteriore assistenza, consulta la pagina Ricevere assistenza.

Passaggi per la risoluzione dei problemi

Segui questi passaggi generali per risolvere i problemi di Cloud Service Mesh:

  1. Utilizzare gli strumenti di convalida automatica della configurazione.
  2. Controlla se hai un problema comune con una soluzione nota.
  3. Restringi l'ambito del problema.
  4. Esamina i log e le informazioni pertinenti.
  5. Raccogli i log di diagnostica e chiedi aiuto.

Utilizzare strumenti di convalida automatica

Cloud Service Mesh include strumenti automatizzati di diagnostica e convalida della configurazione in grado di risolvere i problemi e aiutarti a evitarli in futuro. Le sezioni seguenti spiegano come utilizzare questi strumenti.

istioctl analyze

Lo strumento di diagnostica istioctl analyze è in grado di rilevare i problemi di configurazione più comuni. Installa istioctl seguendo queste instructions.

istioctl analyze legge la configurazione di un cluster e, se trova un problema, fornisce messaggi informativi e suggerisce dei rimedi. Può essere eseguito su un cluster live o un insieme di file di configurazione locali. Può anche essere eseguito su una combinazione dei due, consentendoti di individuare i problemi prima di applicare modifiche a un cluster. Per maggiori informazioni, consulta Diagnosticare la configurazione con istioctl analyze. Per maggiori informazioni sugli errori rilevati da istioctl analyze, consulta i messaggi di analisi della configurazione.

Analizza un cluster in tempo reale

Analizza un cluster in tempo reale utilizzando questo comando.

istioctl analyze -A

Se istioctl analyze rileva un problema con la configurazione, visualizza un messaggio con informazioni utili per risolverlo, se noto. Ad esempio, se commetti l'errore comune di non etichettare correttamente lo spazio dei nomi per abilitare l'inserimento di file collaterali Istio, verrà generato il seguente messaggio:

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 il problema persiste, consulta la sezione successiva per verificare se è già noto.

Verificare la presenza di problemi comuni e soluzioni

Puoi risparmiare tempo controllando se i sintomi corrispondono a un problema in queste sezioni di problemi e risoluzioni comuni, raggruppate per area funzionale di Cloud Service Mesh:

Se il problema persiste, consulta la sezione successiva.

Restringere l'ambito del problema

Cloud Service Mesh è costituito da diverse tecnologie che interagiscono tra loro, il che significa che alcuni tipi di problemi sono associati a particolari aree funzionali o componenti. Ciascuno di questi componenti genera log propri. Prima di tentare di analizzare manualmente il volume di informazioni fornite, restringi l'ambito della risoluzione dei problemi rispondendo alle seguenti domande:

  • Il problema si verifica all'interno del piano di controllo o dei dati, ad esempio istiod o proxy Envoy?
  • In quale area funzionale hai riscontrato il problema, ad esempio Networking, Telemetria, Sicurezza e così via?
  • Si è verificata una perdita di traffico a livello di mesh di servizi o in un deployment specifico?
  • Il problema appare o peggiora a causa della mancanza di scalabilità del traffico nel mesh di servizi?
  • Il problema causa latenza o altri problemi di prestazioni?
  • Riesci a riprodurre il problema on demand?
  • Il problema è iniziato dopo una recente modifica alla configurazione in Istio, GKE e così via?
  • Si è verificato un aumento o un picco di traffico all'interno del mesh di servizi?
  • Questo cluster ha funzionalità note abilitate o deployment non tipici?
  • Noti un utilizzo elevato di CPU o memoria? Se sì, qual è l'utilizzo previsto su larga scala?
  • Ci sono limitazioni di quota da prendere in considerazione?

Visualizza lo stato del piano di controllo

I seguenti comandi possono aiutarti a comprendere lo stato del piano di controllo Cloud Service Mesh:

  • kubectl get pods -n istio-system
  • kubectl describe -n istio-system
  • Per tutti i pod nel sistema istio: 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

Usa i seguenti comandi per comprendere la scalabilità del deployment:

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

Esamina log e informazioni pertinenti

Dopo aver ristretto l'ambito del problema, puoi concentrarti su determinati log e informazioni in modo più efficace. Per saperne di più sui log generati da Cloud Service Mesh e su come interpretare le informazioni che contengono, consulta Interpretazione dei log di Cloud Service Mesh.