Share via


Crie um experimento de caos que usa a segmentação dinâmica para selecionar hosts

Você pode usar a segmentação dinâmica em um experimento de caos para escolher um conjunto de destinos contra os quais executar um experimento. Neste artigo, mostramos como direcionar dinamicamente conjuntos de dimensionamento de máquina virtual para desligar com base na zona de disponibilidade. A execução desta experiência pode ajudá-lo a testar o failover para uma instância dos Conjuntos de Escala de Máquina Virtual do Azure em uma região diferente se houver uma interrupção.

Você pode usar essas mesmas etapas para configurar e executar um experimento para qualquer falha que ofereça suporte à segmentação dinâmica. Atualmente, apenas o desligamento do conjunto de escala da máquina virtual oferece suporte à segmentação dinâmica.

Pré-requisitos

Abrir o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador indo para Bash. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e selecione Enter para executá-lo.

Se você quiser instalar e usar a CLI localmente, este tutorial requer a CLI do Azure versão 2.0.30 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Nota

Estas instruções usam um terminal Bash no Cloud Shell. Alguns comandos podem não funcionar como descrito se você estiver executando a CLI localmente ou em um terminal do PowerShell.

Habilite o Chaos Studio em sua instância de Conjuntos de Dimensionamento de Máquina Virtual

O Azure Chaos Studio não pode injetar falhas em um recurso, a menos que esse recurso tenha sido adicionado ao Chaos Studio primeiro. Para adicionar um recurso ao Chaos Studio, crie um destino e recursos no recurso.

Os Conjuntos de Dimensionamento de Máquina Virtual têm apenas um tipo de destino (Microsoft-VirtualMachineScaleSet) e um recurso (shutdown). Outros recursos podem ter até dois tipos de destino. Um tipo de destino é para falhas diretas de serviço. Outro tipo de destino é para falhas baseadas em agente. Outros recursos também podem ter muitos outros recursos.

  1. Crie um destino para o recurso do conjunto de dimensionamento da máquina virtual. Substitua $RESOURCE_ID pela ID do recurso do conjunto de dimensionamento de máquina virtual que você está adicionando:

    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. Crie os recursos no destino do conjunto de escala da máquina virtual. Substitua $RESOURCE_ID pela ID do recurso que você está adicionando. Especifique o VirtualMachineScaleSet destino e a Shutdown-2.0 capacidade.

    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\":{}}"
    

Agora você adicionou com êxito seu conjunto de escala de máquina virtual ao Chaos Studio.

Criar uma experimentação

Agora você pode criar seu experimento. Um experimento de caos define as ações que você deseja tomar em relação aos recursos de destino. As ações são organizadas e executadas em etapas sequenciais. O experimento do caos também define as ações que você deseja tomar contra ramificações, que são executadas em paralelo.

  1. Formule seu experimento JSON começando com o seguinte exemplo JSON de Conjuntos de Escala de Máquina Virtual Shutdown 2.0 . Modifique o JSON para corresponder ao experimento que você deseja executar usando a API Create Experiment e a biblioteca de falhas. No momento, a segmentação dinâmica só está disponível com a falha Virtual Machine Scale Sets Shutdown 2.0 e só pode filtrar zonas de disponibilidade.

    • Use o filter elemento para configurar a lista de zonas de disponibilidade do Azure pelas quais filtrar destinos. Se você não fornecer um filter, a falha desligará todas as instâncias no conjunto de dimensionamento da máquina virtual.
    • O experimento tem como alvo todas as instâncias de Conjuntos de Escala de Máquina Virtual nas zonas especificadas.
     {
        "location": "westus2",
        "identity": {
            "type": "SystemAssigned"
        },
        "properties": {
            "selectors": [
                {
                    "type": "List",
                    "id": "Selector1",
                    "targets": [
                        {
                            "id": "/subscriptions/581d4e64-0ad7-495b-bff4-347a5944a2e1/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. Crie o experimento usando a CLI do Azure. Substitua $SUBSCRIPTION_ID, $RESOURCE_GROUPe $EXPERIMENT_NAME pelas propriedades do seu experimento. Certifique-se de que guardou e carregou a sua experiência JSON. Atualize experiment.json com seu nome de arquivo 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 cria uma identidade gerenciada atribuída ao sistema correspondente. Observe a ID principal dessa identidade na resposta para a próxima etapa.

Dê permissão de experimento aos conjuntos de dimensionamento da máquina virtual

Quando você cria um experimento de caos, o Chaos Studio cria uma identidade gerenciada atribuída ao sistema que executa falhas contra seus recursos de destino. Essa identidade deve receber permissões apropriadas para o recurso de destino para que o experimento seja executado com êxito.

Dê ao experimento acesso aos seus recursos usando o comando a seguir. Substitua $EXPERIMENT_PRINCIPAL_ID pelo ID principal da etapa anterior. Substitua $RESOURCE_ID pelo ID do recurso de destino. Altere a função para a função interna apropriada para esse tipo de recurso. Execute este comando para cada recurso direcionado em seu experimento.

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

Execute a sua experiência

Agora você está pronto para executar seu experimento. Para ver o efeito, verifique o portal para ver se os alvos dos conjuntos de dimensionamento da máquina virtual estão desligados. Se eles forem desligados, verifique se os serviços em execução nos conjuntos de dimensionamento da máquina virtual ainda estão sendo executados conforme o esperado.

  1. Inicie o experimento usando a CLI do Azure. Substitua $SUBSCRIPTION_ID, $RESOURCE_GROUPe $EXPERIMENT_NAME pelas propriedades do seu 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. A resposta inclui uma URL de status que você pode usar para consultar o status do experimento à medida que o experimento é executado.

Próximos passos

Agora que você executou um experimento de desligamento de conjunto de escala de máquina virtual direcionado dinamicamente, está pronto para: