Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du skapar en skalningsuppsättning, definierar du antalet virtuella datorinstanser som du vill köra. När efterfrågan på din applikation ändras kan du automatiskt öka eller minska antalet VM-instanser. Möjligheten att skala automatiskt låter dig hålla dig uppdaterad med kundernas behov eller svara på ändringar i programprestandan under hela livscykeln för din app. I den här handledningen lär du dig att:
- Använd automatisk skalning med en skalningsuppsättning
- Skapa och använd regler för automatisk skalning
- Simulera CPU-belastning för att utlösa regler för autoskalning
- Övervaka autoskalningsåtgärder när efterfrågan ändras
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här självstudien kräver version 2.0.32 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en skalningsgrupp
Skapa en resursgrupp med az group create.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
Skapa nu en VM-skalningsuppsättning med az vmss create. I följande exempel skapas en skalningsuppsättning med instansantalet 2, genererar SSH-nycklar om de inte finns och använder en giltig avbildning Ubuntu2204.
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
Definiera en autoskalningsprofil
Om du vill aktivera autoskalning för en skalningsuppsättning börjar du med att definiera en autoskalningsprofil. Den här profilen definierar skalningsuppsättningens förvalda, lägsta och högsta kapacitet. Med hjälp av dessa restriktioner kan du begränsa kostnaderna genom att inte skapa VM-instanser kontinuerligt, samtidigt som du kan balansera godtagbara prestanda med minsta antal instanser som bevaras vid en nedskalning. Skapa en autoskalningsprofil med az monitor autoscale create. I följande exempel anges standard- och minimikapaciteten för 2 VM-instanser och högst 10:
az monitor autoscale create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--resource $MY_SCALE_SET_NAME \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 2
Skapa en regel för att automatiskt skala ut
Om dina programkrav ökar, ökar även belastningen på de virtuella datorinstanserna i din skalningsuppsättning. Om den här ökade belastningen är konsekvent, i stället för bara en kort efterfrågan, kan du konfigurera regler för automatisk skalning för att öka antalet vm-instanser. När dessa instanser skapas och programmet distribueras börjar skalningsuppsättningen distribuera trafik till dem via lastbalanseraren. Du styr vilka mått som ska övervakas, hur länge belastningen måste uppfylla ett visst tröskelvärde och hur många VM-instanser som ska läggas till.
Skapa en regel med az monitor autoscale rule create som ökar antalet virtuella datorinstanser när den genomsnittliga CPU-belastningen är större än 70% under en 5-minutersperiod. När regeln utlöses, ökar antalet virtuella datorinstanser med tre.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Skapa en regel för att automatiskt skala in
När programefterfrågan minskar minskar belastningen på de virtuella datorinstanserna. Om den minskade belastningen kvarstår under en viss tidsperiod kan du konfigurera regler för automatisk skalning för att minska antalet VM-instanser i skalningsuppsättningen. Den här inskalningsåtgärden bidrar till att minska kostnaderna genom att endast köra det nödvändiga antalet instanser som krävs för att möta den aktuella efterfrågan.
Skapa en annan regel med az monitor autoscale rule create som minskar antalet virtuella datorinstanser när den genomsnittliga CPU-belastningen sjunker under 30% under en 5-minuters period. I följande exempel skalas antalet virtuella datorinstanser efter en.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Simulera CPU-belastning på skalningsuppsättning
Om du vill testa reglerna för autoskalning måste du simulera kontinuerlig CPU-belastning på de virtuella datorinstanserna i skalningsuppsättningen. I den här minimalistiska metoden undviker vi att installera ytterligare paket med hjälp av det inbyggda yes kommandot för att generera CPU-belastning. Följande kommando startar tre bakgrundsprocesser som kontinuerligt matar ut data till /dev/null i 60 sekunder och sedan avslutar dem.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Det här kommandot simulerar CPU-belastning utan att införa paketinstallationsfel.
Övervaka de aktiva reglerna för automatisk skalning
Om du vill övervaka antalet vm-instanser i skalningsuppsättningen watch använder du kommandot . Det kan ta upp till 5 minuter innan reglerna för autoskalning påbörjar utskalningsprocessen som svar på CPU-belastningen. Men när det händer kan du avsluta bevakningsläget med CTRL + C-tangenterna.
Då ökar skalningsuppsättningen automatiskt antalet virtuella datorinstanser för att möta efterfrågan. Följande kommando visar listan över VM-instanser i skalningsuppsättningen:
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
När CPU-tröskelvärdet har uppnåtts, ökar reglerna för automatisk skalning antalet virtuella datorinstanser i skalningsuppsättningen. Utdata visar listan över virtuella datorinstanser när nya skapas.
InstanceId LatestModelApplied Location Name ProvisioningState ResourceGroup VmId
------------ -------------------- ---------- --------------- ------------------- -------------------- ------------------------------------
1 True WestUS2 myScaleSet_1 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 True WestUS2 myScaleSet_2 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 True WestUS2 myScaleSet_4 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5 True WestUS2 myScaleSet_5 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 True WestUS2 myScaleSet_6 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
När CPU-belastningen har minskat återgår den genomsnittliga CPU-belastningen till det normala. Efter 5 minuter till, skalar reglerna för automatisk skalning in antalet virtuella datorinstanser. Skalningsåtgärder tar bort VM-instanser med de högsta ID:n först. När en skalningsuppsättning använder tillgänglighetsuppsättningar eller tillgänglighetszoner fördelas inskalningsåtgärder jämnt över de virtuella datorinstanserna. Följande exempelutdata visar en VM-instans som tas bort när skalningsuppsättningen minskar genom autoskalning:
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rensa resurser
Om du vill ta bort din skalningsuppsättning och associerade resurser tar du bort resursgruppen manuellt med den metod du föredrar.
Nästa steg
I den här självstudien läste du om hur du automatiskt kan skala in eller ut en skalningsuppsättning med Azure CLI:
- Använd automatisk skalning med en skalningsuppsättning
- Skapa och använd regler för automatisk skalning
- Simulera CPU-belastning för att utlösa regler för autoskalning
- Övervaka autoskalningsåtgärder när efterfrågan ändras