Cheveo Cheatsheet

Pod Pending Cheatsheet

12 kubectl-Befehle und 23 Ursachen in 5 Kategorien - mit Decision-Tree und konkretem Fix pro Pattern. Drucktauglich, kostenfrei, ohne Anmeldung.

Blog-Artikel lesen →

Der Workflow

1 Events
2 Resources
3 Constraints
4 Volumes
5 Images

Events lesen

1

Pod-Events

kubectl describe pod <name> | tail -20

→ Events-Bereich am Ende - sagt buchstäblich was schief läuft.

2

Scheduler-Events

kubectl get events --field-selector reason=FailedScheduling -A --sort-by=.lastTimestamp | tail -20

→ Alle Scheduling-Fehler clusterweit, zeitlich sortiert.

3

Pending-Pods clusterweit

kubectl get pods -A --field-selector=status.phase=Pending

→ Findet alle Pending-Pods auf einen Blick.

Resources prüfen

4

Node-Allocation

kubectl describe node <node> | grep -A 8 "Allocated resources"

→ Summe Requests vs. Kapazität - findet überprovisionierte Nodes.

5

Live-Auslastung

kubectl top nodes

→ Aktueller Verbrauch pro Node - schnellster Resource-Scan.

6

Pod-Requests

kubectl get pod <name> -o jsonpath='{range .spec.containers[*]}{.name}: {.resources.requests}{"\n"}{end}'

→ Was der Pod alles fordert - oft die unrealistische Wurzel.

Scheduler-Constraints

7

Node-Labels

kubectl get nodes --show-labels

→ Für nodeSelector- und Affinity-Mismatch-Diagnose.

8

Taints anzeigen

kubectl describe nodes | grep -A 1 "Taints:"

→ Welche Nodes haben Taints - wer toleriert nicht.

9

Node-Conditions

kubectl describe node <node> | grep -A 10 "Conditions"

→ DiskPressure, MemoryPressure, NotReady auf einen Blick.

Volumes & Images

10

PVC-Status

kubectl get pvc -A | grep -v Bound

→ Alle nicht-Bound PVCs - klassische Pod-Pending-Quelle.

11

StorageClass-Status

kubectl get sc

→ Welche StorageClasses existieren - default markiert?

12

Image-Pull-Fehler

kubectl describe pod <name> | grep -A 3 "Failed\|ErrImagePull\|InvalidImage"

→ Image-Probleme aus den Events extrahiert.

23 Ursachen Schnellindex

Vollständige Auflistung in 5 Kategorien mit Schnell-Check pro Pattern.

Resources

4 Ursachen

Insufficient CPU

describe node → Allocated CPU

Insufficient Memory

describe node → Allocated Memory

Insufficient ephemeral-storage

describe node → ephemeral-storage

Requests > Node-Kapazität

Container requests > max Node spec

Scheduler

6 Ursachen

NodeSelector-Mismatch

kubectl get nodes -l <selector> leer

NodeAffinity (required)

Events: didn't match Pod's node affinity

Taint ohne Toleration

Events: node had untolerated taint

PodAntiAffinity

Events: didn't satisfy anti-affinity

TopologySpreadConstraints

Events: skew exceeds maxSkew

Pod-Topology DoNotSchedule

Events: pod topology

Volumes

4 Ursachen

PVC nicht Bound

kubectl get pvc | grep -v Bound

PVC RWO bereits gemounted

Events: Multi-Attach error

Volume-Topology-Konflikt

Events: volume node affinity conflict

StorageClass fehlt

kubectl get sc

Images

4 Ursachen

ImagePullBackOff

Events: Failed to pull image

ErrImagePull

Events: Error: ErrImagePull

InvalidImageName

Events: InvalidImageName

Fehlende imagePullSecrets

Events: pull access denied

Node & Quota

5 Ursachen

NodeNotReady

kubectl get nodes → NotReady

DiskPressure

describe node → Conditions

MemoryPressure / PIDPressure

describe node → Conditions

ResourceQuota überschritten

Events: exceeded quota

LimitRange-Verletzung

Events: minimum cpu usage violated

Schnelle Entscheidungen

FailedScheduling: Insufficient cpu/memory
→ Requests senken oder Cluster skalieren
FailedScheduling: untolerated taint
→ tolerations: im Pod anlegen
PVC stuck Pending
→ StorageClass + Provisioner prüfen
volume node affinity conflict
→ volumeBindingMode: WaitForFirstConsumer
ImagePullBackOff: pull access denied
→ imagePullSecrets prüfen
1-Tag Intensiv-Workshop

Kubernetes Debugging - systematisch statt raten

Echte Production-Incidents nachstellen, kubectl-Workflows verinnerlichen, Root-Causes in Minuten finden.

Workshop-Details ansehen