Lab 08 – Ladění podů
Lab 08 – Ladění podů
InfodiscoveryCíl: diagnostikovat čtyři rozbité pody jen z výstupu clusteru. Kapitola: Postup při ladění
U každého případu si nejdřív vyrobte problém uvedeným příkazem a pak odpovězte na otázku dřív, než otevřete box. Postup je vždy get → describe → logs.
Případ 1 – image se nedá stáhnout
kubectl run broken1 --image=nginx:doesnotexist
kubectl get pod broken1
Otázka. V jakém je stavu a kde přesně vám cluster říká proč?
kubectl delete pod broken1
Případ 2 – kontejner pořád padá
kubectl run broken2 --image=busybox --restart=Always -- sh -c 'echo starting; exit 1'
sleep 30
kubectl get pod broken2
Otázka. Počítadlo RESTARTS roste. Získejte výstup pokusu, který už selhal, ne toho aktuálního.
kubectl delete pod broken2
Případ 3 – nedá se naplánovat
kubectl run broken3 --image=nginx:1.27 \
--overrides='{"spec":{"containers":[{"name":"broken3","image":"nginx:1.27","resources":{"requests":{"memory":"900Gi"}}}]}}'
kubectl get pod broken3
Otázka. Zůstává Pending napořád. Která komponenta si stěžuje a jaký přesně
uvádí důvod?
Doplňující. Doložte, že jde o requesty, ne o skutečnou spotřebu: kolik paměti je na worker01 opravdu volné?
kubectl delete pod broken3
Případ 4 – běží, ale neodpovídá
kubectl run web --image=nginx:1.27
kubectl expose pod web --port 80 --name web-svc
kubectl label pod web run- # odeberte label, který Service vybírá
Otázka. Klient dostává timeout. Pod je Running a zdravý. Najděte poruchu,
aniž byste se podívali do jediného logu.
Opravte to a ověřte, že se endpoint vrátil.
kubectl delete pod web; kubectl delete svc web-svc
Postup ještě jednou
kubectl get pod <jméno> -o wide stav, uzel
kubectl describe pod <jméno> Events dole – čtěte první
kubectl logs <jméno> [--previous] [-c ctr] co řekla aplikace
kubectl get events --sort-by=.lastTimestamp širší kontext
kubectl exec -it <jméno> -- sh jen když pod běží