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.
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.