T The Triage ManualTechnical Guides for IT Emergencies
P3 · Cloud & Hybrid Infrastructure

Kubernetes Pod Stuck in ContainerCreating State

A Kubernetes pod remains indefinitely in the 'ContainerCreating' state and never transitions to 'Running', making kubectl logs unavailable for diagnosis. Root causes span image pull failures, insufficient cluster resources, PersistentVolumeClaim binding issues, CNI misconfiguration, and container runtime errors on the node. The primary diagnostic tool is 'kubectl describe pods', which exposes the Events section detailing the specific failure preventing container creation.

Indicators

Likely causes

Diagnostic steps

  1. Run 'kubectl describe pods <pod-name> -n <namespace>' to retrieve detailed pod events and status messages, including image pull status and container start attempts.
  2. Review the 'Events' section at the bottom of the describe output for specific error messages such as ErrImagePull, ImagePullBackOff, FailedMount, or FailedScheduling.
  3. Run 'kubectl get events --namespace <namespace> --sort-by=.lastTimestamp' to list all recent cluster events sorted by time, identifying any events correlated with the stuck pod.
  4. Check node status with 'kubectl get nodes' to confirm all nodes are Ready. Run 'kubectl describe node <node-name>' on the scheduled node to check for resource pressure conditions (DiskPressure, MemoryPressure, PIDPressure).
  5. If a volume mount issue is indicated in events, run 'kubectl get pvc -n <namespace>' and 'kubectl describe pvc <pvc-name> -n <namespace>' to verify PersistentVolumeClaim binding status and associated StorageClass.
  6. If an image pull error is indicated, verify the image name and tag in the pod spec. Confirm imagePullSecrets are correctly referenced and that the secret exists with 'kubectl get secret <secret-name> -n <namespace>'.
  7. SSH into the affected node and inspect container runtime logs with 'journalctl -u containerd --since "10 minutes ago"' (or 'journalctl -u docker') to identify lower-level container creation errors not surfaced by kubectl.
  8. If CNI failure is suspected, check that the CNI plugin pods (e.g., Calico, Flannel, Weave) are running on the affected node with 'kubectl get pods -n kube-system -o wide' and review CNI plugin logs.

Resolution path

Prevention

Tools

References

kuberneteskubectlpodContainerCreatingcontainer-runtimecontainerddockerimage-pullschedulingpvccnidevopscloud-infrastructuredebugging