
Ein einfach zu bedienendes und leistungsstarkes Toolkit für Chaos-Engineering-Experimente.(Ein von Alibaba als Open Source veröffentlichtes, einfach zu bedienendes und leistungsstarkes Werkzeug zur Injektion von Chaos-Experimenten)

Chinesische Version README
Wiki: DeepWiki
Blade AI dient als intelligente Agentenschicht innerhalb des ChaosBlade-Ökosystems: Auf der Basisebene ruft es ChaosBlade auf, um Fehlerinjektionen auszuführen; auf der oberen Ebene integriert es Orchestrierungsfähigkeiten wie Absichtserkennung, Sicherheitsaudit, Wirkungsüberprüfung, sichere Wiederherstellung und strukturierte Berichterstattung – und verwandelt so Fehlerübungen von einem Prozess des „manuellen Schreibens von Befehlen" in einen, der durch „konversationelle Interaktion" abgeschlossen wird.
Ausführliche Informationen finden Sie unter: Blade AI README
ChaosBlade ist ein von Alibaba entwickeltes Open-Source-Werkzeug zur Experimentinjektion, das den Prinzipien des Chaos Engineerings und chaotischer Experimentalmodelle folgt, um Unternehmen dabei zu helfen, die Fehlertoleranz verteilter Systeme zu verbessern und die Geschäftskontinuität während des Umstiegs auf die Cloud oder auf Cloud-native Systeme sicherzustellen.
Chaosblade ist ein internes Open-Source-Projekt von MonkeyKing. Es basiert auf fast zehn Jahren Fehlertests und Übungspraxis bei Alibaba und vereint die besten Ideen und Praktiken der Geschäftsbereiche der Gruppe.
ChaosBlade ist nicht nur einfach zu bedienen, sondern unterstützt auch zahlreiche experimentelle Szenarien. Zu den Szenarien gehören:
Die Kapselung von Szenarien nach Domänen in einzelne Projekte kann nicht nur die Szenarien in der Domäne standardisieren, sondern auch die horizontale und vertikale Erweiterung der Szenarien erleichtern. Durch die Befolgung des Chaos-Experimentmodells kann die chaosblade CLI einheitlich aufgerufen werden. Die derzeit enthaltenen Projekte sind:
Diese Anleitung hilft Ihnen, Ihre erste Fehlerinjektion auf Kubernetes in weniger als 5 Minuten mit ChaosBlade durchzuführen. Als minimales Beispiel injizieren wir einen CPU-Stressfehler in einen Pod.
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
kubectl cluster-info erfolgreich zurückgibt)default)blade-Binärdatei befindet sich in Ihrem PATH)Installieren Sie den Operator mit Helm:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Überprüfen Sie, ob der Operator läuft:
kubectl get pods -n chaosblade
Führen Sie einen CPU-Vollauslastungsfehler gegen einen Pod im default-Namespace aus:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Wenn die Injektion erfolgreich ist, gibt ChaosBlade ein JSON-Ergebnis mit einer Experiment-uid zurück. Speichern Sie diese uid, um später den Status zu überprüfen oder das Experiment zu zerstören:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Stellen Sie nach Ihrer Übung immer den Normalzustand des Ziels wieder her:
blade destroy <experiment-uid>
Das war's! Sie haben einen vollständigen Injizieren-Prüfen-Wiederherstellen-Zyklus abgeschlossen. Um weitere Szenarien zu erkunden, führen Sie blade create k8s -h aus oder lesen Sie Chaos-Engineering-Praxis unter Cloud Native.
Sie können das neueste chaosblade-Werkzeugpaket von Releases herunterladen, es entpacken und verwenden. Wenn Sie Kubernetes-bezogene Fehlerszenarien injizieren möchten, müssen Sie chaosblade-operator installieren. Ausführliche chinesische Anwendungsdokumente finden Sie unter chaosblade-help-zh-cn .
chaosblade unterstützt CLI- und HTTP-Aufrufmethoden. Die unterstützten Befehle sind wie folgt:
blade p jvm --process business aus. Wenn das Anhängen erfolgreich ist, wird die uid für die Statusabfrage oder den Agent-Entzug zurückgegeben.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Wenn Sie beispielsweise einen Dubbo-Consumer implementieren, der die Schnittstelle xxx.xxx.Service mit 3s Verzögerung aufruft, lautet der ausgeführte Befehl blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service. Wenn die Injektion erfolgreich ist, wird die Experiment-uid für die Statusabfrage zurückgegeben und das Experiment zerstört.blade destroy UIDblade status UID oder blade status --type createVerwenden Sie den Befehl blade help [COMMAND] oder blade [COMMAND] -h, um die Hilfe anzuzeigen.
Laden Sie das chaosblade-Demo-Image herunter und erleben Sie die Verwendung des blade-Werkzeugpakets

