Debugging von Knotenproblemen

Auf dieser Seite wird erfahren sie, wie Knotenprobleme mithilfe einer Reihe vorinstallierter Debugging-Tools behoben werden.

Übersicht

Jeder von Ihnen erstellte GKE On-Prem-Cluster besteht aus mehreren Knoten. Jeder lokale GKE On-Prem-Knoten enthält eine Distribution der toolbox von CoreOS, einem Shell-Skript, das den Debugging-Container debug-toolbox entpackt und ausführt. debug-toolbox ist ein Container-Image, das mehrere nützliche Debugging-Tools enthält.

Wenn Probleme bei einem bestimmten Knoten auftreten, können Sie debuggen. Stellen Sie dazu eine Verbindung zum betroffenen Knoten her, führen Sie das Skript toolbox aus, um den Container debug-toolbox zu entpacken und auszuführen, und führen Sie die im Container enthaltenen Tools aus.

Tools im Container debug-toolbox

Der Container debug-toolbox führt ein Debian-Basis-Image aus, das die folgenden Pakete enthält:

  • bash
  • curl
  • dnsutils
  • hping3
  • iperf3
  • lsof
  • netcat
  • mtr
  • procps
  • strace
  • tcpdump
  • traceroute
  • util-linux

Da diese Tools im Container enthalten sind, ist keine Internetverbindung erforderlich. Wenn Sie zusätzliche Debugging-Tools installieren möchten, verwenden Sie apt-get, wofür eine Internetverbindung erforderlich ist.

toolbox verwenden

  1. Stellen Sie eine SSH-Verbindung zum Clusterknoten her.

  2. Führen Sie den Befehl toolbox aus:

    sudo toolbox

    Mit diesem Befehl wird ein debug-toolbox-Container gestartet.

  3. Führen Sie im Container eines der Tools aus. Beispiel: tcpdump

  4. Wenn Sie fertig sind, verlassen Sie den Container und schließen Sie die SSH-Verbindung zum Knoten.

Node Problem Detector

Ab der Version GKE On-Prem-Version 1.4 hilft das Tool Node Problem Detector, das für alle Knoten in einem Cluster aktiviert ist, bei der schnellen Erkennung einiger häufiger Knotenprobleme. Node Problem Detector sucht nach möglichen Problemen und meldet diese als Ereignisse und Bedingungen auf dem Knoten. Bei einem Fehlverhalten eines Knotens können Sie prüfen, ob Node Problem Detector das Problem erkannt hat. Dazu führen Sie kubectl describe auf dem Knoten aus und suchen nach den entsprechenden Ereignissen und Bedingungen.

Node Problem Detector überwacht mehrere Bedingungen auf dem Knoten. Wenn die gemeldete Bedingung KubeletUnhealthy oder ContainerRuntimeUnhealthy lautet, kann ein Neustart des entsprechenden systemd-Dienstes (Kubelet oder Docker) dazu beitragen, den Knoten wieder fehlerfrei zu machen.

Ab der GKE On-Prem-Version 1.5 ist die automatische Reparatur des Kubelet- und Docker-Dienstes im Node Problem Detector aktiviert. Wenn der Node Problem Detector einen KubeletUnhealthy- oder ContainerRuntimeUnhealthy-Zustand auf dem Knoten erkennt, wird versucht, den Kubelet- oder Docker-Dienst automatisch neu zu starten, wenn seit dem letzten Neustart ein spezifischer Zeitraum vergangen ist.