Partage via


Exemples d’expériences

Cet article fournit des exemples de création d’expériences à partir de votre ligne de commande (CLI) et des exemples de paramètres Portail Azure pour différentes expériences. Vous pouvez copier et coller les commandes suivantes dans l’interface CLI ou Portail Azure, puis les modifier pour vos ressources spécifiques.

Voici un exemple d’emplacement dans lequel vous copiez et collez le paramètre Portail Azure dans :

Capture d’écran montrant Portail Azure emplacement des paramètres.

Pour enregistrer l’un des exemples « experiment.json » présentés ci-dessous, tapez simplement nano experiment.json dans votre Cloud Shell, copiez et collez l’un des exemples d’expérience ci-dessous, enregistrez-le (ctrl+o), quittez nano (ctrl+x) et exécutez la commande suivante :

az rest --method put --uri https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment?api-version=2024-01-01

Remarque

Il s’agit de la commande générique que vous utiliseriez pour créer n’importe quelle expérience à partir d’Azure CLI

Remarque

Vérifiez que votre expérience dispose de l’autorisation d’exploiter toutes les ressources de l’expérience. Ces exemples utilisent exclusivement l’identité managée affectée par le système, mais nous prenons également en charge l’identité managée affectée par l’utilisateur. Pour plus d’informations, consultez Autorisations d’expérience. Ces expériences ne s’exécutent PAS sans accorder l’autorisation d’exécution de l’expérience sur les ressources cibles.

Affichez toutes les attributions de rôles disponibles ici pour déterminer les autorisations requises pour vos ressources cibles.


Azure Kubernetes Service (AKS) - Délai réseau

Description de l’expérience Cette expérience retarde la communication réseau de 200 ms

