Skip to content
DevOps AI ToolKit
Newsletter
Kubernetes Troubleshooting Toolkit

Kubernetes Troubleshooting Toolkit

Use this Kubernetes troubleshooting toolkit to diagnose CrashLoopBackOff, ImagePullBackOff, OOMKilled, pending pods, failed scheduling, probe failures, ingress errors, and node problems.

Paste your error and get a triage plan.

Paste a log line, CLI error, stack trace, service failure, or config snippet and get a structured troubleshooting plan. Your snippet is carried straight into the AI Incident Response Assistant with Kubernetes context prefilled.

Do not paste secrets, tokens, private keys, passwords, or customer data. Your snippet stays in your browser until you open the assistant.

Top 25 Kubernetes Errors and Failure Modes

The production failures engineers hit most — each links to a full cause → fix → prevention guide.

CrashLoopBackOff

A container starts, crashes, and Kubernetes keeps restarting it with an increasing back-off delay.

ImagePullBackOff

The kubelet cannot pull the container image and backs off before retrying, leaving the pod unable to start.

ErrImagePull

The initial image pull failed, usually due to a bad image name, tag, or registry authentication.

OOMKilled

The container exceeded its memory limit and was killed by the kernel out-of-memory reaper.

CreateContainerConfigError

The container cannot be created because a referenced ConfigMap, Secret, or env value is missing or invalid.

CreateContainerError

The container runtime failed to create the container, often from a bad command, mount, or runtime issue.

Pending pod

The pod is accepted by the API server but cannot be scheduled onto any node yet.

Evicted pod

The kubelet evicted the pod because the node ran low on memory, disk, or another resource.

Readiness probe failed

The readiness probe is failing so the pod is removed from Service endpoints and receives no traffic.

Liveness probe failed

The liveness probe is failing so the kubelet restarts the container, sometimes causing a restart loop.

Init container failed

An init container exited non-zero, blocking the main containers from ever starting.

ConfigMap not found

A pod references a ConfigMap that does not exist in the namespace, so it cannot be created.

Secret not found

A pod references a Secret that is missing from the namespace, blocking container creation.

Service unavailable

A Service has no ready endpoints, so requests to it fail or time out.

Ingress 404

The ingress controller returns its default backend 404 because no rule matches the request host or path.

Ingress 502

The ingress controller cannot connect to the upstream pod and returns a 502 bad gateway.

DNS resolution failure

In-cluster name lookups fail with no such host, usually a CoreDNS or service-name problem.

Node NotReady

A node reports NotReady, so the scheduler stops placing pods on it and existing pods may be evicted.

PersistentVolumeClaim pending

A PVC cannot bind to a PersistentVolume, leaving pods that mount it stuck in Pending.

MountVolume.SetUp failed

The kubelet failed to mount a volume into the pod, often from a missing secret, config, or storage backend error.

FailedScheduling

The scheduler cannot find a node that satisfies the pod's resource requests, affinity, or taint constraints.

RBAC forbidden

A request is denied because the user or service account lacks the required role or cluster role binding.

Container cannot connect to service

A pod gets connection refused when reaching another service, usually a port, selector, or network-policy issue.

TLS certificate error

A TLS handshake fails because of a bad, expired, or untrusted certificate between components.

Helm upgrade failed

A helm upgrade errors out or leaves the release in a failed or pending state that blocks further changes.

Validate your config before you redeploy

Catch the structural mistakes that cause outages — 100% in your browser, nothing uploaded.

Kubernetes Troubleshooting Hubs

Fix a whole class of Kubernetes errors at once — each hub gathers the related guides for one failure class.

Best Kubernetes Prompts

Turn symptoms, logs, and config into a structured plan with prompts tuned for Kubernetes.

CrashLoopBackOff triage

Systematically diagnose a restart-looping pod

Use this prompt

ImagePullBackOff debugging

Track down failed image pulls and registry auth

Use this prompt

OOMKilled memory limit diagnosis

Right-size limits after an out-of-memory kill

Use this prompt

FailedScheduling debug

Explain why a pod won't schedule onto any node

Use this prompt

Pending pod scheduling diagnosis

Unblock a pod stuck in Pending

Use this prompt

Kubernetes YAML security review

Audit manifests for risky or missing settings

Use this prompt

Helm failed upgrade recovery runbook

Recover a stuck or failed Helm release

Use this prompt

Readiness & liveness probe authoring

Design probes that don't cause false restarts

Use this prompt

Download the Kubernetes Troubleshooting Runbook Pack

Pod-failure runbooks for CrashLoopBackOff, ImagePullBackOff, and OOMKilled — events, logs, probes, images, and resource limits.

  • CrashLoopBackOff triage by exit code
  • ImagePullBackOff / registry auth checks
  • OOMKilled limit vs node pressure
  • Probe & scheduling failure steps
  • ConfigMap / Secret / RBAC checks
Download the Kubernetes Runbook Pack

All Kubernetes Troubleshooting Guides

Grouped by failure-mode type — each guide covers cause, fix, validation, and prevention.

Authentication & TLS (12)

Networking (16)

Storage (12)

Deployment & Builds (7)

Runtime (14)

Performance (4)

API errors (5)

Configuration (2)

Other (18)

Browse the full Kubernetes category

Kubernetes troubleshooting FAQ

Why is my pod stuck in CrashLoopBackOff?
CrashLoopBackOff means the container keeps starting and then exiting, so Kubernetes restarts it with a growing back-off delay. Run kubectl logs --previous to see why the last run exited, and kubectl describe pod to check exit codes and events. Common causes are an application error or bad config, a missing environment variable, ConfigMap, or Secret, a failing liveness probe that restarts a healthy app, or a command that runs once and exits instead of staying alive.
How do I fix ImagePullBackOff or ErrImagePull?
Both mean the kubelet could not pull the image; ErrImagePull is the initial failure and ImagePullBackOff is Kubernetes backing off before retrying. Check kubectl describe pod for the exact reason. Usually it is a wrong image name or tag, an image that does not exist in the registry, or missing registry credentials. Verify the repository and tag, confirm the image exists, and add an imagePullSecret if the registry is private.
What does OOMKilled mean and how do I fix it?
OOMKilled means the container exceeded its memory limit and the kernel's out-of-memory killer terminated it (exit code 137). Fix it by measuring real usage and either raising the container's memory limit or reducing the application's memory footprint. Also set memory requests so the scheduler places the pod on a node with enough headroom, and watch for leaks that make usage climb until the limit is hit again.
Why is my pod Pending or showing FailedScheduling?
A Pending pod has been accepted but the scheduler cannot place it on any node. Run kubectl describe pod and read the FailedScheduling events. Typical reasons are insufficient CPU or memory on all nodes, node taints the pod does not tolerate, node affinity or nodeSelector rules that match nothing, or an unbound PersistentVolumeClaim. Free up capacity, adjust requests, or fix the scheduling constraints to let it bind.
When should I use the Kubernetes manifest validator?
Use the Kubernetes manifest validator before applying YAML to catch problems early: malformed YAML, missing required fields, risky settings like running as root or no resource limits, and drift from best practices. It runs fully client-side in your browser, so nothing leaves your machine, making it a fast pre-flight check in local workflows and CI before kubectl apply.
How do I debug a failing readiness or liveness probe?
A failing readiness probe removes the pod from Service endpoints so it gets no traffic, while a failing liveness probe restarts the container and can cause a restart loop. Check kubectl describe pod for probe failure events, then confirm the probe path, port, and command actually succeed inside the container. Often the timeouts or initialDelaySeconds are too aggressive for a slow-starting app, so loosen them or add a startup probe.