Kubernetes Node Debugging Cheat Sheet

Diagnose node readiness, kubelet issues, pressure conditions, cordon/drain, and node-level debugging with kubectl debug.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

Node Health and Conditions

List nodes

Start by verifying Ready status across the cluster.

bashANYnodeshealth
bash
kubectl get nodes

Describe a node

Inspect conditions, capacity, allocatable, taints, and events.

bashANYnodesdescribe
bash
kubectl describe node <node>

Get raw node YAML

Inspect status addresses, conditions, and daemon info.

bashANYnodesyaml
bash
kubectl get node <node> -o yaml

Show live node usage

Compare CPU and memory utilization across nodes.

bashANYnodesmetrics
bash
kubectl top node <node>

Show all node metrics

Find hot nodes during an incident.

bashANYnodesmetrics
bash
kubectl top nodes

List key node conditions

Compact view for Ready and pressure-related conditions.

bashANYnodesconditions
bash
kubectl get nodes -o custom-columns=NAME:.metadata.name,READY:.status.conditions[?(@.type=="Ready")].status,MEM:.status.conditions[?(@.type=="MemoryPressure")].status,DISK:.status.conditions[?(@.type=="DiskPressure")].status,PID:.status.conditions[?(@.type=="PIDPressure")].status

Node Debug Shell

Open a debug shell on a node

Create a privileged debug pod on the node for investigation.

bashANYdebugnodes
bash
kubectl debug node/<node> -it --image=busybox:1.36

Open a richer debug shell on a node

Use a fuller image when you need common networking tools.

bashANYdebugnodes
bash
kubectl debug node/<node> -it --image=ubuntu:24.04

Chroot into the host filesystem

After opening a node debug shell, enter the host rootfs.

bashANYdebughost
bash
chroot /host

Read kubelet logs from the node

Inside a node shell on systemd-based hosts, inspect kubelet logs.

bashANYkubeletlogs
bash
journalctl -u kubelet --no-pager | tail -n 200

List containers with crictl

Inspect CRI-level state from the node.

bashANYcrictlruntime
bash
crictl ps -a

List pod sandboxes with crictl

View pod sandboxes at the CRI layer.

bashANYcrictlruntime
bash
crictl pods

Scheduling and Maintenance

Cordon a node

Prevent new pods from being scheduled onto a node.

bashANYcordonmaintenance
bash
kubectl cordon <node>

Uncordon a node

Return a node to normal scheduling.

bashANYuncordonmaintenance
bash
kubectl uncordon <node>

Drain a node

Evict workloads before maintenance or replacement.

bashANYdrainmaintenance
bash
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data

List pods on a specific node

See which workloads are affected by a node problem.

bashANYnodespods
bash
kubectl get pods -A --field-selector spec.nodeName=<node> -o wide

List DaemonSets

Verify whether node-level agents are missing or unhealthy.

bashANYdaemonsetsnodes
bash
kubectl get daemonsets -A

Control Plane and System Pods

List kube-system pods

Inspect control plane and addon health quickly.

bashANYkube-systemsystem
bash
kubectl get pods -n kube-system -o wide

Describe kube-proxy pod

Inspect node networking agent events and status.

bashANYkube-proxynetworking
bash
kubectl describe pod -n kube-system <kube-proxy-pod>

Read kube-proxy logs

Check proxy sync failures and iptables/ipvs issues.

bashANYkube-proxylogs
bash
kubectl logs -n kube-system <kube-proxy-pod>

Find node problem detector pods

If used, inspect node problem detector coverage.

bashANYnodessystem
bash
kubectl get pods -n kube-system | grep -i node-problem-detector

Recommended next

No recommendations yet.