Kubernetes CrashLoopBackOff
Check logs, previous container logs, events, probes, configuration and resources.
Find troubleshooting commands →DevOps • SRE • Production Support
Find the right commands, understand common failure symptoms and follow practical investigation workflows for DevOps, application support, SRE and production environments.
Search for a symptom, technology, command or production issue.
topFind processes consuming CPU in real time.
ps aux --sort=-%cpu | headShow the highest CPU-consuming processes.
uptimeCheck system load averages.
pidstat 1Monitor CPU usage by process over time.
free -hCheck total, used and available memory.
ps aux --sort=-%mem | headFind processes consuming the most memory.
vmstat 1Inspect memory, processes, paging and CPU activity.
dmesg | grep -i oomLook for out-of-memory killer events.
df -hFind filesystems that are running out of space.
df -iCheck inode consumption.
du -xh / | sort -h | tail -20Find large directories and files.
journalctl --disk-usageCheck how much disk space systemd journals use.
systemctl status nginxCheck the current service state and recent errors.
journalctl -u nginx -n 100Read recent logs for the service.
systemctl cat nginxInspect the service unit configuration.
systemctl daemon-reloadReload systemd after changing unit files.
ss -lntpList listening TCP ports and owning processes.
ss -lntupList listening TCP and UDP ports.
lsof -i :8080Find the process using port 8080.
fuser -v 8080/tcpIdentify processes using a TCP port.
ssh -vvv user@serverEnable verbose SSH debugging.
nc -vz server 22Check whether TCP port 22 is reachable.
systemctl status sshCheck the SSH server service.
ss -lntp | grep :22Verify that SSH is listening.
dig example.comInspect DNS resolution details.
dig +short example.comReturn a concise DNS answer.
nslookup example.comPerform a basic DNS lookup.
cat /etc/resolv.confCheck configured DNS resolvers on Linux.
ping -c 4 8.8.8.8Check basic IP connectivity.
curl -I https://example.comCheck HTTP connectivity and response headers.
traceroute example.comInspect the network path toward a destination.
ip routeInspect the local routing table.
docker ps -aCheck running and stopped containers.
docker logs <container>Read container application logs.
docker inspect <container>Inspect container configuration and state.
docker statsCheck container CPU and memory usage.
docker imagesList locally available images.
docker history <image>Inspect image layers.
docker image inspect <image>Inspect image metadata and configuration.
docker system dfCheck Docker disk consumption.
kubectl get podsIdentify pods that are repeatedly restarting.
kubectl describe pod <pod>Inspect events, container state and configuration.
kubectl logs <pod> --previousRead logs from the previous crashed container.
kubectl get events --sort-by=.lastTimestampReview recent Kubernetes events.
kubectl describe pod <pod>Check image pull errors and events.
kubectl get secretCheck whether image pull secrets exist.
kubectl get pod <pod> -o yamlInspect the pod image and imagePullSecrets configuration.
kubectl get events --sort-by=.lastTimestampFind registry authentication or image errors.
kubectl get pods -o wideCheck where pending pods are scheduled or waiting.
kubectl describe pod <pod>Inspect scheduler events and resource constraints.
kubectl get nodesCheck available cluster nodes.
kubectl describe node <node>Inspect node capacity, conditions and taints.
kubectl get svcCheck service configuration and ports.
kubectl get endpoints <service>Verify that the service has backend endpoints.
kubectl get pods --show-labelsCompare pod labels with the service selector.
kubectl describe svc <service>Inspect service selectors, ports and endpoints.
kubectl get nodesIdentify nodes reporting NotReady.
kubectl describe node <node>Inspect node conditions and recent events.
kubectl get pods -A -o wideCheck workloads running on affected nodes.
kubectl get events -A --sort-by=.lastTimestampReview cluster-wide events.
docker logs <jenkins-container>Inspect Jenkins container logs when Jenkins runs in Docker.
java -versionVerify the Java runtime used by Jenkins.
df -hCheck whether disk exhaustion is affecting builds.
free -hCheck available memory on the Jenkins host.
terraform state listList resources tracked in Terraform state.
terraform state show <resource>Inspect a resource stored in state.
terraform planCompare configuration against current state and infrastructure.
terraform refreshRefresh state from infrastructure when supported by the workflow.
curl http://localhost:9090/-/healthyCheck Prometheus health.
curl http://localhost:9090/api/v1/targetsInspect target states through the Prometheus API.
curl http://target:9100/metricsCheck whether an exporter endpoint responds.
promtool check config prometheus.ymlValidate Prometheus configuration.
dateRecord the current time when beginning incident investigation.
uptimeCheck host uptime and system load.
df -hCheck for disk exhaustion.
free -hCheck memory pressure.
ss -lntupInspect listening network services.
journalctl -p err -n 100Review recent high-priority system errors.
Production Incident
When an application or server is failing, start broad and narrow the investigation instead of immediately changing configuration.
What exactly is failing?
Deployment, config, code or infrastructure?
CPU, memory, disk, logs and network.
Use targeted commands before applying a fix.
Explore
Start with the technology closest to the problem and work through the relevant checks.
Pods, scheduling, services, nodes, images and cluster failures.
5 troubleshooting areas
CPU, memory, disk, services, ports, SSH and system problems.
6 troubleshooting areas
Containers, images, logs, resources and runtime problems.
2 troubleshooting areas
Build failures, agents, Java, disk and CI/CD problems.
1 troubleshooting area
State, planning, infrastructure drift and deployment issues.
1 troubleshooting area
DNS, ports, connectivity, routes and SSH investigation.
4 troubleshooting areas
Prometheus health, targets, exporters and monitoring checks.
1 troubleshooting area
A structured first-response workflow for production incidents.
Incident workflow
Popular Problems
These are common symptoms that DevOps, SRE and application support engineers investigate during incidents.
Check logs, previous container logs, events, probes, configuration and resources.
Find troubleshooting commands →Investigate scheduling, resources, taints, node availability and events.
Find troubleshooting commands →Find full filesystems, large directories, inode exhaustion and journal usage.
Find troubleshooting commands →Identify CPU-heavy processes and investigate application behaviour.
Find troubleshooting commands →Inspect container state, logs, images, configuration, ports and volumes.
Find troubleshooting commands →Check console output, Java, workspace, disk, memory and build environment.
Find troubleshooting commands →Inspect state, identify drift and investigate state-related failures safely.
Find troubleshooting commands →Check listeners, processes, firewall rules, routes and network connectivity.
Find troubleshooting commands →Command Reference
Searchable commands grouped by the production problems they help investigate.
topFind processes consuming CPU in real time.
ps aux --sort=-%cpu | headShow the highest CPU-consuming processes.
uptimeCheck system load averages.
pidstat 1Monitor CPU usage by process over time.
free -hCheck total, used and available memory.
ps aux --sort=-%mem | headFind processes consuming the most memory.
vmstat 1Inspect memory, processes, paging and CPU activity.
dmesg | grep -i oomLook for out-of-memory killer events.
df -hFind filesystems that are running out of space.
df -iCheck inode consumption.
du -xh / | sort -h | tail -20Find large directories and files.
journalctl --disk-usageCheck how much disk space systemd journals use.
systemctl status nginxCheck the current service state and recent errors.
journalctl -u nginx -n 100Read recent logs for the service.
systemctl cat nginxInspect the service unit configuration.
systemctl daemon-reloadReload systemd after changing unit files.
ss -lntpList listening TCP ports and owning processes.
ss -lntupList listening TCP and UDP ports.
lsof -i :8080Find the process using port 8080.
fuser -v 8080/tcpIdentify processes using a TCP port.
ssh -vvv user@serverEnable verbose SSH debugging.
nc -vz server 22Check whether TCP port 22 is reachable.
systemctl status sshCheck the SSH server service.
ss -lntp | grep :22Verify that SSH is listening.
dig example.comInspect DNS resolution details.
dig +short example.comReturn a concise DNS answer.
nslookup example.comPerform a basic DNS lookup.
cat /etc/resolv.confCheck configured DNS resolvers on Linux.
ping -c 4 8.8.8.8Check basic IP connectivity.
curl -I https://example.comCheck HTTP connectivity and response headers.
traceroute example.comInspect the network path toward a destination.
ip routeInspect the local routing table.
docker ps -aCheck running and stopped containers.
docker logs <container>Read container application logs.
docker inspect <container>Inspect container configuration and state.
docker statsCheck container CPU and memory usage.
docker imagesList locally available images.
docker history <image>Inspect image layers.
docker image inspect <image>Inspect image metadata and configuration.
docker system dfCheck Docker disk consumption.
kubectl get podsIdentify pods that are repeatedly restarting.
kubectl describe pod <pod>Inspect events, container state and configuration.
kubectl logs <pod> --previousRead logs from the previous crashed container.
kubectl get events --sort-by=.lastTimestampReview recent Kubernetes events.
kubectl describe pod <pod>Check image pull errors and events.
kubectl get secretCheck whether image pull secrets exist.
kubectl get pod <pod> -o yamlInspect the pod image and imagePullSecrets configuration.
kubectl get events --sort-by=.lastTimestampFind registry authentication or image errors.
kubectl get pods -o wideCheck where pending pods are scheduled or waiting.
kubectl describe pod <pod>Inspect scheduler events and resource constraints.
kubectl get nodesCheck available cluster nodes.
kubectl describe node <node>Inspect node capacity, conditions and taints.
kubectl get svcCheck service configuration and ports.
kubectl get endpoints <service>Verify that the service has backend endpoints.
kubectl get pods --show-labelsCompare pod labels with the service selector.
kubectl describe svc <service>Inspect service selectors, ports and endpoints.
kubectl get nodesIdentify nodes reporting NotReady.
kubectl describe node <node>Inspect node conditions and recent events.
kubectl get pods -A -o wideCheck workloads running on affected nodes.
kubectl get events -A --sort-by=.lastTimestampReview cluster-wide events.
docker logs <jenkins-container>Inspect Jenkins container logs when Jenkins runs in Docker.
java -versionVerify the Java runtime used by Jenkins.
df -hCheck whether disk exhaustion is affecting builds.
free -hCheck available memory on the Jenkins host.
terraform state listList resources tracked in Terraform state.
terraform state show <resource>Inspect a resource stored in state.
terraform planCompare configuration against current state and infrastructure.
terraform refreshRefresh state from infrastructure when supported by the workflow.
curl http://localhost:9090/-/healthyCheck Prometheus health.
curl http://localhost:9090/api/v1/targetsInspect target states through the Prometheus API.
curl http://target:9100/metricsCheck whether an exporter endpoint responds.
promtool check config prometheus.ymlValidate Prometheus configuration.
dateRecord the current time when beginning incident investigation.
uptimeCheck host uptime and system load.
df -hCheck for disk exhaustion.
free -hCheck memory pressure.
ss -lntupInspect listening network services.
journalctl -p err -n 100Review recent high-priority system errors.
Explore the DevOps command references for Kubernetes, Linux, Docker, AWS, Terraform, Ansible, Jenkins and more.
Explore DevOps Commands →