Postup při ladění

Postup při ladění

Jedno pořadí kroků, pokaždé stejné. Je krátké, protože funguje.

graph TB A["kubectl get pod -o wide<br/>jaký stav? který uzel?"] --> B["kubectl describe pod<br/>přečti Events dole"] B --> C{"nastartoval kontejner?"} C -->|ne| D["oprav podle události:<br/>image, plánování, volume, probe"] C -->|ano| E["kubectl logs [--previous]<br/>co řekla aplikace?"] E --> F["kubectl exec -it -- sh<br/>jen když běží"]

Stavy a kde hledat odpověď

StavKde je odpověď
Pendingdescribe → FailedScheduling: kapacita, taint, nenavázaný PVC
ContainerCreatingdescribe → stahování image nebo připojení volume (probíhá, nebo visí)
ImagePullBackOff / ErrImagePullšpatné jméno či tag image, nebo přihlašovací údaje do registru
CrashLoopBackOfflogs --previous – aplikace nastartovala a skončila
Running, ale ne Readypadá readiness probe; Service takový pod obejde
OOMKilleddescribe → Last State; příliš nízký paměťový limit
věčný Terminatingfinalizer, nebo kontejner ignorující SIGTERM

Širší pohled

kubectl get events --sort-by=.lastTimestamp | tail -20
kubectl get events -A --field-selector type=Warning
kubectl get pods -A -o wide | grep -v Running
kubectl top nodes ; kubectl top pods

Když aplikace neodpovídá

Postupujte směrem ven od podu: je pod ready, má Service endpointy, překládá se DNS, směruje Gateway.

kubectl get endpointslices -l kubernetes.io/service-name=web-svc

Prázdné endpointy jsou zdaleka nejčastější příčina a vždy jde o neshodu labelů nebo padající readiness probe – ne o síť.

Reference