Komodor is a Kubernetes management platform that empowers everyone from Platform engineers to Developers to stop firefighting, simplify operations and proactively improve the health of their workloads and infrastructure.
Proactively detect & remediate issues in your clusters & workloads.
Easily operate & manage K8s clusters at scale.
Reduce costs without compromising on performance.
Empower developers with self-service K8s troubleshooting.
Simplify and accelerate K8s migration for everyone.
Fix things fast with AI-powered root cause analysis.
Explore our K8s guides, e-books and webinars.
Learn about K8s trends & best practices from our experts.
Listen to K8s adoption stories from seasoned industry veterans.
The missing UI for Helm – a simplified way of working with Helm.
Visualize Crossplane resources and speed up troubleshooting.
Validate, clean & secure your K8s YAMLs.
Navigate the community-driven K8s ecosystem map.
Kubernetes 101: A comprehensive guide
Expert tips for debugging Kubernetes
Tools and best practices
Kubernetes monitoring best practices
Understand Kubernetes & Container exit codes in simple terms
Exploring the building blocks of Kubernetes
Cost factors, challenges and solutions
Kubectl commands at your fingertips
Understanding K8s versions & getting the latest version
Rancher overview, tutorial and alternatives
Kubernetes management tools: Lens vs alternatives
Troubleshooting and fixing 5xx server errors
Solving common Git errors and issues
Who we are, and our promise for the future of K8s.
Have a question for us? Write us.
Come aboard the K8s ship – we’re hiring!
Hear’s what they’re saying about Komodor in the news.
A Kubernetes node is a physical or virtual machine participating in a Kubernetes cluster, which can be used to run pods. When a node shuts down or crashes, it enters the NotReady state, meaning it cannot be used to run pods. All stateful pods running on the node then become unavailable.
Common reasons for a Kubernetes node not ready error include lack of resources on the node, a problem with the kubelet (the agent enabling the Kubernetes control plane to access and control the node), or an error related to kube-proxy (the networking agent on the node).
node not ready
To identify a Kubernetes node not ready error: run the kubectl get nodes command. Nodes that are not ready will appear like this:
NAME STATUS ROLES AGE VERSION master.example.com Ready master 5h v1.17 node1.example.com NotReady compute 5h v1.17 node2.example.com Ready compute 5h v1.17
We’ll provide best practices for diagnosing simple cases of the node not ready error, but more complex cases will require advanced diagnosis and troubleshooting, which is beyond the scope of this article.
This is part of a series of articles about Kubernetes Troubleshooting.
At any given time, a Kubernetes node can be in one of the following states:
If a note is in the NodeReady state, it indicates that the kubelet is installed on the node, but Kubernetes has detected a problem on the node that prevents it from running pods.
NodeReady
Itiel Shwartz
Co-Founder & CTO
In my experience, here are tips that can help you better handle Kubernetes “Node Not Ready” errors:
Ensure nodes have sufficient disk space to operate effectively.
Use tools to monitor CPU, memory, and network usage on nodes.
Regularly check node logs for errors or warnings that might indicate issues.
Ensure nodes have proper network connectivity to the cluster and external resources.
Check the status of the kubelet service on the affected node.
Here are some common reasons that a Kubernetes node may enter the NotRead state:
NotRead
Why It Prevents the Node from Running PodsA node must have enough disk space, memory, and processing power to run Kubernetes workloads.
If non-Kubernetes processes on the node are taking up too many resources, or if there are too many processes running on the node, it can be marked by the control plane as NotReady.
NotReady
How to DiagnoseRun kubectl describe node and look in the Conditions section to see if resources are missing on the node:
kubectl describe node
MemoryPressure—node is running out of memory.DiskPressure—node is running out of disk space.PIDPressure—node is running too many processes.
Why It Prevents the Node from Running PodsThe kubelet must run on each node to enable it to participate in the cluster. If the kubelet crashes or stops on a node, it cannot communicate with the API server and the node goes into a not ready state.
How to DiagnoseRun kubectl describe node [name] and look in the Conditions section—if all the conditions are unknown, this indicates the kubelet is down.
kubectl describe node [name]
Why It Prevents the Node from Running Podskube-proxy runs on every node and is responsible for regulating network traffic between the node and other entities inside and outside the cluster. If kube-proxy stops running for any reason, the node goes into a not ready state.
How to DiagnoseRun kubectl get pods -n kube-system to show pods belonging to the Kubernetes system.
kubectl get pods -n kube-system
Why It Prevents the Node from Running PodsEven if a node is configured perfectly, but it has no network connectivity, Kubernetes treats the node as not ready. This could be due to a disconnected network cable, no Internet access, or misconfigured networking on the machine.
How to DiagnoseRun kubectl describe node [name] and look in the Conditions section—if the NetworkUnavailable flag is True, this means the node has a connectivity issue.
NetworkUnavailable
True
Here are a few ways to resolve a system resource issue on the node:
To resolve a kubelet issue, SSH into the node and run the command systemctl status kubelet
Look at the value of the Active field:
active (running)
active (exited)
inactive (dead)
journalctl -u kubelet
Try looking in the following places to identify what is the issue with kube-proxy:
kubectl describe pod
kubectl logs [pod-name] -n kube-system
kubectl describe daemonset kube-proxy -n kube-system
Please note that these procedures can help you gather more information about the problem, but additional steps may be needed to resolve the problem. If one of the quick fixes above did not work, you’ll need to undertake a more complex, non-linear diagnosis procedure to identify which parts of the Kubernetes environment contribute to the node not ready problem and resolve it.
Kubernetes troubleshooting relies on the ability to quickly contextualize the problem with what’s happening in the rest of the cluster. More often than not, you will be conducting your investigation during fires in production. The major challenge is correlating service-level incidents with other events happening in the underlying infrastructure.
Komodor can help with our ‘Node Status’ view, built to pinpoint correlations between service or deployment issues and changes in the underlying node infrastructure. With this view you can rapidly:
Beyond node error remediations, Komodor can help troubleshoot a variety of Kubernetes errors and issues, acting as a single source of truth (SSOT) for all of your K8s troubleshooting needs. Komodor provides:
If you are interested in checking out Komodor, use this link to sign up for a Free Trial.
Share:
How useful was this post?
Click on a star to rate it!
Average rating 5 / 5. Vote count: 8
No votes so far! Be the first to rate this post.
and start using Komodor in seconds!