Zum Hauptinhalt springen
Version: 2.6.7

Simulation von Azure-Fehlern

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Dieses Dokument beschreibt, wie Sie mit Chaos Mesh Azure-Fehler simulieren können.

Einführung in AzureChaos

AzureChaos ermöglicht Ihnen die Simulation von Fehlerszenarien auf einer bestimmten Azure-Instanz. Derzeit unterstützt AzureChaos folgende Fehlertypen:

  • VM Stop: Stoppt die angegebene VM-Instanz.

  • VM Restart: Startet die angegebene VM-Instanz neu.

  • Disk Detach: Trennt den Datenträger von der angegebenen VM-Instanz.

Secret-Datei

Um die Verbindung zum Azure-Cluster zu vereinfachen, können Sie im Voraus eine Kubernetes-Secret-Datei erstellen, die die Authentifizierungsinformationen speichert.

Eine Beispiel-Secret-Datei sieht folgendermaßen aus:

apiVersion: v1
kind: Secret
metadata:
name: cloud-key-secret
namespace: chaos-mesh
type: Opaque
stringData:
client_id: your-client-id
client_secret: your-client-secret
tenant_id: your-tenant-id
  • name bezeichnet das Kubernetes-Secret-Objekt.

  • namespace bezeichnet den Namespace des Kubernetes-Secret-Objekts.

  • client_id speichert die Anwendungs-ID (Client-ID) der Azure-App-Registrierungen.

  • client_secret speichert den geheimen Schlüssel der Azure-App-Registrierungen.

  • tenant_id speichert die Verzeichnis-ID (Mandanten-ID) der Azure-App-Registrierungen. Informationen zu client_id und client_secret finden Sie unter Confidential client application.

Hinweis

Stellen Sie sicher, dass die App-Registrierungen in der Secret-Datei als Mitwirkende oder Besitzer in der Zugriffssteuerung (IAM) der VM-Instanz hinzugefügt wurden.

Experimente mit Chaos Dashboard erstellen

  1. Öffnen Sie Chaos Dashboard und klicken Sie auf der Seite auf NEW EXPERIMENT, um ein neues Experiment zu erstellen:

    img
    img

  2. Wählen Sie im Bereich Choose a Target die Option Azure FAULT und wählen Sie ein spezifisches Verhalten aus, z. B. VM STOP.

  3. Füllen Sie die Experimentinformationen aus und geben Sie den Experimentumfang sowie die geplante Dauer an.

  4. Übermitteln Sie die Experimentinformationen.

Experimente mit YAML-Dateien erstellen

Beispielkonfiguration für vm-stop

  1. Schreiben Sie die Experimentkonfiguration in die Datei azurechaos-vm-stop.yaml, wie unten gezeigt:

    apiVersion: chaos-mesh.org/v1alpha1
    kind: AzureChaos
    metadata:
    name: vm-stop-example
    namespace: chaos-mesh
    spec:
    action: vm-stop
    secretName: 'cloud-key-secret'
    subscriptionID: 'your-subscription-id'
    resourceGroupName: 'your-resource-group-name'
    vmName: 'your-vm-name'
    duration: '5m'

    Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh den vm-stop-Fehler in die angegebene VM-Instanz, sodass die VM-Instanz für 5 Minuten nicht verfügbar ist.

    Weitere Informationen zum Stoppen von VM-Instanzen finden Sie unter Azure documentation - Start or stop a VM.

  2. Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit kubectl:

    kubectl apply -f azurechaos-vm-stop.yaml

Beispielkonfiguration für vm-restart

  1. Schreiben Sie die Experimentkonfiguration in die Datei azurechaos-vm-restart.yaml:

    apiVersion: chaos-mesh.org/v1alpha1
    kind: AzureChaos
    metadata:
    name: vm-restart-example
    namespace: chaos-mesh
    spec:
    action: vm-restart
    secretName: 'cloud-key-secret'
    subscriptionID: 'your-subscription-id'
    resourceGroupName: 'your-resource-group-name'
    vmName: 'your-vm-name'

    Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh den vm-restart-Fehler in die angegebene VM-Instanz, wodurch die VM neu gestartet wird.

    Weitere Informationen zum Neustart von VM-Instanzen finden Sie in der Azure-Dokumentation - Neustarten einer VM.

  2. Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit kubectl:

    kubectl apply -f azurechaos-vm-restart.yaml

Beispielkonfiguration für detach-volume

  1. Schreiben Sie die Experimentkonfiguration in die Datei azurechaos-disk-detach.yaml:

    apiVersion: chaos-mesh.org/v1alpha1
    kind: AzureChaos
    metadata:
    name: disk-detach-example
    namespace: chaos-mesh
    spec:
    action: disk-detach
    secretName: 'cloud-key-secret'
    subscriptionID: 'your-subscription-id'
    resourceGroupName: 'your-resource-group-name'
    vmName: 'your-vm-name'
    diskName: 'your-disk-name'
    lun: 'your-disk-lun'
    duration: '5m'

    Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh einen disk-detach-Fehler in die angegebene VM-Instanz, sodass der angegebene Datenträger innerhalb von 5 Minuten getrennt wird.

    Weitere Informationen zum Trennen von Azure-Datenträgern finden Sie in der Azure-Dokumentation - Trennen eines Datenträgers.

  2. Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit kubectl:

    kubectl apply -f azurechaos-disk-detach.yaml

Feldbeschreibung

Die folgende Tabelle beschreibt die Felder in der YAML-Konfigurationsdatei.

ParameterTypeDescriptionDefault valueRequiredExample
actionstringIndicates the specific type of faults. Only vm-stop, vm-restart, and disk-detach are supported.vm-stopYesvm-stop
modestringSpecifies the mode of the experiment. The mode options include one (selecting a random Pod), all (selecting all eligible Pods), fixed (selecting a specified number of eligible Pods), fixed-percent (selecting a specified percentage of Pods from the eligible Pods), and random-max-percent (selecting the maximum percentage of Pods from the eligible Pods).N/AYesone
valuestringProvides parameters for the mode configuration, depending on mode. For example, when mode is set to fixed-percent, value specifies the percentage of Pods.N/ANo1
secretNamestringSpecifies the name of the Kubernetes Secret that stores the Azure authentication information.N/ANocloud-key-secret
subscriptionIDstringSpecifies the VM instacnce's subscription ID.N/AYesyour-subscription-id
resourceGroupNamestringSpecifies the Resource group of VM.N/AYesyour-resource-group-name
vmNamestringVMName defines the name of Virtual Machine.N/AYesyour-vm-name
diskNamestringThis is a required field when the action is disk-detach, specifies the name of data disk.N/ANoDATADISK_0
lunstringThis is a required field when the action is disk-detach, specifies the LUN (Logic Unit Number) of data disk.N/ANo0
durationstringSpecifies the duration of the experiment.N/AYes30s