Chaosctl
Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
Chaosctl ist ein Werkzeug zur Unterstützung beim Debugging von Chaos Mesh. Mit Chaosctl können Sie den Prozess der Entwicklung und Fehlersuche neuer Chaos-Typen vereinfachen und anderen Entwicklern bei der Problemstellung Referenzen liefern.
In Chaos Mesh Version 2.7.3 müssen Sie den ctrlserver manuell aktivieren, um Chaosctl zu verwenden, da er standardmäßig deaktiviert ist.
Falls Sie Chaos Mesh mit Helm bereitstellen, können Sie den ctrlserver aktivieren, indem Sie den Parameter enableCtrlServer auf true setzen.
Chaosctl beziehen
Für Linux-Nutzer können Sie die ausführbare Datei für Chaosctl direkt herunterladen.
curl -sSL https://mirrors.chaos-mesh.org/latest/chaosctl -O
Für Windows- oder macOS-Nutzer kann das Tool aus dem Quellcode kompiliert werden. Für die Kompilierung wird Go v1.15 oder höher empfohlen. Gehen Sie wie folgt vor:
-
Klonen Sie das Chaos Mesh-Repository auf Ihren lokalen Rechner.
git clone https://github.com/chaos-mesh/chaos-mesh.git -
Wechseln Sie in das Chaos Mesh-Verzeichnis.
-
Führen Sie folgenden Befehl aus:
make chaosctlDie kompilierte ausführbare Datei befindet sich unter
bin/chaosctl.
Funktionen
Aktuell unterstützt Chaosctl das Ausgeben von Logs und Debugging-Informationen für Chaos-Experimente.
Logs ausgeben
Verwenden Sie den Befehl chaosctl logs, um Logs aller Chaos Mesh-Komponenten auszugeben. Hilfeinformationen und Beispiele zeigen Sie mit chaosctl logs -h an. Ein Beispielbefehl:
chaosctl logs -t 100 # Print the last 100 lines of logs from all components
Debugging-Informationen ausgeben
Verwenden Sie chaosctl debug für Debugging-Informationen. Hilfe und Beispiele zeigen Sie mit chaosctl debug -h an. Stellen Sie beim Debugging sicher, dass Chaosctl mit dem entsprechenden chaos-daemon verbunden ist. Falls Sie TLS bei der Chaos Mesh-Installation deaktiviert haben (standardmäßig aktiviert), fügen Sie die Option -i hinzu, um Chaosctl über die Nichtverwendung von TLS zu informieren. Beispielbefehl:
./chaosctl debug -i networkchaos web-show-network-delay
Aktuell unterstützt Chaosctl nur das Debugging von IOChaos, NetworkChaos und StressChaos.
TLS-Zertifikate für Chaosd generieren
Bei Anfragen zwischen Chaosd und Chaos Mesh empfiehlt Chaos Mesh die Aktivierung des mTLS-Modus (Mutual Transport Layer Security), um die Kommunikationssicherheit zwischen Chaosd und Chaos-controller-manager-Diensten zu gewährleisten.
Für mTLS müssen TLS-Zertifikatsparameter in Chaosd und Chaos Mesh konfiguriert werden. Stellen Sie daher sicher, dass Chaosd und Chaos Mesh TLS-Zertifikate generiert haben, und starten Sie beide mit den Zertifikaten als Parameter.
-
Chaosd: Sie können Chaosd vor oder nach der Konfiguration der TLS-Zertifikatsparameter starten. Aus Clustersicherheitsgründen empfiehlt sich die Konfiguration vor dem Start. Details siehe Chaosd-Server bereitstellen.
-
Chaos Mesh: Bei Installation via Helm sind TLS-Zertifikatsparameter standardmäßig konfiguriert.
Falls Ihr Chaosd kein TLS-Zertifikat generiert hat, können Sie Chaosctl zur einfachen Generierung über die Befehlszeile nutzen. In folgenden Anwendungsfällen arbeitet Chaosctl mit unterschiedlichen Schemata:
Fall 1: Die Knoten, auf denen Chaosctl läuft, können Kubernetes-Cluster erreichen und per SSH auf physische Maschinen zugreifen.
Führen Sie die folgenden Befehle aus, um die Vorgänge abzuschließen:
-
Befehl: Nutzen Sie
chaosctl pm init:./chaosctl pm init pm-name --ip=123.123.123.123 -l arch=amd64,anotherkey=value -
Aktion: Der Befehl führt folgende Schritte aus:
- Generiert das benötigte Zertifikat für Chaosd und speichert es auf der Zielmaschine
- Erstellt die entsprechende
PhysicalMachine-Ressource im Kubernetes-Cluster
Weitere Informationen und Beispiele zeigen Sie mit chaosctl pm init -h.
Fall 2: Die Knoten, auf denen Chaosctl läuft, können Kubernetes-Cluster erreichen, jedoch keine SSH-Verbindungen zu physischen Maschinen herstellen.
Führen Sie die folgenden Befehle aus, um die Vorgänge abzuschließen:
-
Vor dem Ausführen des Befehls müssen Sie manuell ein CA-Zertifikat aus dem Kubernetes-Cluster abrufen. Beispiel:
kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-mesh -o "jsonpath={.data['ca\.crt']}" | base64 -d > ca.crt
kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-mesh -o "jsonpath={.data['ca\.key']}" | base64 -d> ca.key -
Kopieren Sie die Dateien
ca.crtundca.keyauf die entsprechende physische Maschine. Beispiel: Kopieren Sie die Dateien in das Verzeichnis/etc/chaosd/pki. -
Generieren Sie mit dem Befehl
chaosctl pm generateTLS-Zertifikate (standardmäßig in /etc/chaosd/pki gespeichert) auf der physischen Maschine. Beispiel:./chaosctl pm generate --cacert=/etc/chaosd/pki/ca.crt --cakey=/etc/chaosd/pki/ca.keyWeitere Informationen und Beispiele finden Sie unter
chaosctl pm generate -h. -
Erstellen Sie mit dem Befehl
chaosctl pm createauf dem Rechner mit Kubernetes-Zugang einePhysicalMachine-Ressource im Cluster. Beispiel:./chaosctl pm create pm-name --ip=123.123.123.123 -l arch=amd64Weitere Informationen und Beispiele finden Sie unter
chaosctl pm create -h.
Fragen und Feedback
Der Code von Chaosctl wird derzeit im Chaos Mesh-Projekt gehostet. Einzelheiten siehe chaos-mesh/pkg/chaosctl.
Bei Problemen oder Interesse an Verbesserungen kontaktieren Sie das Chaos-Mesh-Team über CNCF Slack oder erstellen Sie ein GitHub-Issue.
Fügen Sie bei Problembeschreibungen relevante Logs und Chaos-Informationen bei. Die Ergebnisse von chaosctl logs helfen Entwicklern bei der Analyse. Bei Fragen zu iochaos, networkchaos oder stresschaos sind auch chaosctl debug-Informationen diagnostisch wertvoll.