Operations-Leitfaden · Recovery

Ein Retry-Button ist nur sicher, wenn das System weiß, was bereits geändert wurde.

Kubernetes-Lifecycle-Arbeit durchläuft Provider, Hosts, Control-Plane-Nodes und Cluster-APIs. Zuverlässige Recovery beginnt mit dauerhaftem Zustand und Fehlerklassifikation – nicht mit dem erneuten Start derselben Automatisierung.

Für
Platform Engineers, SREs, Delivery Engineers und Support-Teams
Lesezeit
10 Min.
Aktualisiert
12 Aug 2026
Kurzfassung
  • Fehler und letzten bestätigten Zustand vor einem Retry klassifizieren.
  • Jeden mutierenden Schritt idempotent oder klar nicht wiederholbar gestalten.
  • Retry, Resume, Kompensation und Cleanup trennen.
  • Genug Evidenz für die sichere Übernahme durch eine andere Person bewahren.

Warum Lifecycle-Retries schwerer als API-Retries sind

Ein zustandsloser API-Request kann oft wiederholt werden, weil der Server ihn angenommen hat oder nicht. Eine Cluster-Operation kann Server erstellt, Firewallregeln geändert, Zertifikate geschrieben und einen Control-Plane-Node initialisiert haben, bevor die Verbindung abbricht. Der sichtbare Fehler beschreibt die Unterbrechung, nicht zwingend den Zustand der Umgebung.

Recovery muss gewünschte Absicht, dauerhaften Operation-Zustand und beobachteten Provider-/Cluster-Zustand abgleichen. Ohne diesen Vergleich kann ein Replay Ressourcen duplizieren, Trust unerwartet ändern oder einen destruktiven Schritt am falschen Ziel ausführen.

1. Vor der Aktion klassifizieren

Nutzen Sie stabile Klassen wie Voraussetzung, transiente Abhängigkeit, Autorisierung, Kompatibilität, Teilmutation, Cleanup und Abbruch durch Operator. Die Retry-Posture gehört zur Klasse, nicht zu einem beliebigen Exception-Text. Provider-Rate-Limits können nach Backoff wiederholbar sein; eine inkompatible Version braucht einen neuen Plan; unklares Node Replacement zuerst Inspektion.

Zeigen Sie letzten Checkpoint, Ressourcen-IDs und Korrelation. Operators müssen erkennen, ob ein Schritt sicher unverändert, vollständig oder unklar ist. „Unklar“ ist ein legitimer Zustand und muss automatisches Replay blockieren, bis Observation ihn auflöst.

  • Retry: denselben idempotenten Schritt nach transientem Fehler wiederholen
  • Resume: ab bestätigtem Checkpoint fortsetzen
  • Compensate: definierte Gegenaktion ausführen
  • Cleanup: Restressourcen entfernen und Versuch schließen
  • Replan: neuen Vorgang erzeugen, wenn sich Absicht oder Voraussetzungen ändern

2. Operation-Zustand dauerhaft speichern

Speichern Sie ID, Intent, Actor, Ziel, Planrevision, Schritte, Attempts, Leases, Checkpoints, Artefakte und Terminalergebnis außerhalb des ausführenden Prozesses. Browser-Refresh oder Agent-Neustart dürfen nicht löschen, was freigegeben und beobachtet wurde.

Begrenzte Leases verhindern parallele Mutation. Nach Lease-Ablauf wird das Ziel vor Neuvergabe abgeglichen. Vor einer Fortsetzung müssen Arbeitszuweisung, Checkpoints, Artefakte und Agent-Zustand gemeinsam abgeglichen werden.

3. Idempotenz an der Ressourcengrenze entwerfen

Ein Idempotency Key verhindert doppelte API-Annahme, macht aber Provider- oder Hostbefehle nicht automatisch idempotent. Verwenden Sie stabile externe IDs, Read-before-write-Abgleich und Postcondition-Checks. Ein Schritt ist abgeschlossen, wenn das beabsichtigte Ergebnis beobachtet wurde – nicht nur bei Exit Code null.

Für nicht wiederholbare Arbeit braucht es Checkpoints vor und nach dem kritischen Übergang sowie explizite Bestätigung bei unklarem Ergebnis. Destruktive Aktionen werden an Zielidentität, Planrevision und Ablaufzeit gebunden.

4. Recovery als Produktpfad testen

Injizieren Sie Fehler in einer disponiblen Umgebung: Executor zwischen Checkpoints beenden, Registry blockieren, Credential entziehen, Provider drosseln, Node ausfallen lassen und Cleanup unterbrechen. Prüfen Sie, dass der Vorgang einen wahrheitsgemäßen Zustand erreicht und nur sichere Aktionen anbietet.

Die Abnahme speichert injizierten Fehler, stabilen Code, Checkpoint, Recovery-Aktion, Endzustand, Restressourcenprüfung und Operator-Notiz. Dieser Nachweis ist belastbarer als eine allgemeine Resilienzbehauptung.

5. Recovery zwischen Personen übertragbar machen

Ein guter Fehlerdatensatz erlaubt die sichere Übernahme durch eine Person, die nicht dabei war. Plan, redigierte Logs, stabiler Code, Ressourcen-IDs, Checkpoint, Hashes, Versuche und nächste Aktion bleiben erhalten. Vermeiden Sie Anweisungen, die eine nicht aufgezeichnete Terminal-Session voraussetzen.

Schließen Sie fehlgeschlagene Versuche bewusst: zurück zur Baseline, mit bekannter Abweichung nutzbar oder Eskalation erforderlich. Diese Klarheit verhindert, dass alte Teiloperationen zum versteckten Risiko der nächsten Änderung werden.

Häufige Fragen

Fragen zum Thema

Ist jede fehlgeschlagene Kubernetes-Operation wiederholbar?+

Nein. Retry hängt von Fehlerklasse, Idempotenz des Schritts und beobachtetem Zielzustand ab. Manche Fehler benötigen Inspektion, Kompensation oder einen neuen Plan.

Löst Leader Election die Operation Recovery?+

Nein. Sie kann parallele Leader verhindern, aber Arbeitszuweisung, Checkpoints, Artefakte und Agent-Verhalten brauchen weiterhin einen klaren Recovery-Vertrag.

Welche Evidenz ist nach Recovery wesentlich?+

Bewahren Sie ursprünglichen Intent, Attempts, Checkpoint, Fehlercode, Diagnostik, gewählte Recovery-Aktion, Endzustand und Restressourcenprüfung auf.

Nächster Schritt

Kubernetes-Lifecycle-Management-Lösung ansehen

Lösung öffnen

Auf Ihre Umgebung anwenden

Einen realen Auslieferungsablauf technisch prüfen.

Bringen Sie eine Kundenumgebung, einen manuellen Ablauf und klare Erfolgskriterien mit.

hello@clusterpilot.de