Zum Hauptinhalt springen
Version: 2.6.7

Ergebnisse von Chaos-Experimenten überprüfen

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Dieses Dokument beschreibt, wie Sie mit Chaos Mesh den Ausführungsstatus und die Ergebnisse von Chaos-Experimenten überprüfen können.

Einführung in die Phasen eines Chaos-Experiments

Bei Chaos Mesh wird der Lebenszyklus eines Chaos-Experiments entsprechend seines Ausführungsprozesses in vier Phasen unterteilt:

  • Injecting: Das Chaos-Experiment befindet sich im Prozess der Fehlerinjektion. Normalerweise dauert diese Phase kurz. Wenn die "Injecting"-Phase längere Zeit andauert, kann dies auf Ausnahmen im Experiment hindeuten. In diesem Fall können Sie die Events überprüfen, um die Ursache zu ermitteln.

  • Running: Nachdem die Fehler erfolgreich in alle Ziel-Pods injiziert wurden, beginnt die Ausführung des Experiments.

  • Paused: Beim Auslösen des Pauseprozesses für ein laufendes Experiment stellt Chaos Mesh den ursprünglichen Zustand aller Ziel-Pods wieder her, was den Pausestatus anzeigt.

  • Finished: Wenn der duration-Parameter konfiguriert ist und die Laufzeit abgelaufen ist, stellt Chaos Mesh den ursprünglichen Zustand aller Ziel-Pods wieder her, was den Abschluss des Experiments anzeigt.

Ergebnisse mit Chaos Dashboard überprüfen

Mit Chaos Dashboard können Sie die Ausführungsphasen von Chaos-Experimenten auf folgenden Seiten einsehen:

  • Liste der Chaos-Experimente:

    Experimental Status
    Experimental Status

  • Details der Chaos-Experimente:

    Experimental Status
    Experimental Status

Hinweis
  • Wenn die "Injecting"-Phase ungewöhnlich lange dauert, kann dies auf Anomalien hinweisen (z.B. wenn die konfigurierten Selektoren keine Ziel-Pods für die Fehlerinjektion finden). Überprüfen Sie in diesem Fall die Events, um die Ursache zu ermitteln, und kontrollieren Sie die Experimentkonfiguration.
  • Chaos Dashboard zeigt nur die Hauptphasen eines Experiments an. Für detailliertere Statusinformationen verwenden Sie den kubectl-Befehl.

Ergebnisse mit dem kubectl-Befehl überprüfen

Verwenden Sie den folgenden kubectl describe-Befehl, um den Status und die Events von Experiment-Objekten zu überprüfen:

kubectl describe podchaos pod-failure-tikv -n tidb-cluster

Die erwartete Ausgabe sieht folgendermaßen aus:

...
Status:
Conditions:
Reason:
Status: False
Type: Paused
Reason:
Status: True
Type: Selected
Reason:
Status: True
Type: AllInjected
Reason:
Status: False
Type: AllRecovered
Experiment:
Container Records:
Id: tidb-cluster/basic-tikv-0
Phase: Injected
Selector Key: .
Desired Phase: Run
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FinalizerInited 39s finalizer Finalizer has been inited
Normal Paused 39s desiredphase Experiment has been paused
Normal Updated 39s finalizer Successfully update finalizer of resource
Normal Updated 39s records Successfully update records of resource
Normal Updated 39s desiredphase Successfully update desiredPhase of resource
Normal Started 17s desiredphase Experiment has started
Normal Updated 17s desiredphase Successfully update desiredPhase of resource
Normal Applied 17s records Successfully apply chaos for tidb-cluster/basic-tikv-0
Normal Updated 17s records Successfully update records of resource

Die Ausgabe umfasst zwei Hauptteile:

  • Status

    Basierend auf dem Ausführungsprozess des Experiments liefert der Status vier Arten von Statusrecords:

    • Paused: Zeigt an, dass sich das Experiment in der "Paused"-Phase befindet.
    • Selected: Bestätigt, dass die Ziel-Pods für die Fehlerinjektion korrekt ausgewählt wurden.
    • AllInjected: Bestätigt, dass Fehler erfolgreich in alle Ziel-Pods injiziert wurden.
    • AllRecoverd: Bestätigt, dass die injizierten Fehler erfolgreich aus allen Ziel-Pods entfernt wurden.

    Der aktuelle Experimentstatus lässt sich aus der Kombination dieser Statusrecords ableiten. Beispiele:

    • Wenn Paused, Selected und AllRecoverd auf True stehen und AllInjected auf False, ist das Experiment pausiert.
    • Wenn Paused auf True steht, ist das Experiment pausiert. Steht gleichzeitig Selected auf False, können keine Ziel-Pods ausgewählt werden.
    Hinweis

    Die Kombination der Statusrecords liefert kontextuelle Informationen: Steht Paused auf True, ist das Experiment pausiert, aber wenn gleichzeitig Selected auf False steht, können keine Ziel-Pods identifiziert werden.

  • Events

    Enthält Protokolle aller Aktionen während des gesamten Experimentlebenszyklus, die zur Statusüberwachung und Fehlerbehebung dienen.