Skapa ett kaosexperiment som använder dynamisk inriktning för att välja värdar
Du kan använda dynamisk inriktning i ett kaosexperiment för att välja en uppsättning mål att köra ett experiment mot. I den här artikeln visar vi hur du dynamiskt riktar in dig på vm-skalningsuppsättningar för att stängas av baserat på tillgänglighetszon. Om du kör det här experimentet kan du testa redundansväxling till en Azure Virtual Machine Scale Sets-instans i en annan region om det uppstår ett avbrott.
Du kan använda samma steg för att konfigurera och köra ett experiment för eventuella fel som stöder dynamisk inriktning. För närvarande stöder endast avstängning av vm-skalningsuppsättningar dynamisk inriktning.
Förutsättningar
- En Azure-prenumeration. Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
- En Azure Virtual Machine Scale Sets-instans.
Öppna Azure Cloud Shell
Azure Cloud Shell är ett kostnadsfritt interaktivt gränssnitt som du kan använda för att köra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.
Öppna Cloud Shell genom att välja Prova i det övre högra hörnet i ett kodblock. Du kan också öppna Cloud Shell på en separat webbläsarflik genom att gå till Bash. Välj Kopiera för att kopiera kodblocken, klistra in den i Cloud Shell och välj Retur för att köra den.
Om du vill installera och använda CLI lokalt kräver den här självstudien Azure CLI version 2.0.30 eller senare. Kör az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Kommentar
De här anvisningarna använder en Bash-terminal i Cloud Shell. Vissa kommandon kanske inte fungerar enligt beskrivningen om du kör CLI lokalt eller i en PowerShell-terminal.
Aktivera Chaos Studio på vm-skalningsuppsättningar-instansen
Azure Chaos Studio kan inte mata in fel mot en resurs om inte resursen lades till i Chaos Studio först. Om du vill lägga till en resurs i Chaos Studio skapar du ett mål och funktioner för resursen.
Vm-skalningsuppsättningar har bara en måltyp (Microsoft-VirtualMachineScaleSet
) och en funktion (shutdown
). Andra resurser kan ha upp till två måltyper. En måltyp är för tjänstdirigeringsfel. En annan måltyp är för agentbaserade fel. Andra resurser kan också ha många andra funktioner.
Skapa ett mål för vm-skalningsuppsättningsresursen . Ersätt
$RESOURCE_ID
med resurs-ID:t för vm-skalningsuppsättningen som du lägger till:az rest --method put --url "https://management.azure.com/$RESOURCE_ID/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachineScaleSet?api-version=2023-11-01" --body "{\"properties\":{}}"
Skapa funktionerna på vm-skalningsuppsättningsmålet. Ersätt
$RESOURCE_ID
med resurs-ID:t för den resurs som du lägger till. Ange måletVirtualMachineScaleSet
och funktionenShutdown-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\":{}}"
Nu har du lagt till vm-skalningsuppsättningen i Chaos Studio.
Skapa ett experiment
Nu kan du skapa experimentet. Ett kaosexperiment definierar de åtgärder som du vill vidta mot målresurser. Åtgärderna organiseras och körs i sekventiella steg. Kaosexperimentet definierar också de åtgärder som du vill vidta mot grenar som körs parallellt.
Formulera experimentets JSON med början i följande JSON-exempel för vm-skalningsuppsättningar avstängning 2.0 . Ändra JSON så att det motsvarar det experiment som du vill köra med hjälp av API:et Skapa experiment och felbiblioteket. För närvarande är dynamisk inriktning endast tillgänglig med felet Avstängning av vm-skalningsuppsättningar 2.0 och kan bara filtrera på tillgänglighetszoner.
- Använd -elementet
filter
för att konfigurera listan över Azure-tillgänglighetszoner för att filtrera mål efter. Om du inte anger någonfilter
stänger felet av alla instanser i vm-skalningsuppsättningen. - Experimentet riktar sig till alla vm-skalningsuppsättningar i de angivna zonerna.
{ "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" } ] } ] } ] } ] } }
- Använd -elementet
Skapa experimentet med hjälp av Azure CLI. Ersätt
$SUBSCRIPTION_ID
,$RESOURCE_GROUP
och$EXPERIMENT_NAME
med egenskaperna för experimentet. Kontrollera att du har sparat och laddat upp experimentet JSON. Uppdateraexperiment.json
med ditt JSON-filnamn.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
Varje experiment skapar en motsvarande systemtilldelad hanterad identitet. Observera huvud-ID:t för den här identiteten i svaret för nästa steg.
Ge experimentbehörighet till vm-skalningsuppsättningar
När du skapar ett kaosexperiment skapar Chaos Studio en systemtilldelad hanterad identitet som kör fel mot dina målresurser. Den här identiteten måste ges lämpliga behörigheter till målresursen för att experimentet ska kunna köras.
Ge experimentet åtkomst till dina resurser med hjälp av följande kommando. Ersätt $EXPERIMENT_PRINCIPAL_ID
med huvud-ID:t från föregående steg. Ersätt $RESOURCE_ID
med resurs-ID för målresursen. Ändra rollen till lämplig inbyggd roll för den resurstypen. Kör det här kommandot för varje resurs som är mål för experimentet.
az role assignment create --role "Virtual Machine Contributor" --assignee-object-id $EXPERIMENT_PRINCIPAL_ID --scope $RESOURCE_ID
Kör experimentet
Nu är du redo att köra experimentet. Om du vill se effekten kontrollerar du portalen för att se om målen för vm-skalningsuppsättningar stängs av. Om de stängs av kontrollerar du att tjänsterna som körs på vm-skalningsuppsättningarna fortfarande körs som förväntat.
Starta experimentet med hjälp av Azure CLI. Ersätt
$SUBSCRIPTION_ID
,$RESOURCE_GROUP
och$EXPERIMENT_NAME
med egenskaperna för experimentet.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
Svaret innehåller en status-URL som du kan använda för att fråga experimentstatus när experimentet körs.
Nästa steg
Nu när du har kört ett dynamiskt målinriktat avstängningsexperiment för vm-skalningsuppsättningar är du redo att: