Chaos Engineering mit Chaos Mesh
Chaos Mesh prüft die Resilienz komplexer Kubernetes-Umgebungen, indem es Anomalien und Fehler simuliert. Über ein Web-UI lässt sich der Status der Experimente überwachen.
Chaos Mesh ist ein Werkzeug aus der Welt des Chaos Engineering, eines Entwicklungsansatzes für komplexe Systeme, die unempfindlich für unvorhersehbare Fehlerszenarien sind und einfach weiter funktionieren. Diese Resilienz genannte Eigenschaft lässt sich in einer Kubernetes-Umgebung mit Chaos Mesh durch Experimente untersuchen, die sich mit einem Webfrontend zu komplexen Fehlerszenarien zusammenstellen lassen. Chaos Mesh ist Open Source und gehört zur Toollandschaft der Cloud Native Computing Foundation (CNCF).
Das Tool ist als Kubernetes Custom Resource Definition (CRD) realisiert, also quasi als eine Erweiterung der Kubernetes-API. Chaos Mesh definiert und implementiert mehrere CRD-Typen und -Objekte für verschiedene Fehlertypen und Controller, aus denen es seine Kernkomponenten bildet: Controller Manager, Daemon und Dashboard. Auf jedem Node einer Kubernetes-Umgebung läuft ein Chaos Daemon und manipuliert gemäß dem laufenden Experiment beispielsweise Netzwerk, Dateisystem oder Kernelparameter der ausgeführten Container in den Pods des jeweiligen Node. Der Chaos Controller Manager steuert die Logik zum Ablauf der konfigurierten Experimente und die Error-, Scheduler- und Workflow-Controller. Das Chaos Dashboard ist das webbasierte Benutzerfrontend von Chaos Mesh und eine komfortable Alternative zu kubectl, dem Admintool von Kubernetes für die Kommandozeile.