Aller au contenu principal
Version : 2.6.7

Simuler des pannes AWS

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Ce document explique comment utiliser Chaos Mesh pour simuler des pannes AWS.

Introduction à AWSChaos

AWSChaos vous permet de simuler des scénarios de panne sur une instance AWS spécifiée. Actuellement, AWSChaos prend en charge les types de pannes suivants :

  • EC2 Stop : arrête l'instance EC2 spécifiée.

  • EC2 Restart : redémarre l'instance EC2 spécifiée.

  • Detach Volume : démonte le volume de stockage de l'instance EC2 spécifiée.

Fichier Secret

Pour faciliter la connexion au cluster AWS, vous pouvez créer un fichier Kubernetes Secret pour stocker au préalable les informations d'authentification.

Voici un exemple de fichier Secret :

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 correspond à l'objet Kubernetes Secret.

  • namespace désigne l'espace de noms de l'objet Kubernetes Secret.

  • aws_access_key_id contient l'ID de la clé d'accès au cluster AWS.

  • aws_secret_access_key contient la clé d'accès secrète au cluster AWS.

  • aws_session_token contient le jeton de session AWS pour le cluster. (requis lors de l'utilisation de credentials AWS temporaires)

Créer des expériences avec Chaos Dashboard

note

Avant de créer une expérience via Chaos Dashboard, assurez-vous que les conditions suivantes sont remplies :

  1. Chaos Dashboard est installé.

  2. Chaos Dashboard est accessible via kubectl port-forward :

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

    Vous pouvez ensuite accéder au dashboard via http://localhost:2333 dans votre navigateur.

  1. Ouvrez Chaos Dashboard, puis cliquez sur NOUVELLE EXPÉRIENCE pour créer une nouvelle expérience :

    img
    img

  2. Dans la section Choose a Target, sélectionnez AWS FAULT puis un comportement spécifique comme STOP EC2.

  3. Renseignez les informations de l'expérience, puis spécifiez sa portée et sa durée planifiée.

  4. Soumettez les informations de l'expérience.

Créer des expériences avec un fichier YAML

Exemple de configuration ec2-stop

  1. Écrivez la configuration d'expérience dans le fichier awschaos-ec2-stop.yaml comme ci-dessous :

    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'

    Avec cette configuration, Chaos Mesh injectera la panne ec2-stop sur l'instance EC2 spécifiée, la rendant indisponible pendant 5 minutes.

    Pour plus d'informations sur l'arrêt d'instances EC2, consultez la documentation AWS - Arrêter et démarrer votre instance.

  2. Une fois le fichier préparé, utilisez kubectl pour créer l'expérience :

    kubectl apply -f awschaos-ec2-stop.yaml

Exemple de configuration ec2-start

  1. Écrivez la configuration de l'expérience dans le fichier 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'

    Selon cet exemple de configuration, Chaos Mesh injectera la panique ec2-restart dans l'instance EC2 spécifiée, entraînant son redémarrage.

    Pour plus d'informations sur le redémarrage d'instances EC2, consultez la documentation AWS - Redémarrer votre instance.

  2. Après avoir préparé le fichier de configuration, utilisez kubectl pour créer une expérience :

    kubectl apply -f awschaos-ec2-restart.yaml

Exemple de configuration pour detach-volume

  1. Écrivez la configuration de l'expérience dans le fichier 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'

    Selon cet exemple de configuration, Chaos Mesh injectera une panique detail-volume dans l'instance EC2 spécifiée, provoquant son détachement du volume de stockage indiqué dans un délai de 5 minutes.

    Pour plus d'informations sur le détachement de volumes Amazon EBS, consultez la documentation AWS - Détacher un volume Amazon EBS d'une instance Linux.

  2. Après avoir préparé le fichier de configuration, utilisez kubectl pour créer une expérience :

    kubectl apply -f awschaos-detach-volume.yaml

Description des champs

Le tableau suivant décrit les champs du fichier de configuration YAML.

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