Chaos Mesh: Überblick
Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
Dieses Dokument beschreibt die Konzepte, Anwendungsfälle, Kernstärken und die Architektur von Chaos Mesh.
Chaos Mesh: Überblick
Chaos Mesh ist eine Open-Source-Plattform für Cloud-native Chaos Engineering. Es bietet verschiedene Arten von Fehlersimulationen und verfügt über umfangreiche Fähigkeiten zur Orchestrierung von Fehlerszenarien.
Mit Chaos Mesh können Sie bequem verschiedene Anomalien simulieren, die in Entwicklung-, Test- und Produktionsumgebungen auftreten können, und potenzielle Probleme im System identifizieren. Um den Einstieg in Chaos Engineering zu erleichtern, bietet Chaos Mesh eine visuelle Bedienung. Sie können Ihre Chaos-Szenarien einfach über die Web-Oberfläche entwerfen und den Status von Chaos-Experimenten überwachen.
Kernstärken
Als führende Chaos-Testing-Plattform der Branche bietet Chaos Mesh folgende Kernvorteile:
-
Stabile Kernfunktionen: Chaos Mesh entstand aus der Kerntestplattform von TiDB und übernahm von Beginn an umfangreiche Testexpertise aus TiDB.
-
Umfassend validiert: Chaos Mesh wird in zahlreichen Unternehmen und Organisationen wie Tencent und Meituan eingesetzt; es ist auch in Testsystemen bekannter verteilter Systeme wie Apache APISIX und RabbitMQ im Einsatz.
-
Einfache Bedienung: Chaos Mesh nutzt Automatisierung mit grafischen Operationen und Kubernetes-basierter Nutzung voll aus.
-
Cloud-nativ: Chaos Mesh unterstützt Kubernetes-Umgebungen mit seiner leistungsstarken Automatisierungsfähigkeit.
-
Vielfältige Fehlersimulationsszenarien: Chaos Mesh deckt die meisten Grundszenarien der Fehlersimulation in verteilten Testsystemen ab.
-
Flexible Orchestrierung von Experimenten: Sie können eigene Chaos-Experimente entwerfen, einschließlich kombinierter Experimente und Anwendungsstatusprüfungen.
-
Hohe Sicherheit: Chaos Mesh verfügt über mehrstufige Sicherheitskontrollen und bietet hohe Sicherheit.
-
Aktive Community: Chaos Mesh ist ein Inkubationsprojekt der CNCF mit wachsender Zahl von Mitwirkenden und Anwendern weltweit.
-
Einfache Erweiterbarkeit: Neue Fehlertesttypen und Funktionen lassen sich problemlos hinzufügen.
Architekturüberblick
Chaos Mesh basiert auf Kubernetes CRD (Custom Resource Definition). Zur Verwaltung verschiedener Chaos-Experimente definiert Chaos Mesh mehrere CRD-Typen basierend auf Fehlertypen und implementiert separate Controller für verschiedene CRD-Objekte. Chaos Mesh besteht hauptsächlich aus drei Komponenten:
-
Chaos Dashboard: Die Visualisierungskomponente von Chaos Mesh. Es bietet benutzerfreundliche Web-Oberflächen zur Steuerung und Beobachtung von Chaos-Experimenten sowie einen RBAC-Berechtigungsmechanismus.
-
Chaos Controller Manager: Die zentrale logische Komponente, hauptsächlich verantwortlich für die Planung und Verwaltung von Chaos-Experimenten. Enthält mehrere CRD-Controller wie Workflow Controller, Scheduler Controller und Controller für verschiedene Fehlertypen.
-
Chaos Daemon: Die Hauptausführungskomponente. Läuft im DaemonSet-Modus mit standardmäßig privilegierten Berechtigungen (deaktivierbar). Greift durch Eindringen in den Ziel-Pod-Namespace auf Netzwerkgeräte, Dateisysteme und Kernel zu.

Wie im obigen Bild dargestellt, lässt sich die Gesamtarchitektur von Chaos Mesh von oben nach unten in drei Teile gliedern:
-
Benutzereingabe und -beobachtung: Benutzeraktionen erreichen den Kubernetes API-Server. Benutzer interagieren nicht direkt mit dem Chaos Controller Manager. Alle Operationen manifestieren sich als Änderung einer Chaos-Ressource (z.B. NetworkChaos-Ressource).
-
Überwachung von Ressourcenänderungen, Planung von Workflows und Durchführung von Chaos-Experimenten: Der Chaos Controller Manager akzeptiert ausschließlich Ereignisse vom Kubernetes API Server. Diese Ereignisse beschreiben Änderungen an bestimmten Chaos-Ressourcen, beispielsweise ein neues Workflow-Objekt oder die Erstellung eines Chaos-Objekts.
-
Injektion spezifischer Knotenfehler: Die Chaos Daemon-Komponente ist primär für die Annahme von Befehlen der Chaos Controller Manager-Komponente verantwortlich, dringt in den Namespace des Ziel-Pods ein und führt spezifische Fehlerinjektionen durch. Beispielsweise das Setzen von TC-Netzwerkregeln oder das Starten des stress-ng-Prozesses zur Beanspruchung von CPU- oder Speicherressourcen.