Pods repeatedly evicted due to KernelDeadlock on worker node

Mia Wilson 60 Zuverlässigkeitspunkte
2026-09-21T13:54:28.2533333+00:00

On a specific worker node in our Kubernetes cluster, pods are being repeatedly evicted. NodeProblemDetector is reporting a KernelDeadlock condition, which disrupts workloads and prevents stable operation. We need to determine how to properly inspect the host kernel logs to identify the underlying cause of this deadlock, and also establish the safest procedure to drain the node without impacting other running services. What is the recommended approach to access the relevant system logs and perform a controlled drain of the node to avoid conflicts with active processes?

Windows für Unternehmen | Windows Server | Geräte und Bereitstellung | Einrichten von Upgrades und Treibern
0 Kommentare Keine Kommentare

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Ronald Sabiiti 160 Zuverlässigkeitspunkte Unabhängiger Berater
    2026-09-21T17:14:38+00:00

    Hallo @Anonymous

    Um die von NodeProblemDetector gemeldete KernelDeadlock-Bedingung zu untersuchen:

    SSH in den betroffenen Knoten:

    Bash

    kubectl debug node/<node-name> -it --image=ubuntu

    Oder, wenn Sie direkten Zugang haben:

    Bash

    ssh <node-user>@<node-ip>

    Überprüfen Sie Systemprotokolle:

    Kernel-Ringpuffer:

    Bash

    dmesg -T | weniger

    Systemd journal:

    Bash

    journalctl -k -xe

    Achten Sie auf Nachrichten wie hung_task, Soft Lockup oder Blockierung von mehr als 120 Sekunden.

    Korrelation mit Kubelet-Protokollen:

    Bash

    journalctl -u kubelet -xe

    Das hilft zu bestätigen, ob Pod-Räumungen direkt mit Kernel-Ställen zusammenhängen.

    Kontrolliertes Knotendrainageverfahren

    Um Workloads sicher aus dem problematischen Knoten zu entfernen:

    Markiere den Knoten als nicht planbar:

    Bash

    Kubeckl-Kordon <node-name>

    Das verhindert, dass dort neue Pods geplant werden.

    Lassen Sie den Knoten elegant entleeren:

    Bash

    kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data

    --ignore-daemonsets: Behält systemkritische Pods (wie Logging-/Monitoring-Agenten).

    --delete-emptydir-data: Stellt sicher, dass Pods mit ephemeralem Speicher sauber entfernt werden.

    Überprüfen Sie, ob die Arbeitsbelastungen woanders verschoben werden:

    Bash

    kubectl bekommt Pods -o breit

    Bestätigen Sie, dass die Pods auf gesunden Knoten laufen.

    Wenn Sie diese Informationen hilfreich finden, klicken Sie bitte auf Antwort akzeptieren. Dadurch können andere Community-Mitglieder hilfreiche Lösungen für ähnliche Probleme finden.

    Vielen Dank.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare

Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.