{    

"identity": {
        "type": "SystemAssigned",
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_network_delay_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network latency",
                "branches": [
                    {
                        "name": "AKS network latency",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"delay\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"delay\":{\"latency\":\"200ms\",\"correlation\":\"100\",\"jitter\":\"0ms\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Échec du pod

Description de l’expérience Cette expérience supprime tous les pods du cluster pendant 10 minutes.

{    

"identity": {
        "type": "SystemAssigned",
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_pod_fail_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS pod kill",
                "branches": [
                    {
                        "name": "AKS pod kill",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"pod-failure\",\"mode\":\"all\",\"duration\":\"600s\",\"selector\":{\"namespaces\":[\"autoinstrumentationdemo\"]}}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Stress de la mémoire

Description de l’expérience Cette expérience souligne la mémoire de 4 pods AKS à 95 % pendant 10 minutes.

{    

"identity": {
        "type": "SystemAssigned",
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_memory_stress_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS memory stress",
                "branches": [
                    {
                        "name": "AKS memory stress",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT10M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"autoinstrumentationdemo\"]},\"stressors\":{\"memory\":{\"workers\":4,\"size\":\"95%\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Stress du processeur

Description de l’expérience Cette expérience souligne le processeur de quatre pods dans le cluster AKS à 95 %.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_memory_stress_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS CPU stress",
                "branches": [
                    {
                        "name": "AKS CPU stress",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT10M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"autoinstrumentationdemo\"]},\"stressors\":{\"cpu\":{\"workers\":4,\"load\":95}}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Émulation réseau

Description de l’expérience Cette expérience applique une émulation réseau à tous les pods de l’espace de noms spécifié, en ajoutant une latence de 100 ms et une perte de paquets de 0,1 % pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_network_emulation_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network emulation",
                "branches": [
                    {
                        "name": "AKS network emulation",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"netem\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"netem\":{\"latency\":\"100ms\",\"loss\":\"0.1\",\"correlation\":\"25\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Partition réseau

Description de l’expérience Cette expérience partitionne le réseau pour tous les pods de l’espace de noms spécifié, simulant un fractionnement réseau dans la direction « à » pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_partition_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network partition",
                "branches": [
                    {
                        "name": "AKS network partition",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"partition\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"partition\":{\"direction\":\"to\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Limitation de la bande passante réseau

Description de l’expérience Cette expérience limite la bande passante réseau pour tous les pods de l’espace de noms spécifié à 1 mo/s, avec des paramètres supplémentaires pour la limite, la mémoire tampon, le débit maximal et le burst pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_bandwidth_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network bandwidth",
                "branches": [
                    {
                        "name": "AKS network bandwidth",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"bandwidth\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"bandwidth\":{\"rate\":\"1mbps\",\"limit\":\"50mb\",\"buffer\":\"10kb\",\"peakrate\":\"1mbps\",\"minburst\":\"0\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Récommande de paquets réseau

Description de l’expérience Cette expérience réorganise les paquets réseau pour tous les pods de l’espace de noms spécifié, avec un écart de 5 paquets et un pourcentage de réorganisation de 25 % pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_reorder_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network reorder",
                "branches": [
                    {
                        "name": "AKS network reorder",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"reorder\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"reorder\":{\"gap\":\"5\",\"reorder\":\"25\",\"correlation\":\"50\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Perte de paquets réseau

Description de l’expérience Cette expérience simule une perte de paquets de 10 % pour tous les pods de l’espace de noms spécifié pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_loss_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network loss",
                "branches": [
                    {
                        "name": "AKS network loss",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"loss\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"loss\":{\"loss\":\"10\",\"correlation\":\"25\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Duplication de paquets réseau

Description de l’expérience Cette expérience doublons 50 % des paquets réseau pour tous les pods de l’espace de noms spécifié pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_duplicate_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network duplicate",
                "branches": [
                    {
                        "name": "AKS network duplicate",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"duplicate\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"duplicate\":{\"duplicate\":\"50\",\"correlation\":\"50\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Azure Kubernetes Service (AKS) - Corruption des paquets réseau

Description de l’expérience Cette expérience endommage 50 % des paquets réseau pour tous les pods de l’espace de noms spécifié pendant 5 minutes.

{
    "identity": {
        "type": "SystemAssigned"
    },
    "tags": {},
    "location": "westus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/aks_corrupt_experiment/providers/Microsoft.ContainerService/managedClusters/nikhilAKScluster/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "Selector1"
            }
        ],
        "steps": [
            {
                "name": "AKS network corrupt",
                "branches": [
                    {
                        "name": "AKS network corrupt",
                        "actions": [
                            {
                                "type": "continuous",
                                "selectorId": "Selector1",
                                "duration": "PT5M",
                                "parameters": [
                                    {
                                        "key": "jsonSpec",
                                        "value": "{\"action\":\"corrupt\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"corrupt\":{\"corrupt\":\"50\",\"correlation\":\"50\"}}"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Test de charge Azure - Démarrer/arrêter le test de charge (avec retard)

Description de l’expérience Cette expérience démarre un test de charge Azure existant, puis attend 10 minutes à l’aide de l’action « retard » avant d’arrêter le test de charge.

{    

"identity": {
        "type": "SystemAssigned",
    },
    "tags": {},
    "location": "eastus",
    "properties": {
        "selectors": [
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/nikhilLoadTest/providers/microsoft.loadtestservice/loadtests/Nikhil-Demo-Load-Test/providers/Microsoft.Chaos/targets/microsoft-azureloadtest",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "66e5124c-12db-4f7e-8549-7299c5828bff"
            },
            {
                "type": "List",
                "targets": [
                    {
                        "id": "/subscriptions/123hdq8-123d-89d7-5670-123123/resourceGroups/builddemo/providers/microsoft.loadtestservice/loadtests/Nikhil-Demo-Load-Test/providers/Microsoft.Chaos/targets/microsoft-azureloadtest",
                        "type": "ChaosTarget"
                    }
                ],
                "id": "9dc23b43-81ca-42c3-beae-3fe8ac80c30b"
            }
        ],
        "steps": [
            {
                "name": "Step 1 - Start Load Test",
                "branches": [
                    {
                        "name": "Branch 1",
                        "actions": [
                            {
                                "selectorId": "66e5124c-12db-4f7e-8549-7299c5828bff",
                                "type": "discrete",
                                "parameters": [
                                    {
                                        "key": "testId",
                                        "value": "ae24e6z9-d88d-4752-8552-c73e8a9adebc"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureLoadTest:start/1.0"
                            },
                            {
                                "type": "delay",
                                "duration": "PT10M",
                                "name": "urn:csci:microsoft:chaosStudio:TimedDelay/1.0"
                            }
                        ]
                    }
                ]
            },
            {
                "name": "Step 2 - End Load test",
                "branches": [
                    {
                        "name": "Branch 1",
                        "actions": [
                            {
                                "selectorId": "9dc23b43-81ca-42c3-beae-3fe8ac80c30b",
                                "type": "discrete",
                                "parameters": [
                                    {
                                        "key": "testId",
                                        "value": "ae24e6z9-d88d-4752-8552-c73e8a9adebc"
                                    }
                                ],
                                "name": "urn:csci:microsoft:azureLoadTest:stop/1.0"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
}