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:
- Utilizzare gli strumenti di convalida automatica della configurazione.
- Controlla se hai un problema comune con una soluzione nota.
- Restringi l'ambito del problema.
- Esamina i log e le informazioni pertinenti.
- Raccogli i log di diagnostica e chiedi aiuto.
Lo strumento di diagnostica di Cloud Service Mesh è in grado di rilevare i problemi di configurazione più comuni. Installa lo strumento di risoluzione dei problemi utilizzando queste instructions.
Prima di iniziare
Assicurati che il contesto kubeconfig per il cluster sia disponibile nel file 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 per il cluster.PROJECT_NAME
: il nome del progetto.
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
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 di 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 abbonamento. Puoi controllare la località dell'abbonamentogcloud container fleet memberships list --project FLEET_PROJECT_ID
sostituendoFLEET_PROJECT_ID
con l'ID progetto del parco risorse.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/A Non applicabile. Funzionalità 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 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 pod.NAMESPACE
: lo spazio dei nomi del pod.TYPE
: uno dei seguenti: cluster, listener, route, endpoint, bootstrap, log, secret, all.MEMBERSHIP_NAME
: il nome del tuo abbonamento.MEMBERSHIP_LOCATION
: la regione per il tuo abbonamento. Puoi controllare la località dell'abbonamentogcloud container fleet memberships list --project FLEET_PROJECT_ID
sostituendoFLEET_PROJECT_ID
con l'ID progetto del parco risorse.PROJECT_NAME
: il nome del progetto.
Nel cluster
Utilizza istioctl proxy-config
per visualizzare le configurazioni del proxy per i piani di controllo nel cluster. Per ulteriori informazioni, consulta
Debug di Envoy e istiod.
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:
- Problemi di installazione
- Problemi relativi al piano di controllo gestito
- Problemi di osservabilità
- Problemi di deployment fuori Google Cloud
- Problemi del proxy
- Problemi relativi alle risorse
- Problemi di scalabilità
- Problemi di sicurezza
- Problemi di gestione del traffico
- Problemi relativi al webhook
- Problemi relativi ai proxy sidecar
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?
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.