Zum Hauptinhalt springen
Version: 2.7.3

Chaosctl

Inoffizielle Beta-Übersetzung

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.

Hinweis

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:

  1. Klonen Sie das Chaos Mesh-Repository auf Ihren lokalen Rechner.

    git clone https://github.com/chaos-mesh/chaos-mesh.git
  2. Wechseln Sie in das Chaos Mesh-Verzeichnis.

  3. Führen Sie folgenden Befehl aus:

    make chaosctl

    Die 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:

  1. 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
  2. Kopieren Sie die Dateien ca.crt und ca.key auf die entsprechende physische Maschine. Beispiel: Kopieren Sie die Dateien in das Verzeichnis /etc/chaosd/pki.

  3. Generieren Sie mit dem Befehl chaosctl pm generate TLS-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.key

    Weitere Informationen und Beispiele finden Sie unter chaosctl pm generate -h.

  4. Erstellen Sie mit dem Befehl chaosctl pm create auf dem Rechner mit Kubernetes-Zugang eine PhysicalMachine-Ressource im Cluster. Beispiel:

    ./chaosctl pm create pm-name --ip=123.123.123.123 -l arch=amd64

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