SUSE Support

Here When You Need Us

What is the "PLEG is not healthy" issue?

This document (000021815) is provided subject to the disclaimer at the end of this document.

Environment

A Kubernetes cluster, running any distribution (e.g., RKE2, k3s).


Situation

  • A node in your environment is responding erratically, switching between "active" and "unavailable" states, reporting a NotReady status with a "PLEG is not healthy" message.
  • In the kubelet logs, you can find many messages like this:
    E0830 10:36:49.162629 3137 kubelet.go:2040] "Skipping pod synchronization" err="PLEG is not healthy: pleg was last seen active 3m3.978055897s ago; threshold is 3m0s"

Resolution

A potential quick fix to make your node available again could be restarting the affected services: restart kubelet, the container runtime, or even the whole node.

However, this will only be a temporary solution, as the root of the issue will still be present and could lead you to hit the error again in the future. As the "PLEG is not healthy" issue can have multiple origins, it will need a root cause analysis to understand what exactly triggered the issue on the first place.

As a lack of resources is the most common trigger, there are a few recommended actions that can help to avoid this problem:

  • Set up a memory reservation for the kubelet and the operating system at a cluster level. You can find the steps on how to do so in this KB article.
  • Make sure there are enough workers to host all application workloads.
  • Optional/recommended: establish request/limits.

Cause

A "PLEG is not healthy" error in Kubernetes indicates the kubelet on a node cannot communicate with the Container Runtime (like contained or Docker), which disrupts the whole pod lifecycle management.

There may be multiple reasons behind an unhealthy PLEG error, but the most common are:

  • High System Load: Excessive CPU, memory, or disk I/O on the node makes the container runtime unresponsive.
  • Security Software Interference: Host-based firewalls or IDS/IPS might block communication between the kubelet and the container runtime socket.
  • Bugs in certain older versions of the container runtime/kubelet versions (less common).

Additional Information

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:000021815
  • Creation Date: 30-Apr-2025
  • Modified Date:22-Sep-2025
    • SUSE Rancher

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

tick icon

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

tick icon

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.

tick icon

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.