Risoluzione dei problemi delle app in IBM Cloud Kubernetes Service
Cloud privato virtuale Infrastruttura classica Satellite
La seguente procedura ti aiuta a risolvere i problemi dell'applicazione all'interno del tuo cluster e a trovare le cause principali degli errori o dei problemi dell'applicazione.
Esamina lo stato di IBM Cloud
- Per vedere se IBM Cloud è disponibile, controlla la pagina di stato IBM Cloud.
- Filtra per il componente Kubernetes Service.
- Riesamina la documentazione sulle limitazioni e sui problemi noti.
- Per le questioni relative ai progetti open source utilizzati da IBM Cloud, consultare la politica di IBM Open Source e Terze Parti. Ad esempio, potresti controllare i problemi aperti Kubernetes.
Ottieni lo stato e lo stato del tuo cluster ed esamina i problemi comuni
-
Elenca il tuo cluster e trova lo
Statedel cluster.ibmcloud ks cluster ls -
Esamina lo
Statedel cluster. Se il cluster si trova in uno stato Critico, di Eliminazione non riuscita o di Avvertenza, oppure è bloccato nello stato In attesa da molto tempo. Per ulteriori informazioni, consulta stati del cluster. -
Esamina lo stato di ciascun nodo di lavoro. Per ulteriori informazioni, vedere Stati del nodo lavoratore.
ibmcloud ks worker ls -c CLUSTER -
Esaminare le seguenti informazioni per eseguire il debug o la risoluzione dei problemi del nodo worker.
Raccogliere i dettagli e documentare il problema
Quando si documentano i dettagli sul problema, essere il più specifici possibile. Ad esempio, Our app occasionally gets 502 Gateway errors when trying to retrieve transaction logs non è utile perché non è specifico. Assicuratevi
di restringere il più possibile il problema prima di documentarlo. Quando si documenta il problema, provare a includere quanto segue.
- Architettura dell'ambiente
- Assicuratevi di aver documentato l'architettura dell'ambiente in modo da comprendere i componenti coinvolti. Per ulteriori informazioni, consultare Documentazione dell'architettura dell'ambiente.
- Messaggi di errore e dettagli del componente.
- Fornire il messaggio di errore completo e includere i dettagli su quale componente sta producendo l'errore. Ad esempio, "Tutti e tre i pod delle applicazioni in clusterID ABCDEF occasionalmente falliscono su HTTPS chiamate a GET /transaction-logs
dal bilanciatore di carico globale con l'errore
HTTP 502 Gateway Error: Web server received an invalid response while acting as a gateway or proxy server...". - IP di origine, IP di destinazione, porta e protocollo della connessione.
- Ad esempio, " Tutti e tre i pod dell'applicazione nel cluster Kubernetes con clusterID ABCDEF. Occasionalmente, le chiamate a HTTPS falliscono quando si tenta di inviare GET /transaction-logs al GLB con l'errore L'IP del pod di origine
è
172.22.5.10e l'IP di destinazione è150.40.40.35porta 433. Il protocollo è HTTPS. Altri pod utilizzano questo indirizzo IP come gli altri due IP GLB150.40.40.55e150.40.40.75". - Data di inizio, ora e frequenza del problema.
- Esaminate i seguenti esempi di messaggi.
- Questo problema riguarda circa il 2% di tutti i tentativi di collegamento.
- Questo problema si verifica solo tra le 19:00 e le 21:00 UTC, e durante tali orari interessa circa il 5% di tutti i tentativi di collegamento.
- Questo problema si verifica durante la connessione dall'ID pod
XYZ. Il problema è iniziato il10/25/2023alle 05:30 UTC circa.
- Risoluzione dei problemi già intrapresi.
- Documentare ciò che è stato provato finora e i risultati di tali tentativi per aiutare a restringere ulteriormente il problema.
Esecuzione di test per eseguire o escludere ogni componente
- Provare a ricreare il problema al di fuori del flusso completo dell'app. Ciò potrebbe comportare quanto segue.
- Utilizzare
curlsu un sistema separato o in un pod di test in un cluster per connettersi all'endpoint di backend o al servizio per stabilire o meno che il client potrebbe essere l'origine del problema. - Tentativo di connessione a un endpoint noto come
www.ibm.comdal client o da un pod di test nel cluster. Se l'endpoint noto funziona in modo coerente, ma l'endpoint dell'applicazione reale non funziona, questo aiuta a restringere il problema.
- Utilizzare
- Provare a ricreare il problema in un ambiente di verifica utilizzando un cluster di test.
- Se non puoi ricreare il problema in un cluster di test, puoi concentrarti sulle differenze tra il cluster di test e il cluster reale come possibili origini del problema.
- Se è possibile ricrearlo in un cluster di test, è probabile che non sia un problema con il cluster stesso. Inoltre, si dispone di un ambiente in cui è possibile eseguire test per restringere ulteriormente il problema senza influire sull'ambiente di produzione.
Raccolta di più dati
Una volta che conosci il flusso dell'applicazione, l'errore specifico che stai vedendo e da dove proviene quell' errore, puoi raccogliere dati più dettagliati dai componenti coinvolti. Ciò potrebbe includere i seguenti log.
- Log di processo e pod sui componenti interessati.
- Log del nodo cluster come
syslogo/var/log/messages. Per IBM Cloud Kubernetes Service, è possibile otteneresysloge altri log direttamente dai nodi. - Informazioni di traccia pacchetto. L'esecuzione
tcpdumpè un modo comune per ottenere informazioni sulla traccia dei pacchetti.
Raggiungi in Slack o esamina i forum degli utenti per problemi simili
- Pubblica in Kubernetes Service Slack.
- Se sei un utente esterno, scrivi nel canale #general.
- Controlla i forum, quali il supporto Kubernetes Service o Stack Overflow, per vedere se altri utenti hanno riscontrato lo stesso problema. Se utilizzi i forum per porre una domanda, contrassegnala con una tag, in modo che venga vista dai team
di sviluppo IBM Cloud.
- Se avete domande tecniche sullo sviluppo o il deploy di cluster o applicazioni con IBM Cloud Kubernetes Service, postate la vostra domanda su Stack Overflow e contrassegnatela con
ibm-cloudecontainers. - Per ulteriori dettagli sull'utilizzo dei forum, vedi Come ottenere supporto.
- Se avete domande tecniche sullo sviluppo o il deploy di cluster o applicazioni con IBM Cloud Kubernetes Service, postate la vostra domanda su Stack Overflow e contrassegnatela con
Passi successivi
Se il problema persiste, contattare il supporto. Apri un caso di supporto. Nei dettagli del caso, assicurarsi di includere i file di log, i messaggi di errore o gli output dei comandi pertinenti.