Sdílet prostřednictvím


Vytvoření experimentu s chaosem, který používá dynamické cílení k výběru hostitelů

Dynamické cílení v experimentu chaosu můžete použít k výběru sady cílů pro spuštění experimentu. V tomto článku vám ukážeme, jak dynamicky cílit škálovací sady virtuálních počítačů na základě zóny dostupnosti. Spuštěním tohoto experimentu můžete otestovat převzetí služeb při selhání instance služby Azure Virtual Machine Scale Sets v jiné oblasti, pokud dojde k výpadku.

Stejný postup můžete použít k nastavení a spuštění experimentu pro všechny chyby, které podporují dynamické cílení. V současné době podporuje dynamické cílení pouze vypnutí škálovací sady virtuálních počítačů.

Požadavky

Otevření Azure Cloud Shellu

Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít ke spuštění kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.

Pokud chcete otevřít Cloud Shell, vyberte Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete otevřít také na samostatné kartě prohlížeče tak, že přejdete na Bash. Výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.

Pokud chcete nainstalovat a používat rozhraní příkazového řádku místně, tento kurz vyžaduje Azure CLI verze 2.0.30 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Poznámka:

Tyto pokyny používají terminál Bash v Cloud Shellu. Některé příkazy nemusí fungovat, jak je popsáno, pokud používáte rozhraní příkazového řádku místně nebo v terminálu PowerShellu.

Povolení nástroje Chaos Studio v instanci škálovací sady virtuálních počítačů

Azure Chaos Studio nemůže vkládat chyby proti prostředku, pokud tento prostředek nebyl poprvé přidán do nástroje Chaos Studio. Pokud chcete přidat prostředek do nástroje Chaos Studio, vytvořte cíl a možnosti prostředku.

Škálovací sady virtuálních počítačů mají pouze jeden cílový typ (Microsoft-VirtualMachineScaleSet) a jednu schopnost (shutdown). Jiné prostředky můžou mít až dva cílové typy. Jedním cílovým typem jsou chyby přímé služby. Dalším cílovým typem jsou chyby založené na agentech. Další prostředky můžou mít také mnoho dalších funkcí.

  1. Vytvořte cíl pro prostředek škálovací sady virtuálních počítačů. Nahraďte $RESOURCE_ID ID prostředku škálovací sady virtuálních počítačů, kterou přidáváte:

    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. Vytvořte možnosti v cíli škálovací sady virtuálních počítačů. Nahraďte $RESOURCE_ID ID prostředku, který přidáváte. VirtualMachineScaleSet Zadejte cíl a Shutdown-2.0 schopnost.

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

Teď jste úspěšně přidali škálovací sadu virtuálních počítačů do aplikace Chaos Studio.

Vytvoření experimentu

Teď můžete experiment vytvořit. Experiment chaosu definuje akce, které chcete provést proti cílovým prostředkům. Akce jsou uspořádány a spouštěny v sekvenčních krocích. Experiment chaosu také definuje akce, které chcete provést proti větvím, které běží paralelně.

  1. Zformulujte soubor JSON experimentu počínaje následující ukázkou JSON pro vypnutí škálovacích sad virtuálních počítačů 2.0 . Upravte json tak, aby odpovídal experimentu, který chcete spustit, pomocí rozhraní API pro vytvoření experimentu a knihovny chyb. Dynamické cílení je v tuto chvíli k dispozici pouze s chybou Vypnutí škálovacích sad virtuálních počítačů 2.0 a může filtrovat pouze zóny dostupnosti.

    • Pomocí elementu filter nakonfigurujte seznam zón dostupnosti Azure pro filtrování cílů podle. Pokud ho nezadáte filter, chyba vypne všechny instance ve škálovací sadě virtuálních počítačů.
    • Experiment cílí na všechny instance škálovacích sad virtuálních počítačů v zadaných zónách.
     {
        "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. Vytvořte experiment pomocí Azure CLI. Nahraďte $SUBSCRIPTION_IDa $RESOURCE_GROUP$EXPERIMENT_NAME vlastnosti experimentu. Ujistěte se, že jste uložili a nahráli json experimentu. Aktualizujte experiment.json název souboru 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
    

    Každý experiment vytvoří odpovídající spravovanou identitu přiřazenou systémem. Poznamenejte si ID objektu zabezpečení pro tuto identitu v odpovědi pro další krok.

Udělení oprávnění experimentu škálovacím sadám virtuálních počítačů

Když vytvoříte experiment chaosu, Chaos Studio vytvoří spravovanou identitu přiřazenou systémem, která provádí chyby proti cílovým prostředkům. Tato identita musí mít příslušná oprávnění k cílovému prostředku, aby se experiment úspěšně spustil.

Pomocí následujícího příkazu dejte experimentu přístup k vašim prostředkům. Nahraďte $EXPERIMENT_PRINCIPAL_ID ID objektu zabezpečení z předchozího kroku. Nahraďte $RESOURCE_ID ID prostředku cílového prostředku. Změňte roli na odpovídající předdefinované role pro tento typ prostředku. Spusťte tento příkaz pro každý prostředek cílený v experimentu.

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

Spuštění experimentu

Teď jste připraveni spustit experiment. Pokud se chcete podívat na efekt, zkontrolujte na portálu, jestli jsou cíle škálovacích sad virtuálních počítačů vypnuté. Pokud jsou vypnuté, zkontrolujte, jestli služby spuštěné ve škálovacích sadách virtuálních počítačů stále běží podle očekávání.

  1. Spusťte experiment pomocí Azure CLI. Nahraďte $SUBSCRIPTION_IDa $RESOURCE_GROUP$EXPERIMENT_NAME vlastnosti experimentu.

    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. Odpověď obsahuje adresu URL stavu, kterou můžete použít k dotazování stavu experimentu při spuštění experimentu.

Další kroky

Teď, když jste spustili experiment vypnutí dynamicky cílené škálovací sady virtuálních počítačů, jste připraveni: