Compartir a través de


Experimentos de ejemplo

En este artículo se proporcionan ejemplos para crear experimentos desde la línea de comandos (CLI) y ejemplos de parámetros de Azure Portal para varios experimentos. Puede copiar y pegar los siguientes comandos en la CLI o Azure Portal y editarlos para los recursos específicos.

Este es un ejemplo de dónde copiaría y pegaría el parámetro de Azure Portal en:

Captura de pantalla que muestra la ubicación del parámetro de Azure Portal.

Para guardar uno de los ejemplos de "experiment.json" que se muestran a continuación, simplemente escriba nano experiment.json en Cloud Shell, copie y pegue cualquiera de los ejemplos de experimentos siguientes, guárdelo (ctrl+o), salga de nano (ctrl+x) y ejecute el siguiente comando:

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

Nota:

Este es el comando genérico que usaría para crear cualquier experimento desde la CLI de Azure.

Nota:

Asegúrese de que el experimento tiene permiso para operar en todos los recursos del experimento. En estos ejemplos se usa exclusivamente la identidad administrada asignada por el sistema, pero también se admite la identidad administrada asignada por el usuario. Para obtener más información, consulte Permisos de experimento. Estos experimentos NO se ejecutarán sin conceder el permiso del experimento para ejecutarse en los recursos de destino.

Vea todas las asignaciones de roles disponibles aquí para determinar qué permisos son necesarios para los recursos de destino.


Azure Kubernetes Service (AKS): retraso de red

Descripción del experimento Este experimento retrasa la comunicación de red en 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): error de pod

Descripción del experimento Este experimento quita todos los pods del clúster durante 10 minutos.

{    

"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): estrés en la memoria

Descripción del experimento Este experimento subraya la memoria de 4 pods de AKS al 95 % durante 10 minutos.

{    

"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): estrés de CPU

Descripción del experimento Este experimento subraya la CPU de cuatro pods del clúster de AKS al 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): emulación de red

Descripción del experimento Este experimento aplica una emulación de red a todos los pods del espacio de nombres especificado, agregando una latencia de 100 ms y una pérdida de paquetes del 0,1 % durante 5 minutos.

{
    "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): partición de red

Descripción del experimento Este experimento particiona la red de todos los pods del espacio de nombres especificado, simulando una división de red en la dirección "to" durante 5 minutos.

{
    "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): limitación del ancho de banda de red

Descripción del experimento Este experimento limita el ancho de banda de red de todos los pods del espacio de nombres especificado a 1 mbps, con parámetros adicionales para límite, búfer, velocidad máxima y ráfaga durante 5 minutos.

{
    "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): reordenación de paquetes de red

Descripción del experimento Este experimento reordena los paquetes de red de todos los pods del espacio de nombres especificado, con un intervalo de 5 paquetes y un porcentaje de reordenación del 25 % durante 5 minutos.

{
    "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): pérdida de paquetes de red

Descripción del experimento Este experimento simula una pérdida de paquetes del 10 % para todos los pods del espacio de nombres especificado durante 5 minutos.

{
    "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): duplicación de paquetes de red

Descripción del experimento Este experimento duplica el 50 % de los paquetes de red para todos los pods del espacio de nombres especificado durante 5 minutos.

{
    "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): daños en los paquetes de red

Descripción del experimento Este experimento daña el 50 % de los paquetes de red de todos los pods del espacio de nombres especificado durante 5 minutos.

{
    "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"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Prueba de carga de Azure: iniciar o detener la prueba de carga (con retraso)

Descripción del experimento Este experimento inicia una prueba de carga de Azure existente y, a continuación, espera durante 10 minutos mediante la acción "retraso" antes de detener la prueba de carga.

{    

"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"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
}