Simulate Azure Faults

    AzureChaos can help you simulate fault scenarios on the specified Azure instance. Currently, AzureChaos supports the following fault types:

    • VM Stop: stops the specified VM instance.
    • VM Restart: restarts the specified VM instance.
    • Disk Detach: uninstalls the data disk from the specified VM instance.

    To easily connect to the Azure cluster, you can create a Kubernetes Secret file to store the authentication information in advance.

    A Secret file sample is as follows:

    • name means the Kubernetes Secret object.
    • namespace means the namespace of the Kubernetes Secret object.
    • client_id stores Application (client) ID of Azure App registrations.
    • client_secret stores Application (client) secret value of Azure App registrations.
    • tenant_id stores Directory (tenant) ID of Azure App registrations. For client_id and client_secret, please refer to Confidential client application.

    note

    Make sure that App registrations in the Secret file has been added as a contributor or owner to the access control (IAM) of the VM instance.

    1. Open Chaos Dashboard, and click NEW EXPERIMENT on the page to create a new experiment:

      img

    2. Fill out the experiment information, and specify the experiment scope and the scheduled experiment duration.

    1. Write the experiment configuration to the azurechaos-vm-stop.yaml file, as shown below:

      1. apiVersion: chaos-mesh.org/v1alpha1
      2. kind: AzureChaos
      3. metadata:
      4. name: vm-stop-example
      5. namespace: chaos-mesh
      6. spec:
      7. action: vm-stop
      8. secretName: 'cloud-key-secret'
      9. subscriptionID: 'your-subscription-id'
      10. resourceGroupName: 'your-resource-group-name'
      11. duration: '5m'

      Based on this configuration example, Chaos Mesh will inject the vm-stop fault into the specified VM instance so that the VM instance will be unavailable in 5 minutes.

      For more information about stopping VM instances, refer to Azure documentation - Start or stop a VM.

    2. After the configuration file is prepared, use kubectl to create an experiment:

    1. Write the experiment configuration to the azurechaos-vm-restart.yaml file:

      1. apiVersion: chaos-mesh.org/v1alpha1
      2. metadata:
      3. name: vm-restart-example
      4. namespace: chaos-mesh
      5. action: vm-restart
      6. secretName: 'cloud-key-secret'
      7. subscriptionID: 'your-subscription-id'
      8. resourceGroupName: 'your-resource-group-name'

      For more information about restarting the VM instance, refer to the Azure documentation - Restart a VM.

    2. After the configuration file is prepared, use kubectl to create an experiment:

    1. Write the experiment configuration to the azurechaos-disk-detach.yaml file:

      1. apiVersion: chaos-mesh.org/v1alpha1
      2. kind: AzureChaos
      3. metadata:
      4. name: disk-detach-example
      5. namespace: chaos-mesh
      6. spec:
      7. action: disk-detach
      8. secretName: 'cloud-key-secret'
      9. subscriptionID: 'your-subscription-id'
      10. resourceGroupName: 'your-resource-group-name'
      11. lun: 'your-disk-lun'
      12. diskName: 'your-disk-name'
      13. duration: '5m'

      Based on this configuration example, Chaos Mesh will inject a disk-detach fault into the specified VM instance so that the VM instance is detached from the specified data disk within 5 minutes.

      For more information about detaching Azure date disk, refer to the Azure documentation - Detach a data disk.

    The following table shows the fields in the YAML configuration file.