Zum Hauptinhalt springen
Version: 2.6.7

AWS-Fehler simulieren

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

Hinweis

Bevor Sie ein Experiment mit Chaos Dashboard erstellen, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:

  1. Chaos Dashboard ist installiert.

  2. Auf Chaos Dashboard kann über kubectl port-forward zugegriffen werden:

     kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333

    Anschließend können Sie im Browser über http://localhost:2333 auf das Dashboard zugreifen.

  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 Ziel auswählen die Option AWS-FEHLER und ein spezifisches Verhalten aus, z.B. EC2 STOPPEN.

  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 ec2-stop

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

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

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

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

    kubectl apply -f awschaos-ec2-restart.yaml

Beispielkonfiguration für detach-volume

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

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

ParameterTypeDescriptionDefault valueRequiredExample
actionstringIndicates the specific type of faults. Only ec2-stop, ec2-restore, and detain-volume are supported.ec2-stopYesec2-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).NoneYesone
valuestringProvides parameters for the mode configuration, depending on mode.For example, when mode is set to fixed-percent, value specifies the percentage of Pods.NoneNo1
secretNamestringSpecifies the name of the Kubernetes Secret that stores the AWS authentication information.NoneNocloud-key-secret
awsRegionstringSpecifies the AWS region.NoneYesus-east-2
ec2InstancestringSpecifies the ID of the EC2 instance.NoneYesyour-ec2-instance-id
volumeIDstringThis is a required field when the action is detach-volume. This field specifies the EBS volume ID.NoneNoyour-volume-id
deviceNamestringThis is a required field when the action is detach-volume. This field specifies the machine name.NoneNo/dev/sdf
durationstringSpecifies the duration of the experiment.NoneYes30s