Quickstart: Een virtuele-machineschaalset voor Linux maken met een ARM-sjabloon
Van toepassing op: ✔️ Uniforme schaalsets voor Linux-VM's ✔️
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 een Azure Resource Manager-sjabloon (ARM-sjabloon).
Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.
Met ARM-sjablonen kunt u groepen gerelateerde resources implementeren. In één sjabloon kunt u de virtuele-machineschaalset maken, toepassingen installeren en regels voor automatisch schalen configureren. Met behulp van variabelen en parameters kan deze sjabloon opnieuw worden gebruikt voor het bijwerken van bestaande schaalsets, of om extra schaalsets te maken. U kunt sjablonen implementeren via de Azure-portal, Azure CLI of Azure PowerShell of via CI/CD-pijplijnen (Continuous Integration/Continuous Delivery).
Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
De sjabloon controleren
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen.
Deze resources worden in de sjabloon gedefinieerd:
- Microsoft.Network/virtualNetworks
- Microsoft.Network/publicIPAddresses
- Microsoft.Network/loadBalancers
- Microsoft.Compute/virtualMachineScaleSets
- Microsoft.Insights/autoscaleSettings
Een schaalset definiëren
Als u een schaal wilt maken met behulp van een sjabloon, definieert u de juiste resources. De kernonderdelen van het resourcetype Virtuele-machineschaalset zijn:
Eigenschappen | Beschrijving van eigenschap | Voorbeeldwaarde van sjabloon |
---|---|---|
type | Azure-resourcetype dat moet worden gemaakt | Microsoft.Compute/virtualMachineScaleSets |
naam | De naam van de schaalset | myScaleSet |
locatie | De locatie voor het maken van de schaalset | VS - oost |
sku.name | De VM-grootte voor elke instantie van de schaalset | Standard_A1 |
sku.capacity | Het aantal VM-instanties dat in het begin moet worden gemaakt | 2 |
upgradePolicy.mode | Upgrademodus voor VM-instantie wanneer er wijzigingen optreden | Automatisch |
imageReference | Het platform of de aangepaste afbeelding die moet worden gebruikt voor de VM-instanties | Canonical Ubuntu-server 16.04-LTS |
osProfile.computerNamePrefix | Het naamvoorvoegsel voor elke VM-instantie | myvmss |
osProfile.adminUsername | De gebruikersnaam voor elke VM-instantie | azureuser |
osProfile.adminPassword | Het wachtwoord voor elke VM-instantie | P@ssw0rd! |
Als u een schaalsetsjabloon wilt aanpassen, kunt u de VM-grootte of initiële capaciteit wijzigen. Een andere mogelijkheid is om een ander platform of een aangepaste afbeelding te gebruiken.
Voorbeeldtoepassing toevoegen
Als u de schaalset wilt testen, installeert u een eenvoudige webtoepassing. Wanneer u een schaalset implementeert, kunnen VM-extensies worden gebruikt voor configuratie- en automatiseringstaken na de implementatie, zoals het installeren van een app. Scripts kunnen worden gedownload uit Azure Storage of GitHub, of worden geleverd in Azure Portal tijdens de uitvoering van extensies. Als u een extensie wilt toepassen op uw schaalset, voegt u de sectie extensionProfile toe aan het voorgaande resourcevoorbeeld. Met het extensieprofiel worden doorgaans de volgende eigenschappen gedefinieerd:
- Type extensie
- Uitgever van de extensie
- Versie van de extensie
- Locatie van de configuratie of installatiescripts
- Opdrachten om uit te voeren op de VM-instanties
De sjabloon maakt gebruik van de aangepaste scriptextensie om Bottle, een Python-webframework, en een eenvoudige HTTP-server te installeren.
Er zijn twee scripts gedefinieerd in fileUris - installserver.sh en workserver.py. Deze bestanden worden gedownload uit GitHub. Vervolgens wordt bash installserver.sh
uitgevoerd met commandToExecute om de app te installeren en configureren:
De sjabloon implementeren
U kunt de sjabloon implementeren door de volgende knop Implementeren op Azure te selecteren. Met deze knop wordt Azure Portal geopend, de volledige sjabloon geladen, en wordt u gevraagd om een aantal parameters op te geven, zoals een naam voor de schaalset, het aantal instanties en de beheerdersreferenties.
U kunt ook een Resource Manager-sjabloon implementeren met Azure CLI:
# Create a resource group
az group create --name myResourceGroup --location EastUS
# Deploy template into resource group
az deployment group create \
--resource-group myResourceGroup \
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json
Geef de waarden op voor de naam van de schaalset, het aantal instanties en de beheerdersreferenties voor de VM-instanties, wanneer u hierom wordt gevraagd. Het duurt enkele minuten voordat de schaalset en ondersteunende resources zijn gemaakt.
De implementatie valideren
U kunt de schaalset in actie zien door in een webbrowser naar de voorbeeldwebtoepassing te gaan. Vraag als volgt het openbare IP-adres van de load balancer op met az network public-ip list:
az network public-ip list \
--resource-group myResourceGroup \
--query [*].ipAddress -o tsv
Voer het openbare IP-adres van de load balancer in een webbrowser in. Gebruik hiervoor de notatie http://publicIpAddress:9000/do_work. Via de load balancer wordt verkeer naar een van uw VM-instanties gedistribueerd, zoals wordt weergegeven in het volgende voorbeeld:
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 Linux-schaalset gemaakt met behulp van een ARM-sjabloon en de aangepaste scriptextensie gebruikt om een standaard Python-webserver te installeren op de VM-exemplaren. Voor meer informatie gaat u verder met de zelfstudie voor het maken en beheren van Virtuele-machineschaalsets van Azure.