BM: Baca dalam Bahasa Melayu
World K9: Cluster Admin
Node NotReady: the ladder
You will learn: a step-by-step ladder to find out why a node is NotReady, and fix it.
Checked with Kubernetes 1.37 on 1 Nov 2026
The problem
kind-dev namespace default3 a.m. again: dev-worker is NotReady. Don’t guess. Climb one ladder, one rung at a time, from the top.
Try it
Rung 2 is kubectl describe node dev-worker. Read its node conditions: A stall's health notes: Ready, MemoryPressure and more. Unknown means its kubelet stopped reporting.. Tap the Ready line.
Tap the line for the Ready condition.
0 of 1 found
Hint
Read the Type column. Find Ready.Predict
“Kubelet stopped posting node status.” Where is the next rung?
Pick one answer.
Try it
Climb down. Type ssh dev-worker, then systemctl status kubelet. Then read the diary: journalctl -u kubelet -n 10 --no-pager.
kind-dev namespace defaultdev-control-planeOpenManagerNo trays here.
dev-workerNo news- shop·7q7qhRunning
- shop·9dc85Running
dev-worker2Open- shop·8sp6t
Hint
Look at the Active line first. Then at the last diary lines.Check
These are the diary’s last lines. Tap the two lines where systemd stops the kubelet.
Tap the 2 lines from systemd about stopping.
0 of 2 found
Hint
Look for systemd[1] and the words Stopping and Stopped.Try it
Now fix it: systemctl start kubelet. Then exit, and watch the stall with kubectl get nodes -w.
kind-dev namespace defaultdev-control-planeOpenManagerNo trays here.
dev-workerNo news- shop·7q7qhRunning
- shop·9dc85Running
dev-worker2Open- shop·8sp6t
Hint
Starting the kubelet is safe. It only brings the supervisor back.Check
Put the whole ladder in order, top rung first.
Top rung at the top. Put these in order. Use the arrows, or drag.
- Go inside: ssh dev-worker
- Fix: systemctl start kubelet
- What did it write? journalctl -u kubelet
- Is the supervisor on duty? systemctl status kubelet
- Watch it turn Ready: kubectl get nodes -w
- Why? kubectl describe node dev-worker
- Which stall? kubectl get nodes
Check
Good move on a NotReady node? Swipe right for good.
Swipe right for good, left for needs work. Or use the buttons.
Read systemctl status before you change anything
You did it!
You can now climb the NotReady ladder and bring a node back.
Go deeper (optional)
Other NotReady nights use the same ladder. Maybe the stove (containerd) is down. Maybe there is no Pod network yet, or the disk is full. kubectl describe shows where to look. The diary shows why. Practise breaking a stall on a throwaway cluster only.
Real mission
kubectl config current-contextdocker exec dev-worker systemctl stop kubeletkubectl get nodeskubectl describe node dev-workerdocker exec dev-worker systemctl start kubeletkubectl get nodes -w
0 of 6 steps done · Your ticks are saved.
Bahasa Melayu
Pukul 3 pagi lagi: dev-worker NotReady. Jangan teka. Panjat satu tangga, satu anak tangga setiap kali, dari atas.
Anak tangga 2 ialah kubectl describe node dev-worker. Baca node conditions (keadaan node). Tekan baris Ready.
“Kubelet stopped posting node status” bermaksud kubelet berhenti melapor. Di mana anak tangga seterusnya?
Turun ke bawah. Taip ssh dev-worker, kemudian systemctl status kubelet. Kemudian baca diari: journalctl -u kubelet -n 10 --no-pager.
Ini baris terakhir diari. Tekan dua baris di mana systemd hentikan kubelet.
Sekarang baiki: systemctl start kubelet. Kemudian exit, dan perhatikan gerai dengan kubectl get nodes -w.
Susun seluruh tangga, anak tangga atas dahulu.
Langkah yang baik pada node NotReady? Leret ke kanan untuk baik.
Kini anda boleh panjat tangga NotReady dan pulihkan node.
You finished this before. Practice is always welcome!
Official docs: Troubleshooting clusters · Nodes: node status and conditions · kubelet
You've learned for 25 minutes. A short break helps your brain.
Sprint done! Great focus. Stretch for a minute?