CKA Exam Memory Trick: Control Plane Troubleshooting
| Symptom | First Suspect |
|---|---|
| Pending + Node: <none> | Scheduler |
| Pending + scheduling events | Resources, taints, selectors |
| ContainerCreating | Volumes, mounts, image pulling |
| ImagePullBackOff | Bad image |
| CrashLoopBackOff | Container is starting and crashing |
CKA Exam Memory Trick: Common Pod Errors & Thought Process
| Pod Error / Status | What to Think / First Instinct |
|---|---|
| ErrImagePull / ImagePullBackOff | Typo in image name, private registry auth issue, or missing tag. Check kubectl describe pod. |
| OOMKilled | Container exceeded its memory limit. Check container memory requests/limits in the manifest. |
| CreateContainerConfigError | Missing ConfigMap or Secret referenced by the pod environment variables or volumes. |
| Error / Completed | App threw an exit code (non-zero means failure). Check logs using kubectl logs <pod-name>. |
CKA Exam Memory Trick: Saving Output & Manifests to Files
| Goal / Requirement | Command / Syntax to Use |
|---|---|
| Generate New Manifest (Dry Run) | kubectl run my-pod --image=nginx --dry-run=client -o yaml > pod.yaml |
| Save Existing Resource YAML | kubectl get pod my-pod -o yaml > existing-pod.yaml |
| Save Component or Pod Logs | kubectl logs <pod-name> -n <namespace> > /root/pod.log |
| Extract Specific Field (JSONPath) | kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}' > /root/node-ips.txt |
| Emergency Flag Help (If stuck) | kubectl run --help | grep -A 10 "dry-run" |
Quick Tips for Finding Component Names in the Exam:
- Avoid Memorizing Node Suffixes: Kubeadm static pods append the actual node hostname (e.g.,
-controlplane) rather than generic names like-master. - Use Grep for Speed: If you forget exact names, run
kubectl get pods -n kube-system | grep -E "kube-apiserver|kube-controller-manager|kube-scheduler|etcd". - Leverage Tab Autocomplete: Type part of the component name and hit Tab to let the terminal auto-fill the node suffix.