Zum Hauptinhalt springen
Version: Nächste

Ein Chaos-Experiment durchführen

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 Chaos-Experimente in Chaos Mesh erstellen, ausführen, anzeigen, pausieren, aktualisieren und löschen.

Chaos-Experimente erstellen

In Chaos Mesh können Sie folgende Arten von Chaos-Experimenten erstellen:

  • Einmalige Chaos-Experimente: Die kleinste Einheit von Chaos-Experimenten. Nach der Erstellung injiziert Chaos Mesh sofort Fehler in die Zielumgebung gemäß der Konfiguration. Wenn der Parameter duration konfiguriert ist, werden die Fehler nach einem Zeitraum, der durch duration angegeben ist, automatisch zurückgesetzt. Wird das Experiment pausiert oder gelöscht, erfolgt die Rückstellung umgehend.

  • Geplante oder zyklische Chaos-Experimente: Experimente, die regelmäßig oder zyklisch ausgeführt werden können. Bei der Erstellung müssen Sie Zeitplanungsregeln definieren.

Einmalige Chaos-Experimente

So erstellen Sie ein einmaliges Chaos-Experiment:

  • Nutzen Sie Chaos Dashboard, um ein neues Experiment zu erstellen, und klicken Sie auf Submit, um es auszuführen. Details finden Sie in der Dokumentation des jeweiligen Experimenttyps.

  • Definieren Sie das Experiment in einer YAML-Datei und führen Sie es mit kubectl aus. Gehen Sie dazu folgendermaßen vor:

  1. Erstellen Sie eine YAML-Datei mit den Konfigurationsparametern für Ihren Experimenttyp.

    Beispiel für ein NetworkChaos-Experiment: Speichern Sie diesen YAML-Code als network-delay.yaml.

    apiVersion: chaos-mesh.org/v1alpha1
    kind: NetworkChaos
    metadata:
    name: network-delay
    spec:
    action: delay # the specific chaos action to inject
    mode: one # the mode to run chaos action; supported modes are one/all/fixed/fixed-percent/random-max-percent
    selector: # pods where to inject chaos actions
    namespaces:
    - default
    labelSelectors:
    'app': 'web-show' # the label of the pod for chaos injection
    delay:
    latency: '10ms'
    duration: '12s'

    Dieses Beispiel definiert eine Netzwerklatenz von 12 seconds für Anwendungen mit dem Label "app": "web-show" im Namespace default. Weitere Konfigurationsdetails finden Sie unter Netzwerkchaos simulieren.

  2. Führen Sie diesen Befehl aus, um das Experiment zu starten:

    kubectl apply -f network-delay.yaml
  3. Überprüfen Sie den Status mit diesem kubectl describe-Befehl, um status oder event des Experiments einzusehen:

    kubectl describe networkchaos network-delay

    Ausführliche Anleitungen zur Ergebnisprüfung finden Sie unter Chaos-Experimente inspizieren.

Geplante oder zyklische Chaos-Experimente

Chaos Mesh bietet das Schedule-Objekt für zeitgesteuerte oder wiederkehrende Experimente.

Gehen Sie zur Erstellung folgendermaßen vor:

  1. Erstellen Sie eine neue YAML-Datei, um ein Chaos-Experiment zu definieren. Sie müssen den Schedule-Parameter in der YAML-Datei konfigurieren, um spezifische Zeitplanregeln festzulegen, und anschließend weitere Parameter entsprechend dem gewünschten Experimenttyp konfigurieren.

    Nehmen wir ein geplantes NetworkChaos-Experiment als Beispiel. Speichern Sie folgenden YAML-Text als schedule-delay-example.yaml.

    apiVersion: chaos-mesh.org/v1alpha1
    kind: Schedule
    metadata:
    name: schedule-delay-example
    spec:
    schedule: '5 * * * *'
    historyLimit: 2
    concurrencyPolicy: 'Allow'
    type: 'NetworkChaos'
    networkChaos:
    action: delay
    mode: one
    selector:
    namespaces:
    - default
    labelSelectors:
    'app': 'web-show'
    delay:
    latency: '10ms'
    duration: '12s'

    Dieses YAML-Beispiel definiert einen Netzwerk-Latenzfehler, der automatisch in der fünften Minute jeder Stunde ausgelöst wird. Detaillierte Informationen zu Zeitplanregeln finden Sie unter Zeitplanregeln definieren.

    Hinweis

    Falls Sie den duration-Parameter nicht setzen, bleibt das Fehlerverhalten aktiv, bis Sie das Chaos-Experiment pausieren oder löschen.

  2. Führen Sie folgenden Befehl aus, um dieses Chaos-Experiment zu erstellen und zu starten.

    kubectl apply -f schedule-delay-example.yaml
  3. Um den Status des Chaos-Experiments nach dem Start zu überprüfen, verwenden Sie den kubectl describe-Befehl, um den status oder event dieses Experiment-Objekts einzusehen.

    kubectl describe networkchaos schedule-delay-example

    Detaillierte Schritte zur Überprüfung von Ergebnissen finden Sie unter Chaos-Experimente inspizieren.

Chaos-Experimente pausieren

Experimente über Befehle pausieren oder fortsetzen

Für ein laufendes Chaos-Experiment können Sie es pausieren, indem Sie eine Pause-Annotation per Befehl setzen.

Zum Beispiel pausieren Sie ein Chaos-Experiment namens network-delay im Default-Namespace mit:

kubectl annotate networkchaos network-delay experiment.chaos-mesh.org/pause=true

Nach Befehlsexekution stellt Chaos Mesh die injizierten Fehler sofort wieder her. Um das Experiment vom Pausenzustand zurück in den Normalbetrieb zu versetzen, verwenden Sie:

kubectl annotate networkchaos network-delay experiment.chaos-mesh.org/pause-

Experimente über Chaos Dashboard pausieren oder fortsetzen

Um ein Chaos-Experiment über das Chaos Dashboard zu pausieren oder fortzusetzen, suchen Sie das gewünschte Experiment und klicken Sie auf Pause oder Start.

Experiment pausieren
Experiment pausieren

Experiment fortsetzen
Experiment fortsetzen

Chaos-Experimente aktualisieren

Experimente über Befehle aktualisieren

Das Aktualisieren des Spec-Felds von Chaos-Experimenten ist derzeit nicht möglich.

Details finden Sie im zugehörigen GitHub-Issue.

Experimente über Chaos Dashboard aktualisieren

Das Chaos Dashboard unterstützt derzeit keine Aktualisierungen, da das Spec-Feld nicht geändert werden darf.

Chaos-Experimente löschen

Experimente über Befehle löschen

Nach Abschluss eines Chaos-Experiments löschen Sie es mit kubectl delete. Die injizierten Fehler werden sofort rückgängig gemacht:

kubectl delete -f network-delay.yaml
# or delete the chaos object directly
kubectl delete networkchaos network-delay

Falls der Löschvorgang blockiert wird, können nicht alle Fehlerwirkungen rückgängig gemacht werden. Überprüfen Sie die Chaos Mesh-Logs oder melden Sie das Problem via GitHub-Issue. Alternativ löschen Sie das Experiment zwangsweise mit:

kubectl annotate networkchaos web-show-network-delay chaos-mesh.chaos-mesh.org/cleanFinalizer=forced

Experimente über Chaos Dashboard löschen

Wenn Sie ein Chaos-Experiment im Chaos Dashboard löschen und im Experimentverlauf archivieren möchten, klicken Sie auf den entsprechenden Archivieren-Button des Chaos-Experiments.

Experiment archivieren
Experiment archivieren