Quickstart: Een virtuele-machineschaalset maken met de Azure CLI

Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Uniform-schaalsets

Notitie

Het volgende artikel is bedoeld voor Uniform Virtual Machine Scale Sets. We raden u aan flexibele virtuele-machineschaalsets te gebruiken voor nieuwe workloads. Meer informatie over deze nieuwe indelingsmodus vindt u in het overzicht van flexibele virtuele-machineschaalsets.

Met een virtuele-machineschaalset kunt u een set virtuele machines voor automatisch schalen implementeren en beheren. U kunt het aantal VM’s in de schaalset handmatig schalen of regels voor automatisch schalen definiëren op basis van resourcegebruik zoals CPU, vraag naar geheugen, of netwerkverkeer. Een Azure load balancer verdeelt het verkeer vervolgens naar de VM-exemplaren in de schaalset. In deze quickstart maakt u een virtuele-machineschaalset en implementeert u een voorbeeldtoepassing met de Azure CLI.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Vereisten

  • Voor dit artikel is versie 2.0.29 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een schaalset maken

Belangrijk

Vanaf november 2023 worden VM-schaalsets die zijn gemaakt met PowerShell en Azure CLI standaard ingesteld op de flexibele indelingsmodus als er geen indelingsmodus is opgegeven. Voor meer informatie over deze wijziging en welke acties u moet ondernemen, gaat u naar Belangrijke wijziging voor VMSS PowerShell/CLI-klanten - Microsoft Community Hub

Voordat u een schaalset kunt maken, moet u eerst een resourcegroep maken met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:

az group create --name myResourceGroup --location eastus

Maak nu een virtuele-machineschaalset met az vmss create. In het volgende voorbeeld wordt een schaalset met de naam myScaleSet gemaakt die automatisch wordt bijgewerkt als er wijzigingen zijn. Daarnaast worden er SSH-sleutels gegenereerd als deze niet bestaan in ~/.ssh/id_rsa. Deze SSH-sleutels worden gebruikt als u zich wilt aanmelden bij de VM-exemplaren. Als u een bestaande set SSH-sleutels wilt gebruiken, gebruikt u de parameter --ssh-key-value en geeft u de locatie van uw sleutels op.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys

Het duurt enkele minuten om alle schaalsetresources en VM's te maken en te configureren.

Voorbeeldtoepassing implementeren

Als u de schaalset wilt testen, installeert u een eenvoudige webtoepassing. U kunt de aangepaste scriptextensie van Azure downloaden en een script uitvoeren waarmee een toepassing wordt geïnstalleerd in de VM-exemplaren. Deze uitbreiding is handig voor post-implementatieconfiguraties, software-installaties of andere configuratie-/beheertaken. Zie voor meer informatie het overzicht van de aangepaste scriptextensie.

Gebruik de aangepaste scriptextensie om een eenvoudige NGINX-webserver te installeren. Pas de aangepaste scriptextensie waarmee NGINX wordt geïnstalleerd als volgt toe met az vmss extension set:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],"commandToExecute":"./automate_nginx.sh"}'

Verkeer toestaan naar de toepassing

Op het moment dat de schaalset wordt gemaakt, wordt er ook automatisch een Azure load balancer geïmplementeerd. De load balancer verdeelt het verkeer naar de VM-exemplaren in de schaalset. Als u wilt dat verkeer de voorbeeldwebtoepassing kan bereiken, maakt u een load balancer-regel met behulp van az network lb rule create. In het volgende voorbeeld wordt een regel met de naam myLoadBalancerRuleWeb gemaakt:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

Uw schaalset testen

U kunt de schaalset in actie zien door in een webbrowser naar de voorbeeldwebtoepassing te gaan. Achterhaal het openbare IP-adres van de load balancer met az network public-ip show. In het volgende voorbeeld wordt het IP-adres voor myScaleSetLBPublicIP opgehaald, dat is gemaakt als onderdeel van de schaalset:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query '[ipAddress]' \
  --output tsv

Voer in een webbrowser het openbare IP-adres van de load balancer in. Via de load balancer wordt verkeer naar een van uw VM-instanties gedistribueerd, zoals wordt weergegeven in het volgende voorbeeld:

Default web page in NGINX

Resources opschonen

Gebruik az group delete als volgt om de resourcegroep, schaalset en alle gerelateerde resources te verwijderen wanneer u deze niet meer nodig hebt. De parameter --no-wait retourneert het besturingselement naar de prompt zonder te wachten totdat de bewerking is voltooid. De parameter --yes bevestigt dat u de resources wilt verwijderen, zonder een extra prompt om dit te doen.

az group delete --name myResourceGroup --yes --no-wait

Volgende stappen

In deze snelstartgids hebt u een standaardschaalset gemaakt en de aangepaste scriptextensie gebruikt om een standaard-NGINX-webserver te installeren in de VM-exemplaren. Voor meer informatie gaat u verder met de zelfstudie voor het maken en beheren van Virtuele-machineschaalsets van Azure.