Befehl zum Herunterladen des Images:
docker pull chaosbladeio/chaosblade-demo
Demo-Container ausführen:
docker run -it --privileged chaosbladeio/chaosblade-demo
Nach dem Betreten des Containers können Sie die Datei README.txt lesen, um das Chaos-Experiment durchzuführen. Viel Spaß dabei.
Das Projekt chaosblade-operator ist ein Chaos-Experiment-Injektionswerkzeug für Cloud-native Plattformen. Es folgt dem Chaos-Experimentmodell, um das experimentelle Szenario zu standardisieren, definiert das Experiment als Kubernetes-CRD-Ressourcen, bildet experimentelle Modelle auf Kubernetes-Ressourcenattribute ab und kombiniert chaotische Experimentalmodelle sehr freundlich mit dem deklarativen Design von Kubernetes. Während es sich auf chaotische Experimentalmodelle stützt, um Szenarien bequem zu entwickeln, kann es auch Kubernetes-Designkonzepte gut integrieren, über kubectl oder das Schreiben von Code direkt die Kubernetes-API aufrufen, um chaotische Experimente zu erstellen, zu aktualisieren und zu löschen. Der Ressourcenstatus kann den Ausführungsstatus des Experiments klar anzeigen und die Kubernetes-Fehlerinjektion standardisieren. Zusätzlich zu den oben genannten Methoden zur Durchführung von Experimenten können Sie auch die chaosblade-CLI-Methode verwenden, um Kubernetes-Experimentalszenarien auszuführen und den Experimentstatus sehr bequem abzufragen. Ausführliche Informationen finden Sie im chinesischen Dokument: Chaos-Engineering-Praxis unter Cloud Native
Einzelheiten finden Sie in BUILD.md.
Für Fehlermeldungen, Fragen und Diskussionen reichen Sie bitte GitHub Issues ein.
Sie können uns auch kontaktieren über:
Wir begrüßen jeden Beitrag, selbst wenn es nur ein Satzzeichen ist. Einzelheiten finden Sie in CONTRIBUTING. Für die Aufstiegsleiter von Studenten, die sich in der Community engagieren, siehe: (Contributor Ladder)
Die ursprüngliche Absicht unseres Open-Source-Projekts ist es, die Hürde für die Umsetzung von Chaos Engineering in Unternehmen zu senken. Daher legen wir großen Wert auf die Nutzung des Projekts in Unternehmen. Wir heißen alle hier willkommen: ISSUE. Nach der Registrierung werden Sie eingeladen, der Unternehmens-E-Mail-Gruppe beizutreten, um die Probleme zu besprechen, die beim Einsatz von Chaos Engineering im Unternehmen auftreten, und Erfahrungen mit dem Einsatz zu teilen.
Dieses Projekt existiert dank aller Menschen, die dazu beitragen. [Contribute].
Chaosblade ist unter der Apache License, Version 2.0, lizenziert. Den vollständigen Lizenztext finden Sie in LICENSE.
blade server start -p 9526curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"