Knotenprobleme für Kubernetes-Cluster mit dem Node Doctor-Skript beheben
Erfahren Sie, wie Sie mit dem Node Doctor-Skript Probleme mit Compute-Instanzen lösen können, die Worker-Knoten in Clustern hosten, die Sie mit der Kubernetes Engine (OKE) erstellt haben.
Das Node Doctor-Skript ist auf Compute-Instanzen verwalteter Knoten vorinstalliert, damit Sie Probleme mit den Instanzen beheben können. Je nachdem, wie Sie es ausführen, führt das Node Doctor-Skript folgende Schritte aus:
- Druckt Ausgabe zur Fehlerbehebung, die potenzielle Problembereiche identifiziert, mit Links zur Dokumentation, um diese Bereiche zu behandeln.
- Sammelt Systeminformationen in einem Bundle. My Oracle Support (MOS) bietet Anweisungen zum Hochladen des Bundles in ein Supportticket.
Wenn Worker-Knoten mit einer anderen Kubernetes-Knotenbedingung als "Aktiv" oder mit einem anderen Knotenstatus als "Bereit" angezeigt werden, können Sie die Probleme mit dem Node Doctor-Skript beheben.
Sie können das Node Doctor-Skript wie folgt ausführen:
- Verwenden von SSH
- Funktion "Run Command" verwenden
Mit dem Worker Node Troubleshooting Guide können Sie das Node Doctor-Skript bequem über die Konsole starten. Im Worker Node Troubleshooting Guide finden Sie dynamisch ausgefüllte Befehle zum Ausführen des Node Doctor-Skripts mit SSH oder der Funktion "Run Command". Um auf die Fehlerbehebungsdokumentation für Worker-Knoten zuzugreifen, wählen Sie auf der Seite Knotenpooldetails die Schaltfläche Fehlerbehebung für Knoten, wählen SSH-Verbindungen oder Befehl ausführen aus, und befolgen Sie die Anweisungen.
- Das Node Doctor-Skript ist auf Worker-Knoteninstanzen vorinstalliert, die ab dem 19. Juli 2021 erstellt wurden. Für Worker-Knoten, die vor dem 19. Juli 2021 erstellt wurden, ist das Node Doctor-Skript nicht vorinstalliert. Informationen zur Installation des Node Doctor-Skripts finden Sie unter Node Doctor-Skript herunterladen, installieren und aktualisieren. Beachten Sie, dass Sie SSH-Zugriff auf diese Knoten haben müssen, um das Node Doctor-Skript auf diesen Knoten installieren zu können.
- Oracle veröffentlicht regelmäßig neue Versionen des Node Doctor-Skripts. Bevor Sie das Node Doctor-Skript zum ersten Mal ausführen (auch auf Worker-Knoten, die nach dem 19. Juli 2021 erstellt wurden), befolgen Sie die Anweisungen unter Node Doctor-Skript herunterladen, installieren und aktualisieren, um das Skript auf die neueste Version zu aktualisieren. Es wird auch empfohlen, das Node Doctor-Skript von Zeit zu Zeit zu aktualisieren.
- Sie können das Node Doctor-Skript auf Worker-Knoten in verwalteten Knotenpools ausführen, jedoch nicht in virtuellen Knotenpools.
Ausführen des Node Doctor-Skripts mit der Funktion "Befehl ausführen"
Mit dem Run Command-Feature können Sie Knotenprobleme beheben und mit dem Node Doctor-Skript ein Support Bundle generieren. Weitere Informationen zur Verwendung des Features "Run Command" finden Sie unter Ausführen von Befehlen auf einer Instanz.
Um das Node Doctor-Skript mit der Funktion "Run Command" auszuführen, führen Sie einen der folgenden Schritte aus:
- Verwenden Sie die Fehlerbehebungsdokumentation für Worker-Knoten. Wählen Sie auf der Seite Knotenpooldetails die Option Fehlerbehebung für Knoten aus, um das Handbuch zur Fehlerbehebung für Worker-Knoten anzuzeigen. Wählen Sie Befehl ausführen aus, und befolgen Sie die Anweisungen.
- Führen Sie die Schritte in diesem Abschnitt aus.
Erforderliche IAM Policy
Für Administratoren: So schreiben Sie eine Policy für das Feature "Befehl ausführen":
- Schreiben Sie die folgende Policy, damit Benutzer mit der Funktion "Befehl ausführen" Befehle ausgeben, Befehle abbrechen und die Befehlsausgabe für die Instanzen in einem Compartment anzeigen können:
Allow any-user to use instance-agent-command-execution-family in compartment id <compartment-ocid> where request.instance.id=target.instance.id
-
Wenn Sie die Ausgabe aus dem Node Doctor-Skript in einem Objektspeicher-Bucket speichern möchten, schreiben Sie die folgende Policy:
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>' }
Hierbei gilt:
<compartment-ocid-of-bucket>
ist die OCID des Compartments, zu dem der Object Storage-Bucket gehört.<compartment-ocid-of-node>
ist die OCID des Compartments, zu dem die Worker-Knoteninstanz gehört.
Befehl zum Ausführen des Node Doctor-Skripts erstellen
So erstellen Sie den Befehl zum Ausführen des Node Doctor-Skripts auf der Instanz:
- Wählen Sie auf der Seite Clusterdetails die Option Knotenpools aus, und wählen Sie den verwalteten Knotenpool aus, der den verwalteten Knoten enthält, den Sie beheben möchten.
- Wählen Sie unter Knoten den Namen des Knotens aus, den Sie beheben möchten, um die Seite Instanzdetails anzuzeigen.
- Wählen Sie unter Ressourcen die Option Befehl ausführen aus.
- Wählen Sie Befehl erstellen aus.
- Geben Sie einen Namen für den Befehl ein. Geben Sie keine vertraulichen Informationen ein.
- Geben Sie im Feld Timeout in Sekunden die Zeitspanne ein, die dem Compute Instance Run Command-Plug-in zur Ausführung des Befehls auf der Instanz vor dem Timeout eingeräumt werden sollte. Der Timer beginnt, wenn das Plug-in den Befehl startet. Geben Sie 0 ein, um keinen Timeout festzulegen.
- Laden Sie im Abschnitt Skript hinzufügen das Skript hoch, das das Compute Instance Run Command-Plug-in auf der Instanz ausführen soll. Wählen Sie die Option Skript einfügen, und fügen Sie einen der folgenden Befehle in das Feld ein:
sudo /usr/local/bin/node-doctor.sh --check
zum Drucken der Ausgabe zur Fehlerbehebung, die potenzielle Problembereiche identifiziert, mit Links zur Dokumentation, um diese Bereiche zu behandeln.sudo /usr/local/bin/node-doctor.sh --generate &> /dev/null && cat /tmp/oke-support-bundle.tar
, um Systeminformationen in einem Bundle zu erfassen. My Oracle Support (MOS) bietet Anweisungen zum Hochladen des Bundles in ein Supportticket.
- Wählen Sie im Abschnitt Ausgabetyp den Speicherort aus, in dem die Ausgabe des Befehls gespeichert werden soll:
- Als Text ausgeben: Die Ausgabe wird als Klartext gespeichert. Sie können die Ausgabe auf der Seite "Instanzdetails" prüfen.
- An Objektspeicher-Bucket ausgeben: Die Ausgabe wird in einem Object Storage-Bucket gespeichert. Wählen Sie einen Bucket. Geben Sie im Feld Objektname einen Namen für die Ausgabedatei ein. Geben Sie keine vertraulichen Informationen ein.
- An Objektspeicher-URL ausgeben: Die Ausgabe wird in einer Objektspeicher-URL gespeichert. Geben Sie die URL ein.
- Wählen Sie Befehl erstellen aus.
Ausgabe des Node Doctor-Skripts anzeigen
Wie die Ausgabe des Node Doctor-Skripts angezeigt wird, hängt davon ab, ob die Ausgabe wie folgt in einem Object Storage-Speicherort oder als Nur-Text-Datei gespeichert wurde:
- Wenn die Node Doctor-Skriptausgabe in einem Object Storage-Speicherort gespeichert wurde, führen Sie einen der folgenden Schritte aus:
- Laden Sie das Antwortobjekt aus dem Bucket herunter, in dem es gespeichert wurde.
- Navigieren Sie zur URL der vorab authentifizierten Object Storage-Anforderung.
- Wenn die Node Doctor-Skriptausgabe als Klartextdatei gespeichert wurde:
- Öffnen Sie das Navigationsmenü , und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
- Wählen Sie die gewünschte Instanz aus.
- Wählen Sie unter Ressourcen die Option Befehl ausführen aus.
- Suchen Sie den Befehl in der Liste, wählen Sie das Menü , und wählen Sie Befehlsdetails anzeigen aus.
Mit SSH das Node Doctor-Skript ausführen
Wenn Sie SSH-Zugriff auf einen verwalteten Knoten haben, können Sie das Node Doctor-Skript mit SSH ausführen, um Knotenprobleme zu beheben und ein Support-Bundle mit dem Node Doctor-Skript zu generieren.
Um das Node Doctor-Skript mit SSH auszuführen, führen Sie einen der folgenden Schritte aus:
- Verwenden Sie die Fehlerbehebungsdokumentation für Worker-Knoten. Wählen Sie auf der Seite Knotenpooldetails die Option Fehlerbehebung für Knoten aus, um die Fehlerbehebungsdokumentation für Worker-Knoten anzuzeigen. Wählen Sie SSH-Verbindungen aus, und befolgen Sie die Anweisungen.
- Führen Sie die Schritte in diesem Abschnitt aus.
- Richten Sie eine SSH-Verbindung mit der Worker-Knoteninstanz ein, auf der Sie das Node Doctor-Skript ausführen möchten.Ausführliche Anweisungen zum Herstellen einer SSH-Verbindung finden Sie unter Verbindung zu verwalteten Knoten mit SSH herstellen. Auf einer hohen Ebene sind die Schritte:
- Finden Sie die IP-Adresse der Worker-Knoteninstanz heraus, die Sie beheben möchten, und notieren Sie sie.
Beispiel: Wählen Sie auf der Seite Clusterdetails die Option Knotenpools aus, und wählen Sie den Knotenpool mit dem Worker-Knoten aus. Wählen Sie Knoten aus, und wählen Sie den Namen des gewünschten Knotens aus, um die Seite Instanzdetails anzuzeigen. Die IP-Adresse der Instanz wird auf der Registerkarte Instanzinformationen angezeigt.
- Geben Sie in einem Terminalfenster
ssh opc@<node_ip_address>
ein, um eine Verbindung zum Worker-Knoten herzustellen, wobei<node_ip_address>
die IP-Adresse der Worker-Knoteninstanz ist, die Sie sich zuvor notiert haben. Sie können z.B. Folgendes eingeben:
Wenn der SSH-Private Key nicht in der vom SSH-Serviceprogramm erwarteten Datei oder im erwarteten Pfad gespeichert ist (das SSH-Serviceprogramm könnte beispielsweise erwarten, dass der Private Key in ~/.ssh/id_rsa gespeichert wird), müssen Sie den Private-Key-Namen und -Speicherort explizit angeben. Weitere Informationen finden Sie unter Verbindung zu verwalteten Knoten mit SSH herstellen.ssh opc@192.0.2.254
- Finden Sie die IP-Adresse der Worker-Knoteninstanz heraus, die Sie beheben möchten, und notieren Sie sie.
- Geben Sie im Terminalfenster, in dem Sie die SSH-Verbindung zur Worker-Knoteninstanz hergestellt haben, einen der folgenden Befehle ein:
sudo /usr/local/bin/node-doctor.sh --check
zum Drucken der Ausgabe zur Fehlerbehebung, die potenzielle Problembereiche identifiziert, mit Links zur Dokumentation, um diese Bereiche zu behandeln.sudo /usr/local/bin/node-doctor.sh --generate
, um Systeminformationen in einem Bundle zu erfassen. My Oracle Support (MOS) bietet Anweisungen zum Hochladen des Bundles in ein Supportticket.
Node Doctor-Skript herunterladen, installieren und aktualisieren
Für Worker-Knoten, die ab dem 19. Juli 2021 erstellt wurden, ist das Node Doctor-Skript bereits vorinstalliert.
Für Worker-Knoten, die vor dem 19. Juli 2021 erstellt wurden, ist das Node Doctor-Skript nicht vorinstalliert. Um das Node Doctor-Skript auf einem solchen Worker-Knoten auszuführen, müssen Sie das Skript herunterladen und installieren. Um das Node Doctor-Skript herunterzuladen und zu installieren, benötigen Sie SSH-Zugriff auf den Worker-Knoten.
In regelmäßigen Abständen veröffentlicht Oracle neue Versionen des Node Doctor-Skripts. Bevor Sie das Node Doctor-Skript zum ersten Mal ausführen (auch auf Worker-Knoten, die nach dem 19. Juli 2021 erstellt wurden), führen Sie den letzten Schritt in den folgenden Anweisungen aus, um das Skript auf die neueste Version zu aktualisieren. Es wird auch empfohlen, das Node Doctor-Skript von Zeit zu Zeit zu aktualisieren.
So laden Sie das Node Doctor-Skript auf einem verwalteten Knoten herunter, installieren und aktualisieren es:
- Stellen Sie eine SSH-Verbindung mit dem Worker-Knoten her.Ausführliche Anweisungen zum Herstellen einer SSH-Verbindung finden Sie unter Verbindung zu verwalteten Knoten mit SSH herstellen. Auf einer hohen Ebene sind die Schritte:
- Finden Sie die IP-Adresse der Worker-Knoteninstanz heraus, die Sie beheben möchten, und notieren Sie sie.
Beispiel: Wählen Sie auf der Seite Clusterdetails die Option Knotenpools aus, und wählen Sie den Knotenpool mit dem Worker-Knoten aus. Wählen Sie Knoten aus, und wählen Sie den Namen des Knotens aus, um die Seite Instanzdetails anzuzeigen. Die IP-Adresse der Instanz wird auf der Registerkarte Instanzinformationen angezeigt.
- Geben Sie in einem Terminalfenster
ssh opc@<node_ip_address>
ein, um eine Verbindung zum Worker-Knoten anzumelden, wobei<node_ip_address>
die IP-Adresse des Worker-Knoten ist, die Sie sich zuvor notiert haben. Sie können z.B. Folgendes eingeben:
Wenn der SSH-Private Key nicht in der vom SSH-Serviceprogramm erwarteten Datei oder im erwarteten Pfad gespeichert ist (das SSH-Serviceprogramm könnte beispielsweise erwarten, dass der Private Key in ~/.ssh/id_rsa gespeichert wird), müssen Sie den Private-Key-Namen und -Speicherort explizit angeben. Weitere Informationen finden Sie unter Verbindung zu verwalteten Knoten mit SSH herstellen.ssh opc@192.0.2.254
- Finden Sie die IP-Adresse der Worker-Knoteninstanz heraus, die Sie beheben möchten, und notieren Sie sie.
- Laden Sie im Terminalfenster, in dem Sie die SSH-Verbindung zum Worker-Knoten hergestellt haben, das Node Doctor-Skript herunter, und installieren Sie es im Verzeichnis
/usr/local/bin
, indem Sie Folgendes eingeben: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
Dabei ist
<region-name>
die Region, in der sich das Cluster befindet. Beispiel: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
Bevor Sie das Node Doctor-Skript zum ersten Mal ausführen, führen Sie den nächsten Schritt aus.
-
Wenn das Node Doctor-Skript heruntergeladen und auf dem Worker-Knoten installiert wurde, rufen Sie die neueste Version des Node Doctor-Skriptes ab, indem Sie Folgendes eingeben:
sudo /usr/local/bin/node-doctor.sh --update
Es empfiehlt sich, das Node Doctor-Skript auf dem neuesten Stand zu halten, indem Sie den obigen Befehl von Zeit zu Zeit ausführen.
Sie können jetzt das Node Doctor-Skript verwenden, um Probleme mit Worker-Knoten zu beheben.