Risoluzione dei problemi dei nodi per i cluster Kubernetes mediante lo script Node Doctor
Scopri come utilizzare lo script Node Doctor per risolvere i problemi con le istanze di computazione che ospitano nodi di lavoro nei cluster creati utilizzando OKE (Kubernetes Engine).
Lo script Node Doctor viene preinstallato sulle istanze di computazione dei nodi gestiti per risolvere i problemi relativi alle istanze. A seconda della modalità di esecuzione, lo script Node Doctor:
- Stampa l'output di risoluzione dei problemi che identifica potenziali aree problematiche, con collegamenti alla documentazione per affrontare tali aree.
- Raccoglie le informazioni di sistema in un bundle. My Oracle Support (MOS) fornisce istruzioni per caricare il bundle in un ticket di supporto.
Se vengono visualizzati nodi di lavoro con una condizione dei nodi Kubernetes diversa da "Attivo" o con uno stato del nodo diverso da "Pronto", utilizzare lo script Node Doctor per risolvere i problemi.
È possibile eseguire lo script Node Doctor nei modi seguenti:
- uso di SSH
- uso della funzione Esegui comando
La Guida per la risoluzione dei problemi dei nodi di lavoro consente di avviare lo script Node Doctor dalla console. La Guida per la risoluzione dei problemi dei nodi di lavoro fornisce comandi popolati dinamicamente per eseguire lo script Node Doctor mediante SSH o la funzione Esegui comando. Per accedere alla Guida per la risoluzione dei problemi dei nodi di lavoro, fare clic sul pulsante Risoluzione dei problemi dei nodi nella pagina Dettagli pool di nodi, selezionare Connessioni SSH o Comando di esecuzione e seguire le istruzioni.
- Lo script Node Doctor viene preinstallato sulle istanze dei nodi di lavoro create a partire dal 19 luglio 2021. I nodi di lavoro creati prima del 19 luglio 2021 non dispongono dello script Node Doctor preinstallato. Per informazioni su come installare lo script Node Doctor, vedere Download, installazione e aggiornamento dello script Node Doctor. Si noti che per installare lo script Node Doctor su tali nodi, è necessario disporre dell'accesso SSH.
- Oracle rilascia periodicamente nuove versioni dello script Node Doctor. Prima di eseguire lo script Node Doctor per la prima volta (anche sui nodi di lavoro creati dopo il 19 luglio 2021), seguire le istruzioni in Download, installazione e aggiornamento dello script Node Doctor per aggiornare lo script alla versione più recente. Si consiglia inoltre di aggiornare di tanto in tanto lo script Node Doctor.
- È possibile eseguire lo script Node Doctor sui nodi di lavoro nei pool di nodi gestiti, ma non nei pool di nodi virtuali.
Utilizzo della funzione Esegui comando per eseguire lo script Node Doctor
È possibile utilizzare la funzione Esegui comando per risolvere i problemi relativi ai nodi e generare un bundle di supporto utilizzando lo script Node Doctor. Per ulteriori informazioni sull'uso della funzione Esegui comando, vedere Esecuzione dei comandi su un'istanza.
Per eseguire lo script Node Doctor mediante la funzione Esegui comando, effettuare una delle operazioni riportate di seguito.
- Utilizzare il manuale Worker Node Troubleshooting Guide. Nella pagina Dettagli pool di nodi fare clic su Risolvi problemi nodi per visualizzare la Guida per la risoluzione dei problemi dei nodi di lavoro, selezionare Esegui comando e seguire le istruzioni.
- Attenersi alla procedura descritta in questa sezione.
Criterio IAM necessario
Per gli amministratori: per scrivere un criterio per la funzione Esegui comando, effettuare le operazioni riportate di seguito.
- Scrivere il criterio riportato di seguito per consentire a qualsiasi utente di utilizzare la funzione Esegui comando per eseguire comandi, annullare comandi e visualizzare l'output dei comandi per le istanze in un compartimento.
Allow any-user to use instance-agent-command-execution-family in compartment id <compartment-ocid> where request.instance.id=target.instance.id
-
Se si desidera salvare l'output dallo script Node Doctor in un bucket di storage degli oggetti, scrivere il criterio seguente:
Allow any-user to manage objects in compartment id <compartment-ocid-of-bucket> where all { request.principal.type='instance', request.principal.compartment.id='<compartment-ocid-of-node>', target.bucket.name = '<bucket-name>' }
Dove:
<compartment-ocid-of-bucket>
è l'OCID del compartimento a cui appartiene il bucket di storage degli oggetti.<compartment-ocid-of-node>
è l'OCID del compartimento a cui appartiene l'istanza del nodo di lavoro.
Creazione del comando per eseguire lo script Node Doctor
Per creare il comando per eseguire lo script Node Doctor sull'istanza:
- Nella pagina Dettagli cluster fare clic su Pool di nodi e sul pool di nodi gestiti contenente il nodo gestito che si desidera risolvere.
- In Nodi, fare clic sul nome del nodo da risolvere per visualizzare la pagina Dettagli istanza.
- In Resources, fare clic su Run Command.
- Fare clic su Crea comando.
- Immettere un nome per il comando. Evitare di inserire informazioni riservate.
- Nella casella Timeout in secondi, immettere il periodo di tempo per concedere al plugin Comando esecuzione istanza di computazione di eseguire il comando sull'istanza prima del timeout. Il timer viene avviato quando il plugin avvia il comando. Per nessun timeout, immettere 0.
- Nella sezione Aggiungi script caricare lo script che si desidera che il plugin Comando di esecuzione istanza di computazione esegua sull'istanza. Selezionare l'opzione Incolla script e incollare uno dei comandi seguenti nella casella:
sudo /usr/local/bin/node-doctor.sh --check
per stampare l'output di risoluzione dei problemi che identifica potenziali aree problematiche, con collegamenti alla documentazione per risolvere tali aree.sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar
per raccogliere informazioni di sistema in un bundle. My Oracle Support (MOS) fornisce istruzioni per caricare il bundle in un ticket di supporto.
- Nella sezione Tipo di output selezionare la posizione in cui salvare l'output del comando:
- Output in formato testo: l'output viene salvato in formato testo. È possibile rivedere l'output nella pagina Dettagli istanza.
- Output in un bucket di storage degli oggetti: l'output viene salvato in un bucket di storage degli oggetti. Selezionare un bucket. Nella casella Nome oggetto, immettere un nome per il file di output. Evitare di inserire informazioni riservate.
- Output in un URL di storage degli oggetti: l'output viene salvato in un URL di storage degli oggetti. Immettere l'URL.
- Fare clic su Crea comando.
Visualizzazione dell'output dello script Node Doctor
La modalità di visualizzazione dell'output dello script Node Doctor dipende dal fatto che l'output sia stato salvato in una posizione di storage degli oggetti o come file di testo normale, come indicato di seguito.
- Se l'output dello script Node Doctor è stato salvato in una posizione di storage degli oggetti, effettuare una delle operazioni riportate di seguito.
- Scaricare l'oggetto risposta dal bucket in cui è stato salvato.
- Passare all'URL della richiesta preautenticazione di storage degli oggetti.
- Se l'output dello script Node Doctor è stato salvato come file di testo non codificato, effettuare le operazioni riportate di seguito.
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Fare clic sull'istanza a cui si è interessati.
- In Resources, fare clic su Run Command.
- Individuare il comando nella lista, fare clic sul , quindi su Visualizza dettagli comando.
Uso della shell SSH per eseguire lo script Node Doctor
Se si dispone dell'accesso SSH a un nodo gestito, è possibile eseguire lo script Node Doctor mediante SSH per risolvere i problemi dei nodi e generare un bundle di supporto utilizzando lo script Node Doctor.
Per eseguire lo script Node Doctor mediante SSH, effettuare una delle operazioni riportate di seguito.
- Utilizzare il manuale Worker Node Troubleshooting Guide. Nella pagina Dettagli pool di nodi fare clic su Risolvi problemi nodi per visualizzare la Guida per la risoluzione dei problemi dei nodi di lavoro, selezionare Connessioni SSH e seguire le istruzioni.
- Attenersi alla procedura descritta in questa sezione.
- Stabilire una connessione SSH con l'istanza del nodo di lavoro su cui si desidera eseguire lo script Node Doctor.Per istruzioni dettagliate su come stabilire una connessione SSH, vedere Connessione ai nodi gestiti mediante SSH. Ad alto livello, i passaggi sono i seguenti:
- Individuare l'indirizzo IP dell'istanza del nodo di lavoro che si desidera risolvere e prenderne nota.
Ad esempio, nella pagina Dettagli cluster fare clic su Pool di nodi e sul pool di nodi contenente il nodo di lavoro. Fare clic su Nodi, quindi sul nome del nodo a cui si è interessati per visualizzare la pagina Dettagli istanza. L'indirizzo IP dell'istanza viene visualizzato nella scheda Informazioni sull'istanza.
- In una finestra del terminale, immettere
ssh opc@<node_ip_address>
per connettersi al nodo di lavoro, dove<node_ip_address>
è l'indirizzo IP dell'istanza del nodo di lavoro di cui è stata fatta nota in precedenza. Ad esempio, è possibile immettere:
Se la chiave privata SSH non è memorizzata nel file o nel percorso previsto dalla utility SSH (ad esempio, la utility SSH potrebbe prevedere la memorizzazione della chiave privata in ~/.ssh/id_rsa), è necessario specificare in modo esplicito il nome e la posizione del file della chiave privata. Per ulteriori informazioni, vedere Connessione a nodi gestiti mediante SSH.ssh opc@192.0.2.254
- Individuare l'indirizzo IP dell'istanza del nodo di lavoro che si desidera risolvere e prenderne nota.
- Nella finestra del terminale in cui è stata stabilita la connessione SSH all'istanza del nodo di lavoro, immettere uno dei comandi riportati di seguito.
sudo /usr/local/bin/node-doctor.sh --check
per stampare l'output di risoluzione dei problemi che identifica potenziali aree problematiche, con collegamenti alla documentazione per risolvere tali aree.sudo /usr/local/bin/node-doctor.sh --generate
per raccogliere informazioni di sistema in un bundle. My Oracle Support (MOS) fornisce istruzioni per caricare il bundle in un ticket di supporto.
Download, installazione e aggiornamento dello script Node Doctor
I nodi di lavoro creati a partire dal 19 luglio 2021 dispongono già dello script Node Doctor preinstallato.
I nodi di lavoro creati prima del 19 luglio 2021 non dispongono dello script Node Doctor preinstallato. Per eseguire lo script Node Doctor su un nodo di lavoro di questo tipo, è necessario scaricare e installare lo script. Per scaricare e installare lo script Node Doctor, è necessario disporre dell'accesso SSH al nodo di lavoro.
Periodicamente, Oracle rilascia nuove versioni dello script Node Doctor. Prima di eseguire lo script Node Doctor per la prima volta (anche sui nodi di lavoro creati dopo il 19 luglio 2021), seguire il passo finale nelle istruzioni riportate di seguito per aggiornare lo script alla versione più recente. Si consiglia inoltre di aggiornare di tanto in tanto lo script Node Doctor.
Per scaricare, installare e aggiornare lo script Node Doctor su un nodo gestito, effettuare le operazioni riportate di seguito.
- Stabilire una connessione SSH con il nodo di lavoro.Per istruzioni dettagliate su come stabilire una connessione SSH, vedere Connessione ai nodi gestiti mediante SSH. Ad alto livello, i passaggi sono i seguenti:
- Individuare l'indirizzo IP dell'istanza del nodo di lavoro che si desidera risolvere e prenderne nota.
Ad esempio, nella pagina Dettagli cluster fare clic su Pool di nodi e sul pool di nodi contenente il nodo di lavoro. Fare clic su Nodi, quindi sul nome del nodo per visualizzare la pagina Dettagli istanza. L'indirizzo IP dell'istanza viene visualizzato nella scheda Informazioni sull'istanza.
- In una finestra terminale, immettere
ssh opc@<node_ip_address>
per connettersi al nodo di lavoro, dove<node_ip_address>
è l'indirizzo IP del nodo di lavoro di cui è stata fatta nota in precedenza. Ad esempio, è possibile immettere:
Se la chiave privata SSH non è memorizzata nel file o nel percorso previsto dalla utility SSH (ad esempio, la utility SSH potrebbe prevedere la memorizzazione della chiave privata in ~/.ssh/id_rsa), è necessario specificare in modo esplicito il nome e la posizione del file della chiave privata. Per ulteriori informazioni, vedere Connessione a nodi gestiti mediante SSH.ssh opc@192.0.2.254
- Individuare l'indirizzo IP dell'istanza del nodo di lavoro che si desidera risolvere e prenderne nota.
- Nella finestra del terminale in cui è stata stabilita la connessione SSH al nodo di lavoro, scaricare e installare lo script Node Doctor nella directory
/usr/local/bin
immettendo:sudo curl -s -X GET https://objectstorage.<region-name>.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh
dove
<region-name>
è l'area in cui si trova il cluster. Ad esempio:sudo curl -s -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/n/odx-oke/b/public/o/artifacts/prd/workernode/14d06c9-431/node-doctor --output /usr/local/bin/node-doctor.sh
Prima di eseguire lo script Node Doctor per la prima volta, completare il passo successivo.
-
Quando lo script Node Doctor viene scaricato e installato sul nodo di lavoro, ottenere la versione più recente dello script Node Doctor immettendo:
sudo /usr/local/bin/node-doctor.sh --update
Si consiglia di mantenere aggiornato lo script Node Doctor eseguendo di tanto in tanto il comando precedente.
È ora possibile utilizzare lo script Node Doctor per risolvere i problemi relativi ai nodi di lavoro.