Compartir a través de


Cree un experimento de caos que use la selección dinámica de destinos para elegir los hosts

En un experimento de caos, puede usar la selección dinámica de destinos para elegir un conjunto de destinos en los que realizar el experimento. En este artículo, le mostramos cómo seleccionar dinámicamente conjuntos de escalado de máquinas virtuales para que se apaguen en función de la zona de disponibilidad. La ejecución de este experimento puede ayudarle a probar la conmutación por error a una instancia de Microsoft Azure Virtual Machine Scale Sets de otra región si se produce una interrupción.

Estos mismos pasos se pueden usar para configurar y ejecutar un experimento para cualquier error que admita la selección dinámica de destinos. Actualmente, solo el apagado del conjunto de escalado de máquinas virtuales admite la selección dinámica de destinos.

Requisitos previos

Apertura de Azure Cloud Shell

Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.

Para abrir Cloud Shell, seleccione Probarlo en la esquina superior derecha de un bloque de código. También puede abrir Cloud Shell en una pestaña independiente desde Bash. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, seleccione Entrar para ejecutarlos.

Si quiere instalar y usar la CLI en un entorno local, para este tutorial se requiere la versión 2.0.30 de la CLI de Azure o una versión posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Nota:

Estas instrucciones usan un terminal de Bash en Azure Cloud Shell. Es posible que algunos comandos no funcionen tal como se describe si la CLI se ejecuta localmente o en un terminal de PowerShell.

Habilitación de Chaos Studio en la instancia de Virtual Machine Scale Sets

Azure Chaos Studio no puede insertar errores en un recurso a menos que ese recurso se haya agregado primero a Chaos Studio. Para agregar un recurso a Chaos Studio, cree un destino y funcionalidades en el recurso.

Virtual Machine Scale Sets solo tiene un tipo de destino (Microsoft-VirtualMachineScaleSet) y una funcionalidad (shutdown). Otros recursos pueden tener hasta dos tipos de destino. Un tipo de destino es para errores directos del servicio. Otro tipo de destino es para errores basados en agente. Otros recursos también pueden tener muchas otras funcionalidades.

  1. Cree un destino para el recurso del conjunto de escalado de máquinas virtuales. Reemplace $RESOURCE_ID por el id. de recurso del conjunto de escalado de máquinas virtuales que va a agregar:

    az rest --method put --url "https://management.azure.com/$RESOURCE_ID/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet?api-version=2023-11-01" --body "{\"properties\":{}}"
    
  2. Cree las funcionalidades en el destino del conjunto de escalado de máquinas virtuales. Reemplace $RESOURCE_ID por el id. de recurso del recurso que va a agregar. Especifique el destino VirtualMachineScaleSet y la funcionalidad Shutdown-2.0.

    az rest --method put --url "https://management.azure.com/$RESOURCE_ID/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet/capabilities/Shutdown-2.0?api-version=2023-11-01" --body "{\"properties\":{}}"
    

Con esto habrá agregado correctamente el conjunto de escalado de máquinas virtuales a Chaos Studio.

Creación de un experimento

Ahora puede crear el experimento. Un experimento de caos define las acciones que se desean realizar en los recursos de destino. Las acciones se organizan y ejecutan en pasos secuenciales. El experimento de caos también define las acciones que se desean realizar en las ramas, que se ejecutan en paralelo.

  1. Formule el JSON del experimento a partir del siguiente ejemplo de JSON Virtual Machine Scale Sets Shutdown 2.0. Modifique el archivo JSON para que se corresponda con el experimento que desea ejecutar mediante la API Crear experimento y la biblioteca de errores En este momento, la selección dinámica de destinos solo está disponible con el error Virtual Machine Scale Sets Shutdown 2.0 y solo se puede filtrar por zonas de disponibilidad.

    • Use el elemento filter para configurar la lista de zonas de disponibilidad de Azure por las que filtrar los destinos. Si no se especifica ningún filter, este error cierra todas las instancias del conjunto de escalado de máquinas virtuales.
    • El experimento tiene como destino todas las instancias de Virtual Machine Scale Sets de las zonas especificadas.
     {
        "location": "westus2",
        "identity": {
            "type": "SystemAssigned"
        },
        "properties": {
            "selectors": [
                {
                    "type": "List",
                    "id": "Selector1",
                    "targets": [
                        {
                            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-demo/providers/Microsoft.Compute/virtualMachineScaleSets/vmss-demo/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet",
                            "type": "ChaosTarget"
                        }
                    ],
                    "filter": {
                        "type": "Simple",
                        "parameters": {
                            "zones": [
                                "1"
                            ]
                        }
                    }
                }
            ],
            "steps": [
                {
                    "name": "Step1",
                    "branches": [
                        {
                            "name": "Branch1",
                            "actions": [
                                {
                                    "name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
                                    "type": "continuous",
                                    "selectorId": "Selector1",
                                    "duration": "PT2M",
                                    "parameters": [
                                        {
                                            "key": "abruptShutdown",
                                            "value": "false"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    }
    
  2. Cree el experimento mediante la CLI de Azure. Reemplace $SUBSCRIPTION_ID, $RESOURCE_GROUP y $EXPERIMENT_NAME por las propiedades del experimento. Asegúrese de haber guardado y cargado el JSON del experimento. Actualice experiment.json con el nombre del archivo JSON.

    az rest --method put --uri https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Chaos/experiments/$EXPERIMENT_NAME?api-version=2023-11-01 --body @experiment.json
    

    Cada experimento crea una identidad administrada asignada por el sistema correspondiente. Observe el id. principal de esta identidad en la respuesta del paso siguiente.

Concesión de permiso de experimento a los conjuntos de escalado de máquinas virtuales

Al crear un experimento de caos, Chaos Studio crea una identidad administrada asignada por el sistema que ejecuta errores en los recursos de destino. Esta identidad debe tener los permisos adecuados en el recurso de destino para que el experimento se ejecute correctamente.

Proporcione al experimento acceso a los recursos mediante el siguiente comando. Reemplace $EXPERIMENT_PRINCIPAL_ID por el id. principal del paso anterior. Reemplace $RESOURCE_ID por el id. de recurso del recurso de destino. Cambie el rol al rol integrado adecuado para ese tipo de recurso. Ejecute este comando para cada recurso de destino en el experimento.

az role assignment create --role "Virtual Machine Contributor" --assignee-object-id $EXPERIMENT_PRINCIPAL_ID --scope $RESOURCE_ID

Ejecutar el experimento

Ahora ya puede ejecutar el experimento. Para ver el efecto, compruebe el portal para ver si los destinos de los conjuntos de escalado de máquinas virtuales están apagados. Si están apagados, compruebe si los servicios que se ejecutan en los conjuntos de escalado de máquinas virtuales siguen funcionando según lo previsto.

  1. Inicie el experimento mediante la CLI de Azure. Reemplace $SUBSCRIPTION_ID, $RESOURCE_GROUP y $EXPERIMENT_NAME por las propiedades del experimento.

    az rest --method post --uri https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Chaos/experiments/$EXPERIMENT_NAME/start?api-version=2023-11-01
    
  2. La respuesta incluye una dirección URL de estado que puede usar para consultar el estado del experimento mientras se ejecuta.

Pasos siguientes

Ahora que ha ejecutado un experimento de apagado de un conjunto de escalado de máquinas virtuales mediante la selección dinámica de destinos, puede hacer lo siguiente: