Skip to main content

node-not-ready

Troubleshoot NotReady or SchedulingDisabled node status. Use when a node is down, unschedulable, or needs to be drained and restored.

Datos de origen

Repositorio
openshift/lightspeed-service
Última actividad en el origen
25 de marzo de 2026 a las 09:00
Idioma detectado de SKILL.md
inglés
Estrellas
71
Forks
93

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
node-not-ready
description
Troubleshoot NotReady or SchedulingDisabled node status. Use when a node is down, unschedulable, or needs to be drained and restored.
# Node Not Ready Diagnosis When a user reports a node that is NotReady, flapping, or has evicted workloads unexpectedly, follow this structured approach to identify the cause and restore the node. ## 1. Identify Affected Nodes List all nodes and their statuses: 1. Note which nodes are NotReady and how long they have been in that state. Recent (minutes) vs. prolonged (hours/days) requires different urgency. 2. Determine if the affected node is a **control plane node** or a **worker**. Control plane nodes are higher priority — losing quorum affects the entire cluster. 3. Check if the node is `SchedulingDisabled` (cordoned) — this may be intentional (maintenance) or a side effect of a MachineHealthCheck remediation. ## 2. Read Node Conditions Describe the affected node and examine its conditions: 1. **MemoryPressure=True**: the node is running low on memory. Identify the top memory-consuming pods and recommend eviction or resource limit adjustments. 2. **DiskPressure=True**: the node is running low on disk. Check for large container logs, unused images, or full persistent volumes. Recommend cleanup actions. 3. **PIDPressure=True**: the node is exhausting process IDs. Identify pods with excessive process creation (fork bombs, misconfigured worker pools). 4. **NetworkUnavailable=True**: the node's network plugin is not ready. Check SDN/OVN-Kubernetes pod health on that specific node. 5. **Ready=False with no other pressure conditions**: kubelet is not posting status. This usually means the kubelet process is down or the node is unreachable. The specific condition tells you exactly where to look next — do not run through all possibilities if the condition is clear. ## 3. Check Infrastructure Layer If the node conditions suggest the node itself is unreachable or the kubelet is down: 1. Check the Machine and MachineSet objects — is the machine reported as running by the infrastructure provider? 2. Check if a MachineHealthCheck has already detected the issue and is remediating (creating a replacement machine). If so, advise waiting for the remediation to complete before manual intervention. 3. For bare-metal or user-provisioned infrastructure: the user needs to check the host directly (SSH, console, BMC). OLS cannot diagnose host-level issues without cluster-side evidence. ## 4. Check Certificate Issues Node certificate problems are a common cause of NotReady, especially after extended downtime: 1. Check for pending Certificate Signing Requests (CSRs) — nodes that were offline during certificate rotation may need their CSRs manually approved. 2. If CSRs are pending: approve them and verify the node returns to Ready state. 3. If no CSRs are pending but the node was offline for a long time: the kubelet certificates may have expired entirely and the node may need to be re-joined. ## 5. Check Network Plugin Health If the condition is NetworkUnavailable: 1. Identify which network plugin the cluster uses (OpenShift SDN or OVN-Kubernetes). 2. Check the network plugin pods running on the affected node — are they in CrashLoopBackOff or not scheduled? 3. Check the node's network plugin logs for specific errors (failed to configure interface, VXLAN/Geneve tunnel issues, OVS database corruption). ## 6. Provide Recovery Steps Once the cause is identified: 1. State the specific condition and evidence. 2. Provide the targeted fix: - **Resource pressure**: identify consumers, suggest eviction or resource adjustments. - **Kubelet down**: check machine status, recommend restart or machine replacement. - **Pending CSRs**: approve them. - **Network plugin failure**: restart the network plugin pod on the affected node or investigate the specific error. 3. After remediation, verify the node transitions back to Ready. ## Quality Standards - Always report how long the node has been NotReady — this affects triage urgency and likely causes. - Check whether a MachineHealthCheck is already remediating before suggesting manual action — do not compete with automated remediation. - Warn before suggesting cordon/drain if the cluster is already capacity-constrained — draining a node when others are also unhealthy can cause cascading evictions. - Distinguish control plane nodes from workers in all recommendations. Restarting a control plane node has different risk than restarting a worker. - If the node is flapping (oscillating between Ready and NotReady), focus on the transition events rather than the current state.
Ver en GitHub