Simuler les pannes Azure
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_idetclient_secret, consultez Confidential client application.
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
-
Ouvrez Chaos Dashboard, puis cliquez sur NOUVELLE EXPÉRIENCE pour créer une nouvelle expérience :

img -
Dans la zone Choisir une cible, sélectionnez PANNES AZURE et choisissez un comportement spécifique, comme ARRÊT DE VM.
-
Renseignez les informations de l'expérience, puis spécifiez sa portée et sa durée planifiée.
-
Soumettez les informations de l'expérience.
Créer des expériences avec un fichier YAML
Exemple de configuration vm-stop
-
É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-stopdans 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.
-
Une fois le fichier de configuration préparé, utilisez
kubectlpour créer l'expérience :kubectl apply -f azurechaos-vm-stop.yaml
Exemple de configuration vm-restart
-
É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-restartdans 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.
-
Une fois le fichier de configuration préparé, utilisez
kubectlpour créer une expérience :kubectl apply -f azurechaos-vm-restart.yaml
Exemple de configuration pour detach-volume
-
É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-detachdans 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.
-
Une fois le fichier de configuration préparé, utilisez
kubectlpour 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.
| 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 |