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:
- Utilizza gli strumenti di convalida della configurazione automatica.
- 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 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
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 per il tuo cluster.PROJECT_NAME
: il nome del progetto.
Verifica che le credenziali predefinite dell'applicazione siano state 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
Sostituisci
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
Visualizza l'elenco dello stato di 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 del tuo abbonamento.MEMBERSHIP_LOCATION
: la regione per il tuo abbonamento. Puoi controllare la posizione del tuo abbonamento congcloud container fleet memberships list --project FLEET_PROJECT_ID
sostituendoFLEET_PROJECT_ID
con l'ID progetto del fleet.PROJECT_NAME
: il nome del progetto.
La seguente tabella descrive le possibili risposte.
SCONOSCIUTO (Valore 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 ACK dal client. ERRORE Il piano di controllo ha inviato la configurazione al client e ha ricevuto un NACK dal client. STALE Il piano di controllo 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 di sincronizzazione non è supportato dalla nostra API per la risoluzione dei problemi.
All'interno del 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 scala 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 pod.NAMESPACE
: lo spazio dei nomi del pod.TYPE
: uno dei seguenti: cluster, listeners, route, endpoint, bootstrap, log, secret, all.MEMBERSHIP_NAME
: il nome del tuo abbonamento.MEMBERSHIP_LOCATION
: la regione per il tuo abbonamento. Puoi controllare la posizione del tuo abbonamento congcloud container fleet memberships list --project FLEET_PROJECT_ID
sostituendoFLEET_PROJECT_ID
con l'ID progetto del fleet.PROJECT_NAME
: il nome del progetto.
All'interno del cluster
Utilizza istioctl proxy-config
per visualizzare le configurazioni dei proxy per i piani di controllo all'interno del 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.
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:
- Problemi di installazione
- Problemi relativi al piano di controllo gestito
- Problemi di osservabilità
- Problemi di deployment al di fuori di Google Cloud
- Problemi relativi al proxy
- Problemi relativi alle risorse
- Problemi di scalabilità
- Problemi di sicurezza
- Problemi di gestione del traffico
- Problemi relativi ai webhook
- Problemi relativi ai proxy sidecar
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 riscontri 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?
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.