Risolvere i problemi di Cloud Service Mesh passo passo

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

Passaggi per la risoluzione dei problemi

Per risolvere i problemi di Cloud Service Mesh, segui questi passaggi generali:

  1. Utilizza gli strumenti di convalida della configurazione automatica.
  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 richiedi assistenza.

Utilizzare strumenti di convalida automatica

Cloud Service Mesh include strumenti di convalida della configurazione e diagnostica automatica che possono 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 può rilevare i problemi di configurazione più comuni. Installa istioctl seguendo queste istruzioni.

istioctl analyze legge una configurazione del cluster e, se rileva un problema, fornisce messaggi informativi e suggerisce rimedi. Può essere eseguito su un cluster attivo o su un insieme di file di configurazione locali. Può essere eseguito anche su una combinazione di entrambi, consentendoti di trovare i problemi prima di applicare le modifiche a un cluster. Per ulteriori informazioni, consulta Diagnostica la configurazione con istioctl analyze. Per ulteriori informazioni sugli errori rilevati da istioctl analyze, consulta Messaggi di analisi della configurazione.

Analizzare un cluster in tempo reale

Analizza un cluster in esecuzione utilizzando il seguente comando.

istioctl analyze -A

Se istioctl analyze rileva un problema con la configurazione, viene visualizzato un messaggio con informazioni utili per risolverlo, se note. Ad esempio, se hai commesso l'errore comune di non etichettare correttamente lo spazio dei nomi per attivare l'iniezione di sidecar 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.

Problemi e soluzioni comuni

Per risparmiare tempo, controlla se i sintomi corrispondono a un problema descritto in queste sezioni relative a problemi e soluzioni comuni, raggruppate per area funzionale di Cloud Service Mesh:

Se il problema persiste, consulta la sezione successiva.

Restringi l'ambito del problema

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

  • Il problema si verifica nel piano di controllo o nel piano dati, ad esempio con i proxy istiod o Envoy?
  • In quale area funzionale si verifica il problema, ad esempio Networking, Telemetry, Security e così via?
  • Si verifica una perdita di traffico a livello di service mesh o in un deployment specifico?
  • Il problema si verifica o peggiora a causa della mancanza di capacità di scalare il traffico nel mesh di servizi?
  • Il problema causa latenza o altri problemi di prestazioni?
  • Puoi riprodurre il problema su richiesta?
  • Il problema si è verificato dopo una recente modifica della 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à notevoli abilitate o implementazioni non standard?
  • Noti un utilizzo elevato di CPU o memoria? In caso affermativo, qual è l'utilizzo previsto su larga scala?
  • Ci sono limitazioni relative alle quote da considerare?

Visualizza lo stato del piano di controllo

I seguenti comandi possono aiutarti a comprendere lo stato del control plane di Cloud Service Mesh:

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

Utilizza i seguenti comandi per comprendere la scala 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 informazioni sui log generati da Cloud Service Mesh e su come interpretare le informazioni in essi contenute, consulta Interpretazione dei log di Cloud Service Mesh.