AWS-Fehler simulieren
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 AWS-Fehler simulieren können.
Einführung in AWSChaos
AWSChaos ermöglicht die Simulation von Fehlerszenarien auf einer bestimmten AWS-Instanz. Derzeit unterstützt AWSChaos folgende Fehlertypen:
-
EC2 Stop: Stoppt die angegebene EC2-Instanz.
-
EC2 Restart: Startet die angegebene EC2-Instanz neu.
-
Detach Volume: Trennt den Speichervolume von der angegebenen EC2-Instanz.
Secret-Datei
Für eine einfache Verbindung zum AWS-Cluster können Sie eine Kubernetes-Secret-Datei erstellen, um die Authentifizierungsdaten im Voraus zu speichern.
Eine Beispiel-Secret-Datei sieht folgendermaßen aus:
apiVersion: v1
kind: Secret
metadata:
name: cloud-key-secret
namespace: chaos-mesh
type: Opaque
stringData:
aws_access_key_id: your-aws-access-key-id
aws_secret_access_key: your-aws-secret-access-key
aws_session_token: your-aws-session-token
-
name bezeichnet das Kubernetes-Secret-Objekt.
-
namespace bezeichnet den Namespace des Kubernetes-Secret-Objekts.
-
aws_access_key_id speichert die ID des Zugriffsschlüssels für den AWS-Cluster.
-
aws_secret_access_key speichert den geheimen Zugriffsschlüssel für den AWS-Cluster.
-
aws_session_token speichert das AWS-Session-Token für den AWS-Cluster. (Erforderlich bei Verwendung von temporären AWS-Anmeldeinformationen)
Experimente mit Chaos Dashboard erstellen
Bevor Sie ein Experiment mit Chaos Dashboard erstellen, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:
-
Chaos Dashboard ist installiert.
-
Auf Chaos Dashboard kann über
kubectl port-forwardzugegriffen werden:kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333Anschließend können Sie im Browser über
http://localhost:2333auf das Dashboard zugreifen.
-
Ö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 Ziel auswählen die Option AWS-FEHLER und ein spezifisches Verhalten aus, z.B. EC2 STOPPEN.
-
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 ec2-stop
-
Schreiben Sie die Experimentkonfiguration wie unten gezeigt in die Datei
awschaos-ec2-stop.yaml:apiVersion: chaos-mesh.org/v1alpha1
kind: AWSChaos
metadata:
name: ec2-stop-example
namespace: chaos-mesh
spec:
action: ec2-stop
secretName: 'cloud-key-secret'
awsRegion: 'us-east-2'
ec2Instance: 'your-ec2-instance-id'
duration: '5m'Basierend auf dieser Konfiguration injiziert Chaos Mesh den
ec2-stop-Fehler in die angegebene EC2-Instanz, wodurch diese für 5 Minuten nicht verfügbar ist.Weitere Informationen zum Stoppen von EC2-Instanzen finden Sie in der AWS-Dokumentation - Stop and start your instance.
-
Verwenden Sie nach der Vorbereitung der Konfigurationsdatei
kubectl, um das Experiment zu erstellen:kubectl apply -f awschaos-ec2-stop.yaml
Beispielkonfiguration für ec2-start
-
Schreiben Sie die Experimentkonfiguration in die Datei
awchaos-ec2-restot.yaml:apiVersion: chaos-mesh.org/v1alpha1
kind: AWSChaos
metadata:
name: ec2-restart-example
namespace: chaos-mesh
spec:
action: ec2-restart
secretName: 'cloud-key-secret'
awsRegion: 'us-east-2'
ec2Instance: 'your-ec2-instance-id'Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh einen
ec2-restart-Fehler in die angegebene EC2-Instanz, wodurch die EC2-Instanz neu gestartet wird.Weitere Informationen zum Neustarten von EC2-Instanzen finden Sie in der AWS-Dokumentation - Reboot your instance.
-
Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit
kubectl:kubectl apply -f awschaos-ec2-restart.yaml
Beispielkonfiguration für detach-volume
-
Schreiben Sie die Experimentkonfiguration in die Datei
awschaos-detach-volume.yaml:apiVersion: chaos-mesh.org/v1alpha1
kind: AWSChaos
metadata:
name: ec2-detach-volume-example
namespace: chaos-mesh
spec:
action: ec2-stop
secretName: 'cloud-key-secret'
awsRegion: 'us-east-2'
ec2Instance: 'your-ec2-instance-id'
volumeID: 'your-volume-id'
deviceName: '/dev/sdf'
duration: '5m'Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh einen
detail-volume-Fehler in die angegebene EC2-Instanz, wodurch die EC2-Instanz innerhalb von 5 Minuten vom angegebenen Speichervolume getrennt wird.Weitere Informationen zum Trennen von Amazon EBS Volumes finden Sie in der AWS-Dokumentation - Detach an Amazon EBS volume from a Linux instance.
-
Nachdem die Konfigurationsdatei vorbereitet ist, erstellen Sie das Experiment mit
kubectl:kubectl apply -f awschaos-detach-volume.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 ec2-stop, ec2-restore, and detain-volume are supported. | ec2-stop | Yes | ec2-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). | None | 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. | None | No | 1 |
| secretName | string | Specifies the name of the Kubernetes Secret that stores the AWS authentication information. | None | No | cloud-key-secret |
| awsRegion | string | Specifies the AWS region. | None | Yes | us-east-2 |
| ec2Instance | string | Specifies the ID of the EC2 instance. | None | Yes | your-ec2-instance-id |
| volumeID | string | This is a required field when the action is detach-volume. This field specifies the EBS volume ID. | None | No | your-volume-id |
| deviceName | string | This is a required field when the action is detach-volume. This field specifies the machine name. | None | No | /dev/sdf |
| duration | string | Specifies the duration of the experiment. | None | Yes | 30s |