Risolvere i problemi di Cloud Service Mesh passo passo

Questa sezione spiega come risolvere i problemi durante l'utilizzo di Cloud Service Mesh. Se hai bisogno di ulteriore assistenza, consulta la sezione Richiedere assistenza.

Passaggi per la risoluzione dei problemi

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

  1. Utilizza gli strumenti di convalida della configurazione automatica.
  2. Verifica se hai un problema comune con una soluzione nota.
  3. Restringi l'ambito del problema.
  4. Esamina log e informazioni pertinenti.
  5. Raccogli i log di diagnostica e richiedi assistenza.

Lo strumento di diagnostica di Cloud Service Mesh può rilevare problemi di configurazione comuni. Installa lo strumento per la risoluzione dei problemi seguendo queste istruzioni.

Prima di iniziare

  1. Assicurati che il contesto kubeconfig per il tuo cluster sia disponibile nel file kubeconfig. In caso contrario, esegui il seguente 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 cluster.
    • PROJECT_NAME Il nome del progetto
  2. Verifica che siano state create le credenziali predefinite dell'applicazione. 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
    

    Sostituisci PROJECT_NAME con il nome del tuo progetto.

Visualizzare lo stato del control plane

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

Gestito

  • Ottieni l'elenco dello stato della connessione dei client al control plane di 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 dell'abbonamento.
    • MEMBERSHIP_LOCATION: la regione del tuo abbonamento. Puoi controllare la posizione del tuo abbonamento con gcloud container fleet memberships list --project FLEET_PROJECT_ID sostituendo FLEET_PROJECT_ID con l'ID progetto della flotta.
    • PROJECT_NAME Il nome del progetto

    La tabella seguente descrive le possibili risposte.

    SCONOSCIUTO (Predefinito) ⁣Le informazioni sullo stato non sono disponibili o sono sconosciute.
    SYNCED Il control plane ha inviato la configurazione al client e ha ricevuto un ACK dal client.
    ERRORE ⁣Il control plane ha inviato la configurazione al client e ha ricevuto un NACK dal client.
    STALE Il control plane ha inviato la configurazione al client, ma non ha ricevuto un ACK o un 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.

In-cluster

  • 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 scalabilità del deployment:

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

Visualizzare le configurazioni proxy

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

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 tuo pod.
  • NAMESPACE: lo spazio dei nomi del pod.
  • TYPE: Una delle seguenti opzioni:
    • bootstrap
    • cluster
    • cluster
    • endpoint
    • endpoint
    • listener
    • ascoltatori
    • log
    • route
    • route
    • secret
    • secret
  • MEMBERSHIP_NAME: il nome dell'abbonamento.
  • MEMBERSHIP_LOCATION: la regione del tuo abbonamento. Puoi controllare la posizione del tuo abbonamento con gcloud container fleet memberships list --project FLEET_PROJECT_ID sostituendo FLEET_PROJECT_ID con l'ID progetto della flotta.
  • PROJECT_NAME Il nome del progetto

In-cluster

Utilizza istioctl proxy-config per visualizzare le configurazioni proxy per i piani di controllo in-cluster. Per ulteriori informazioni, consulta la sezione Eseguire il debug di Envoy e istiod.

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

Controllare problemi e soluzioni comuni

Puoi risparmiare tempo verificando se i sintomi corrispondono a un problema nelle sezioni relative a problemi e soluzioni comuni, raggruppati 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 funzionano insieme, il che significa che determinati tipi di problemi sono associati a particolari aree funzionali o componenti. Ciascuno di questi componenti genera log utili. 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 control plane o del data plane, ad esempio istiod o proxy Envoy?
  • In quale area funzionale stai riscontrando il problema, ad esempio Networking, Telemetria, Sicurezza e così via?
  • Si verifica una perdita di traffico a livello di service mesh o in un deployment specifico?
  • Il problema si presenta o peggiora a causa dell'incapacità di scalare il traffico nella mesh di servizi?
  • Il problema causa latenza o altri problemi di prestazioni?
  • Riesci a riprodurre il problema su richiesta?
  • Il problema è iniziato dopo una recente modifica alla configurazione di 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 deployment non tipici?
  • Osservi un utilizzo elevato di CPU o memoria? Se sì, qual è l'utilizzo previsto su larga scala?
  • Esistono limitazioni di quota da considerare?

Esamina log e informazioni pertinenti

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