Zum Hauptinhalt springen

Wie Sie Chaos-Experimente auf Ihrem physischen Rechner durchführen

· 5 Minuten Lesezeit
Xiang Wang
Committer of Chaos Mesh
Inoffizielle Beta-Übersetzung

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

Wie Sie Chaos-Experimente auf Ihrem physischen Rechner durchführen
Wie Sie Chaos-Experimente auf Ihrem physischen Rechner durchführen

Chaos Mesh ist eine Cloud-native Chaos-Engineering-Plattform, die Chaos in Kubernetes-Umgebungen orchestriert. Mit Chaos Mesh können Sie verschiedene Fehlertypen simulieren und über die Weboberfläche Chaos Dashboard Chaos-Experimente direkt verwalten. Seit der Veröffentlichung als Open-Source-Projekt setzen viele Unternehmen Chaos Mesh ein, um die Resilienz und Robustheit ihrer Systeme zu gewährleisten. Im letzten Jahr erreichten uns jedoch häufig Anfragen aus der Community, wie Chaos-Experimente durchgeführt werden können, wenn Dienste nicht auf Kubernetes bereitgestellt sind.

Was ist chaosd

Um den wachsenden Anforderungen an Chaos-Tests auf physischen Rechnern gerecht zu werden, freuen wir uns, das erweiterte Toolkit chaosd vorzustellen. Der Name kommt Ihnen vielleicht bekannt vor, da es sich aus chaos-daemon entwickelt hat – einer Schlüsselkomponente von Chaos Mesh. Beim TiDB Hackathon 2020 haben wir chaosd überarbeitet, um es über ein reines Kommandozeilenwerkzeug hinaus zu erweitern. Mit chaosd v1.0.1 können Sie nun gezielt Fehler auf physischen Maschinen simulieren und die Chaos-Experimente anschließend rückstandslos beenden.

Vorteile von chaosd

chaosd bietet folgende Vorteile:

  • Einfache Bedienung: Sie können Chaos-Experimente problemlos mit chaosd-Befehlen erstellen und verwalten.

  • Vielseitige Fehlertypen: Sie können Fehler auf verschiedenen Ebenen physischer Maschinen simulieren, einschließlich Prozessfehlern, Netzwerkfehlern, Fehlern in Java Virtual Machine (JVM)-Anwendungen, Stressszenarien, Festplattenfehlern und Hostfehlern.

  • Mehrere Betriebsmodi: Sie können chaosd als Kommandozeilenwerkzeug oder als Dienst nutzen.

Ohne weitere Umschweife probieren wir es aus.

So verwenden Sie chaosd

In diesem Abschnitt zeige ich Ihnen, wie Sie mit chaosd einen Netzwerkfehler injizieren. Ihre glibc-Version muss v2.17 oder höher sein.

1. chaosd herunterladen und entpacken

Laden Sie chaosd mit folgendem Befehl herunter:

curl -fsSL -o chaosd-v1.0.1-linux-amd64.tar.gz https://mirrors.chaos-mesh.org/chaosd-v1.0.1-linux-amd64.tar.gz

Entpacken Sie die Datei. Sie enthält zwei Ordner:

  • chaosd enthält den Tool-Einstiegspunkt für chaosd.

  • tools enthält die für Chaos-Experimente benötigten Tools, darunter stress-ng (zur Simulation von Stressszenarien), Byteman (zur Simulation von JVM-Anwendungsfehlern) und PortOccupyTool (zur Simulation von Netzwerkfehlern).

2. Chaos-Experiment erstellen

In diesem Chaos-Experiment kann der Server nicht auf chaos-mesh.org zugreifen.

Führen Sie folgenden Befehl aus:

sudo ./chaosd attack network loss --percent 100 --hostname chaos-mesh.org --device ens33

Um das Experiment zurückzusetzen, führen Sie folgenden Befehl aus:

Attack network successfully, uid: c55a84c5-c181-426b-ae31-99c8d4615dbe

In dieser Simulation kann die Netzwerkschnittstelle ens33 keine Netzwerkpakete an chaos-mesh.org senden oder von dort empfangen. Der Grund für die Verwendung von sudo-Befehlen ist, dass das Chaos-Experiment Netzwerkregeln ändert, was Root-Rechte erfordert.

Vergessen Sie nicht, die uid des Chaos-Experiments zu speichern. Diese benötigen Sie später im Wiederherstellungsprozess.

3. Ergebnisse überprüfen

Verwenden Sie den ping-Befehl, um zu prüfen, ob der Server chaos-mesh.org erreichen kann:

ping chaos-mesh.org
PING chaos-mesh.org (185.199.109.153) 56(84) bytes of data.

Bei der Ausführung des Befehls wird die Website höchstwahrscheinlich nicht antworten. Drücken Sie CTRL+C, um den Ping-Prozess zu stoppen. In den Statistikdaten des ping-Befehls sollte 100% packet loss angezeigt werden.

Um das Experiment zurückzusetzen, führen Sie folgenden Befehl aus:

2 packets transmitted, 0 received, 100% packet loss, time 1021ms

4. Das Experiment wiederherstellen

Um das Experiment zurückzusetzen, führen Sie folgenden Befehl aus:

sudo ./chaosd recover c55a84c5-c181-426b-ae31-99c8d4615dbe

Um das Experiment zurückzusetzen, führen Sie folgenden Befehl aus:

Recover c55a84c5-c181-426b-ae31-99c8d4615dbe successfully

Auch hier sind sudo-Berechtigungen erforderlich. Nach der Wiederherstellung können Sie erneut versuchen, chaos-mesh.org anzupingen, um die Verbindung zu überprüfen.

Nächste Schritte

Unterstützung für Dashboard-Web

Wie Sie sehen, ist chaosd einfach zu bedienen. Wir arbeiten jedoch an einer noch benutzerfreundlicheren Lösung – ein Dashboard-Web für chaosd befindet sich aktuell in intensiver Entwicklung.

Wir werden die Bedienbarkeit weiter verbessern und zusätzliche Funktionen implementieren, wie die Verwaltung von Chaos-Experimenten mit chaosd und Chaos Mesh. Dies ermöglicht ein konsistentes Nutzererlebnis für Chaos-Tests auf Kubernetes und physischen Maschinen. Die folgende Architektur dient als einfaches Beispiel:

Optimierte Architektur von Chaos Mesh
Optimierte Architektur von Chaos Mesh

Weitere Details finden Sie unter Optimierte Architektur von Chaos Mesh.

Weitere Fehlerinjektionstypen hinzufügen

Aktiv unterstützt chaosd sechs Fehlerinjektionstypen. Geplant ist die Integration weiterer Typen, die bereits in Chaos Mesh verfügbar sind, darunter HTTPChaos und IOChaos.

Wenn Sie uns bei der Verbesserung von chaosd unterstützen möchten, können Sie gerne ein Issue auswählen und loslegen!

Probieren Sie es aus!

Wenn Sie chaosd testen möchten, finden Sie weitere Informationen in der Dokumentation. Bei Problemen oder Feature-Anfragen können Sie gerne ein Issue erstellen. Wir freuen uns auf Ihr Feedback!