🎓 Mission Debrief: Init Container Gridlock¶
What Happened¶
Your init container was waiting for a service that doesn't exist. Init containers must complete before main containers start, so your pod was stuck in "Init:0/1" status forever.
How Kubernetes Behaved¶
Init containers run before app containers and must complete successfully:
- Init containers run sequentially (one after another)
- Each must exit with status 0 (success)
- Only after ALL init containers complete do app containers start
- If init container fails, pod restarts (subject to restartPolicy)
The Correct Mental Model¶
Lifecycle:
Init Container 1 → Init Container 2 → Main Container 1 & Main Container 2
(sequential) (sequential) (parallel)
Common use cases: - Wait for dependencies (databases, services) - Clone git repositories - Generate configuration files - Set up permissions - Database schema migrations
Commands You Mastered¶
# Check init container status
kubectl get pod <name> -n <namespace>
# Look for "Init:0/1" or "Init:Error"
# View init container logs
kubectl logs <pod> -c <init-container-name> -n <namespace>
# See init container details
kubectl describe pod <name> -n <namespace>
# Look at "Init Containers:" section
What's Next¶
Final level: Namespace isolation issues!