Zum Hauptinhalt springen
Version: 2.6.7

Chaos Mesh: Überblick

Inoffizielle Beta-Übersetzung

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.

Architektur
Architektur

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.