Skip to content

Fehlersuche

Geh von dem aus, was du siehst, nicht von dem, was deiner Vermutung nach kaputt ist. Jeder Eintrag unten ist ein Symptom, und jede Seite sagt dir, wie du die Ursache bestätigst, bevor du etwas änderst.

Finde dein Symptom

Was du siehstWohin
Forbidden bei einem kubectl-BefehlDie API sagt nein
admission webhook denied the requestDie API sagt nein
Exec/attach is only allowed into gVisor-sandboxed podsDie API sagt nein
Hostname is not allowed in namespaceDie API sagt nein
Pod hängt in PendingEin Pod startet nicht
ImagePullBackOffEin Pod startet nicht
CrashLoopBackOffEin Pod startet nicht
Dein Hostname löst nicht auf oder liefert nichtsDeine App ist nicht erreichbar
Der Browser warnt wegen des ZertifikatsDeine App ist nicht erreichbar
Die Seite kommt über einfaches HTTPDeine App ist nicht erreichbar
Eine Verbindung aus dem Cluster hängt oder wird abgelehntAusgehende Verbindungen scheitern
Ein HPA skaliert nichtSkalierung tut nicht, was du erwartest
Ein schlafender Workload wacht nie auf oder schläft nie einSkalierung tut nicht, was du erwartest
Ein PVC bleibt PendingÜberraschungen bei Storage und Kosten
Ein Volume wächst immer weiterÜberraschungen bei Storage und Kosten
Die Rechnung ist höher als erwartetÜberraschungen bei Storage und Kosten

Die drei Befehle, die du zuerst probieren solltest

Die meisten Antworten stehen in einem davon, und sie kosten nichts:

bash
kubectl get pods
kubectl describe pod <name>
kubectl logs deployment/<name>

describe ist der, den die meisten überspringen. Die Events am Ende der Ausgabe nennen den Grund fast immer direkt, und sie sind der Unterschied zwischen Raten und Wissen.

Hat ein Container schon neu gestartet, stammt sein aktuelles Log aus dem neuen Versuch und sagt nichts über den Fehler aus. Frag den vorherigen ab:

bash
kubectl logs deployment/<name> --previous

Wie es weitergeht