Risolvi i problemi passo passo di Cloud Service Mesh

Questa sezione spiega come risolvere i problemi relativi all'utilizzo Cloud Service Mesh. Per ulteriore assistenza, consulta 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.

Lo strumento di diagnostica di Cloud Service Mesh è in grado di rilevare configurazioni comuni per risolvere problemi di produzione e facilità d'uso. Installa lo strumento di risoluzione dei problemi utilizzando questi instructions.

Prima di iniziare

  1. Assicurati che il contesto kubeconfig per il tuo cluster sia disponibile nella kubeconfig. In caso contrario, esegui questo comando:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --location=CLUSTER_LOCATION --project=PROJECT_NAME
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster.
    • CLUSTER_LOCATION: la zona o la regione del tuo in un cluster Kubernetes.
    • PROJECT_NAME: il nome del progetto.
  2. Verifica che le Credenziali predefinite dell'applicazione vengono create. In caso contrario, esegui uno dei seguenti comandi:

    gcloud auth application-default login --billing-project=PROJECT_NAME
    
    gcloud auth application-default set-quota-project PROJECT_NAME
    

    Sostituzione di PROJECT_NAME con il nome del progetto.

Visualizza lo stato del piano di controllo

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

Gestito

  • Recupera l'elenco dello stato della connessione dei client al piano di controllo Cloud Service Mesh:

    gcloud beta container fleet mesh debug proxy-status \
        --membership=MEMBERSHIP_NAME \
        --location=MEMBERSHIP_LOCATION \
        --project=PROJECT_NAME
    

    Sostituisci quanto segue:

    • MEMBERSHIP_NAME: il nome del tuo abbonamento.
    • MEMBERSHIP_LOCATION: la regione per il tuo . Puoi controllare la località del tuo abbonamento con gcloud container fleet memberships list --project FLEET_PROJECT_ID sostituzione di FLEET_PROJECT_ID con il progetto del parco risorse ID.
    • PROJECT_NAME: il nome del progetto.

    Nella tabella seguente sono descritte le possibili risposte.

    SCONOSCIUTO (Predefinito) ⁣ Le informazioni sullo stato non sono disponibili o sono sconosciute.
    SINCRONIZZATO Il piano di controllo ha inviato la configurazione al client e ha ricevuto un messaggio ACK dal client.
    ERRORE ⁣Il piano di controllo ha inviato la configurazione al client e ha ricevuto un NACK dal client.
    IN ATTESA Il piano di controllo ha inviato la configurazione al client, ma non ha ricevuto un messaggio ACK o NACK dal client.
    NON INVIATO La configurazione non è stata inviata.
    N/D Non applicabile.
    Non supportata Lo stato della sincronizzazione non è supportato dalla nostra API per la risoluzione dei problemi.

Nel cluster

  • 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

Visualizza configurazioni proxy

Il comando seguente può aiutarti a comprendere il proxy Cloud Service Mesh configurazioni:

Gestito

gcloud beta container fleet mesh debug proxy-config POD_NAME.NAMESPACE \ 
    --type=TYPE \
    --membership=MEMBERSHIP_NAME \
    --location=MEMBERSHIP_LOCATION \
    --project=PROJECT_NAME
  • POD_NAME: il nome del pod.
  • NAMESPACE: lo spazio dei nomi del pod.
  • TYPE: uno dei seguenti: cluster, listener, route, endpoint, bootstrap, log, secret, tutto.
  • MEMBERSHIP_NAME: il nome del tuo abbonamento.
  • MEMBERSHIP_LOCATION: la regione per il tuo . Puoi controllare la località del tuo abbonamento con gcloud container fleet memberships list --project FLEET_PROJECT_ID sostituzione di FLEET_PROJECT_ID con il progetto del parco risorse ID.
  • PROJECT_NAME: il nome del progetto.

Nel cluster

Utilizza istioctl proxy-config per visualizzare le configurazioni proxy per nel cluster piani di controllo. Per ulteriori informazioni, vedi Debug di Envoy e di istiod.

Se il problema persiste, consulta la sezione successiva per verificare se è noto.

Verificare la presenza di problemi comuni e soluzioni

Per risparmiare tempo, controlla se i sintomi corrispondono a un problema in queste situazioni sezioni di problemi e risoluzioni, raggruppate per funzionalità di Cloud Service Mesh area:

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 siano associati a particolari aree funzionali o componenti. Ciascuno di questi componenti genera log propri. Prima del giorno di analizzare manualmente il volume di informazioni che forniscono, restringere 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?

Esamina log e informazioni pertinenti

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