Zum Hauptinhalt springen
Version: 2.6.7

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.

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.