Hands-on Lab·Certified Kubernetes Administrator
Troubleshooting Pod ContainerCreating
A Pod that is scheduled and still will not start. This walks the FailedMount event back to the object that is missing, and is precise about why one of the three obvious causes behaves completely differently from the other two.
Troubleshooting Guide 81 of 103 Beginner
- Kubernetes1.36.4
- Cluster4 nodes
- Runtimecontainerd 2.2.6
- CNICalico v3.32.1
- TimeAbout 16 min
Event text is the kubelet's own. The retry interval and the (x6 over 20s) counter will differ on your cluster; the message format is what to learn.
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| CKA1001 | 192.168.0.175 | Ubuntu 26.04 LTS | Control Plane Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE01 | 192.168.0.176 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE02 | 192.168.0.177 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
| CKA1001-NODE03 | 192.168.0.178 | Ubuntu 26.04 LTS | Worker Node | 2 Core | 4 GB | 50 GB |
This guide includes
Use this when a Pod is scheduled and still will not start. This matters because ContainerCreating means the scheduler has finished and the kubelet has not, so the answer sits in the kubelet's events rather than anywhere the Pod's own phase will tell you.
- creating a Pod that mounts a Secret which does not exist, and watching it never leave ContainerCreating
- reading the kubelet's event, which names both the reason and the missing object
- seeing why
.status.phasedisagrees with the STATUS column, and which of the two to trust - comparing three Pods - a missing Secret, a missing ConfigMap, and one that is not the same reason at all
- creating the Secret and watching the retry succeed with no further intervention
Before you start
- guide 80 - the other half of this split, where the Pod never reaches a node at all.
-
A Pod that never leaves ContainerCreating
-
What the kubelet is complaining about
-
Why the phase field will not tell you
-
The same reason, and the one that is not
-
Fix it, and watch the retry succeed