Top 10 things I'd practice from now until exam day
1. CrashLoopBackOff ⭐⭐⭐⭐⭐
1. CrashLoopBackOff ⭐⭐⭐⭐⭐
Be able to recognize:
Plain Text
STATUS: CrashLoopBackOff
Go to:
kubectl logs
kubectl describe pod
and identify:
bad command
wrong startup script
missing file
application error
2. Pending Pods ⭐⭐⭐⭐⭐
See:
Plain Text
STATUS: Pending
Immediate reaction:
Shell
kubectl describe pod
Look for:
Plain Text:
Insufficient memory
Insufficient cpu
Untolerated taint
NodeSelector mismatch
You just did this one successfully.
S3. Service Troubleshooting ⭐⭐⭐⭐⭐
Memorize:
Shell
kubectl get svc
kubectl get endpoints
kubectl get pods --show-labels
kubectl describe svc
We'll often see:
Plain Text
Endpoints:
which usually means:
Plain Text
selector mismatch
4. DNS Troubleshooting ⭐⭐⭐⭐
Create a test pod:
Shell
kubectl run test --image=busybox --restart=Never -it -- sh
Test:
Shell
nslookup kubernetes.default.svc.cluster.local
Know where CoreDNS lives:
Shell
kubectl get pods -n kube-system
5. Deployment Rollback ⭐⭐⭐⭐
Break a deployment:
YAML
image: nginx:notreal
Then fix with:
Shell
kubectl rollout undo deployment/webapp
Practice:
Shell
kubectl rollout history deployment/webapp
kubectl rollout status deployment/webapp
6. ETCD Backup / Restore ⭐⭐⭐⭐⭐
This is free points if you're comfortable.
I would repeatedly type:
Shell
export ETCDCTL_API=3
and
Shell
etcdctl snapshot save backup.db
until your fingers remember it.
You've already noticed that memorization is the hard part.
7. PVC / PV Problems ⭐⭐⭐⭐
Common symptom:
Plain Text
PVC Pending
Check:
Shell
kubectl get pvc
kubectl describe pvc
kubectl get pv
Understand:
Plain Text
PVC requests storage
PV provides storage
8. Network Policies ⭐⭐⭐⭐
Create:
Plain Text
client pod
server pod
Then block traffic.
Test:
Shell
kubectl exec client -- wget server
Learn to identify:
Shell
kubectl get networkpolicy
kubectl describe networkpolicy
9. Resource Editing Fast ⭐⭐⭐⭐⭐
Practice:
Shell
kubectl edit deployment webapp
over and over.
Get comfortable navigating YAML.
You don't need to memorize every field.
You need to be comfortable finding:
YAML
image:
labels:
replicas:
resources:
quickly.
10. Imperative Commands ⭐⭐⭐⭐⭐
These save huge amounts of time.
Practice from memory:
Shell
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80
kubectl scale deployment nginx --replicas=3
kubectl set image deployment/nginx nginx=nginx:latest
kubectl rollout undo deployment/nginx
What I'd do if I were you tomorrow
A 1-hour practice session:
15 minutes
Break and fix Services:
Plain Text
wrong selector
wrong port
no endpoints
15 minutes
Break and fix Pods:
Plain Text
Pending
CrashLoopBackOff
ImagePullBackOff
15 minutes
Deployment drills:
Plain Text
bad image
rollback
scale
expose
15 minutes
ETCD backup/restore from memory.
If I had to predict what will improve your score the most right now, I'd say:
CrashLoopBackOff troubleshooting
Service/Endpoint troubleshooting
Pending Pods and scheduler errors
ETCD backup/restore
Those are the areas where you've already shown good instincts, and they'll give you the biggest return for your study time.
Provide your feedback on BizChat