Ein Chaos-Experiment durchführen
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
durationkonfiguriert ist, werden die Fehler nach einem Zeitraum, der durchdurationangegeben 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
kubectlaus. Gehen Sie dazu folgendermaßen vor:
-
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 secondsfür Anwendungen mit dem Label"app": "web-show"im Namespacedefault. Weitere Konfigurationsdetails finden Sie unter Netzwerkchaos simulieren. -
Führen Sie diesen Befehl aus, um das Experiment zu starten:
kubectl apply -f network-delay.yaml -
Überprüfen Sie den Status mit diesem
kubectl describe-Befehl, umstatusodereventdes Experiments einzusehen:kubectl describe networkchaos network-delayAusfü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:
-
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.
HinweisFalls Sie den
duration-Parameter nicht setzen, bleibt das Fehlerverhalten aktiv, bis Sie das Chaos-Experiment pausieren oder löschen. -
Führen Sie folgenden Befehl aus, um dieses Chaos-Experiment zu erstellen und zu starten.
kubectl apply -f schedule-delay-example.yaml -
Um den Status des Chaos-Experiments nach dem Start zu überprüfen, verwenden Sie den
kubectl describe-Befehl, um denstatusodereventdieses Experiment-Objekts einzusehen.kubectl describe networkchaos schedule-delay-exampleDetaillierte 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.


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.
