Aller au contenu principal
Version : 2.6.7

Simuler les pannes Azure

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

Présentation d'AzureChaos

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

  • VM Stop : arrête l'instance de machine virtuelle spécifiée.

  • VM Restart : redémarre l'instance de machine virtuelle spécifiée.

  • Disk Detach : détache le disque de données de l'instance de machine virtuelle spécifiée.

Fichier Secret

Pour faciliter la connexion au cluster Azure, vous pouvez créer un fichier Kubernetes Secret pour stocker à l'avance 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:
client_id: your-client-id
client_secret: your-client-secret
tenant_id: your-tenant-id
  • name correspond à l'objet Kubernetes Secret.

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

  • client_id stocke l'ID d'application (client) des inscriptions d'application Azure.

  • client_secret stocke la valeur secrète de l'application (client) des inscriptions d'application Azure.

  • tenant_id stocke l'ID de répertoire (tenant) des inscriptions d'application Azure. Pour client_id et client_secret, consultez Confidential client application.

note

Vérifiez que les inscriptions d'application dans le fichier Secret ont été ajoutées en tant que contributeur ou propriétaire dans le contrôle d'accès (IAM) de l'instance de machine virtuelle.

Créer des expériences avec Chaos Dashboard

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

    img
    img

  2. Dans la zone Choisir une cible, sélectionnez PANNES AZURE et choisissez un comportement spécifique, comme ARRÊT DE VM.

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

  1. Écrivez la configuration de l'expérience dans le fichier azurechaos-vm-stop.yaml, comme indiqué ci-dessous :

    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'

    Avec cet exemple de configuration, Chaos Mesh injectera la panne vm-stop dans l'instance de machine virtuelle spécifiée, rendant cette instance indisponible pendant 5 minutes.

    Pour plus d'informations sur l'arrêt des instances de machine virtuelle, reportez-vous à la documentation Azure - Démarrer ou arrêter une machine virtuelle.

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

    kubectl apply -f azurechaos-vm-stop.yaml

Exemple de configuration vm-restart

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

    Avec cet exemple de configuration, Chaos Mesh injectera le défaut vm-restart dans l'instance de machine virtuelle spécifiée, ce qui aura pour effet de redémarrer la machine virtuelle.

    Pour plus d'informations sur le redémarrage d'une machine virtuelle, consultez la documentation Azure - Redémarrer une machine virtuelle.

  2. Une fois le fichier de configuration préparé, utilisez kubectl pour créer une expérience :

    kubectl apply -f azurechaos-vm-restart.yaml

Exemple de configuration pour detach-volume

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

    Avec cet exemple de configuration, Chaos Mesh injectera le défaut disk-detach dans l'instance de machine virtuelle spécifiée, ce qui détachera la machine virtuelle du disque de données indiqué dans un délai de 5 minutes.

    Pour plus d'informations sur le détachement des disques de données Azure, consultez la documentation Azure - Détacher un disque de données.

  2. Une fois le fichier de configuration préparé, utilisez kubectl pour créer une expérience :

    kubectl apply -f azurechaos-disk-detach.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 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