Simulation von Azure-Fehlern
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_idundclient_secretfinden Sie unter Confidential client application.
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
-
Öffnen Sie Chaos Dashboard und klicken Sie auf der Seite auf NEW EXPERIMENT, um ein neues Experiment zu erstellen:

img -
Wählen Sie im Bereich Choose a Target die Option Azure FAULT und wählen Sie ein spezifisches Verhalten aus, z. B. VM STOP.
-
Füllen Sie die Experimentinformationen aus und geben Sie den Experimentumfang sowie die geplante Dauer an.
-
Übermitteln Sie die Experimentinformationen.
Experimente mit YAML-Dateien erstellen
Beispielkonfiguration für vm-stop
-
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.
-
Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit
kubectl:kubectl apply -f azurechaos-vm-stop.yaml
Beispielkonfiguration für vm-restart
-
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.
-
Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit
kubectl:kubectl apply -f azurechaos-vm-restart.yaml
Beispielkonfiguration für detach-volume
-
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.
-
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.
| Parameter | Type | Description | Default value | Required | Example |
|---|---|---|---|---|---|
| action | string | Indicates the specific type of faults. Only vm-stop, vm-restart, and disk-detach are supported. | vm-stop | Yes | vm-stop |
| mode | string | Specifies 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/A | Yes | one |
| value | string | Provides parameters for the mode configuration, depending on mode. For example, when mode is set to fixed-percent, value specifies the percentage of Pods. | N/A | No | 1 |
| secretName | string | Specifies the name of the Kubernetes Secret that stores the Azure authentication information. | N/A | No | cloud-key-secret |
| subscriptionID | string | Specifies the VM instacnce's subscription ID. | N/A | Yes | your-subscription-id |
| resourceGroupName | string | Specifies the Resource group of VM. | N/A | Yes | your-resource-group-name |
| vmName | string | VMName defines the name of Virtual Machine. | N/A | Yes | your-vm-name |
| diskName | string | This is a required field when the action is disk-detach, specifies the name of data disk. | N/A | No | DATADISK_0 |
| lun | string | This is a required field when the action is disk-detach, specifies the LUN (Logic Unit Number) of data disk. | N/A | No | 0 |
| duration | string | Specifies the duration of the experiment. | N/A | Yes | 30s |