Zelfstudie: Een virtuele-machineschaalset maken en beheren met Azure CLI

Van toepassing op: ✔️ Linux-VM's ✔️ Windows VM's ✔️ Uniforme schaalsets

Met een virtuele-machineschaalset kunt u een reeks identieke virtuele machines met automatisch schalen implementeren en beheren. Gedurende de levenscyclus van een schaalset voor virtuele machines moet u mogelijk een of meer beheertaken uitvoeren. In deze zelfstudie leert u het volgende:

  • Een schaalset voor virtuele machines maken en hiermee verbinding maken
  • VM-installatiekopieën selecteren en gebruiken
  • Specifieke grootten van VM-exemplaren weergeven en gebruiken
  • Een schaalset handmatig schalen
  • Algemene beheertaken voor schaalsets uitvoeren

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

Vereisten

  • Gebruik de bash-omgeving in Azure Cloud shell.

    Cloud Shell starten in een nieuw venster

  • Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren.

    • Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij de Azure CLI voor aanvullende aanmeldingsopties.

    • Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.

    • Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.

  • 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 resourcegroep maken

Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. U kunt pas een schaalset voor virtuele machines maken als er al een resourcegroep is gemaakt. Een resourcegroep maken met de opdracht az group create. In dit voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de regio eastus.

az group create --name myResourceGroup --location eastus

De naam van de resourcegroep moet worden opgegeven als u ergens in deze zelfstudie een schaalset maakt of wijzigt.

Een schaalset maken

U maakt een schaalset voor virtuele machines met az vmss create. Het volgende voorbeeld wordt een schaalset gemaakt met de naam myScaleSet, en worden SSH-sleutels gegenereerd als deze nog niet bestaan:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys

Het duurt enkele minuten om alle schaalsetresources en VM-exemplaren te maken en te configureren. Om het verkeer te distribueren naar de verschillende VM-exemplaren, wordt er ook een load balancer gemaakt.

De VM-exemplaren in een schaalset bekijken

Als u een lijst met VM-exemplaren wilt weergeven die worden uitgevoerd in een schaalset, gebruikt u az vmss list-instances als volgt:

az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

In de volgende voorbeelduitvoer ziet u dat de schaalset twee VM-exemplaren bevat:

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            MYRESOURCEGROUP  c059be0c-37a2-497a-b111-41272641533c
           3  True                  eastus      myScaleSet_3  Succeeded            MYRESOURCEGROUP  ec19e7a7-a4cd-4b24-9670-438f4876c1f9

De eerste kolom in de uitvoer bevat een InstanceId. Als u extra informatie wilt weergeven over een bepaald VM-exemplaar, voegt u de parameter --instance-id toe aan az vmss get-instance-view. In het volgende voorbeeld wordt informatie opgevraagd over het VM-exemplaar 1:

az vmss get-instance-view \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --instance-id 1

Verbindingsgegevens opvragen

Er wordt een openbaar IP-adres toegewezen aan de load balancer die verkeer routeert naar de afzonderlijke VM-exemplaren. Standaard worden er regels voor NAT (Network Address Translation) toegevoegd aan de load balancer van Azure waarmee verkeer van externe verbindingen wordt doorgestuurd naar elke VM op een opgegeven poort. Om verbinding te maken met de VM-exemplaren in een schaalset, maakt u een externe verbinding met een toegewezen openbare IP-adres en poortnummer.

Gebruik az vmss list-instance-connection-info om de adressen en poorten op te vragen waarmee VM-exemplaren in een schaalset moeten worden verbonden:

az vmss list-instance-connection-info \
  --resource-group myResourceGroup \
  --name myScaleSet

In de volgende voorbeelduitvoer ziet u de exemplaarnaam, het openbare IP-adres van de load balancer en het poortnummer waarnaar de NAT-regels verkeer doorsturen:

{
  "instance 1": "13.92.224.66:50001",
  "instance 3": "13.92.224.66:50003"
}

Ga met SSH naar uw eerste VM-exemplaar. Geef met de parameter -p uw openbare IP-adres en poortnummer op, zoals is vastgesteld in de voorgaande opdracht:

ssh azureuser@13.92.224.66 -p 50001

Zodra u bent aangemeld bij het VM-exemplaar, kunt u indien nodig de configuratie op enkele punten handmatig wijzigen. Dit is nu niet nodig en u kunt de SSH-sessie op de gebruikelijke manier afsluiten:

exit

Installatiekopieën van VM-exemplaren begrijpen

Toen u aan het begin van de zelfstudie een schaalset hebt gemaakt, is een --image van UbuntuLTS opgegeven voor de VM-exemplaren. Azure Marketplace bevat allerlei installatiekopieën die kunnen worden gebruikt voor het maken van VM-exemplaren. Als u een lijst wilt weergeven van de meest gebruikte installatiekopieën, gebruikt u de opdracht az vm image list.

az vm image list --output table

In de volgende voorbeelduitvoer ziet u de meest gebruikte VM-installatiekopieën in Azure. De UrnAlias kan worden gebruikt om een van deze veelvoorkomende installatiekopieën op te geven bij het maken van een schaalset.

Offer          Publisher               Sku                 Urn                                                             UrnAlias             Version
-------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
CentOS         OpenLogic               7.3                 OpenLogic:CentOS:7.3:latest                                     CentOS               latest
CoreOS         CoreOS                  Stable              CoreOS:CoreOS:Stable:latest                                     CoreOS               latest
Debian         credativ                8                   credativ:Debian:8:latest                                        Debian               latest
openSUSE-Leap  SUSE                    42.2                SUSE:openSUSE-Leap:42.2:latest                                  openSUSE-Leap        latest
RHEL           RedHat                  7.3                 RedHat:RHEL:7.3:latest                                          RHEL                 latest
SLES           SUSE                    12-SP2              SUSE:SLES:12-SP2:latest                                         SLES                 latest
UbuntuServer   Canonical               16.04-LTS           Canonical:UbuntuServer:16.04-LTS:latest                         UbuntuLTS            latest
WindowsServer  MicrosoftWindowsServer  2016-Datacenter     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest     Win2016Datacenter    latest
WindowsServer  MicrosoftWindowsServer  2012-R2-Datacenter  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest  Win2012R2Datacenter  latest
WindowsServer  MicrosoftWindowsServer  2012-Datacenter     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest     Win2012Datacenter    latest
WindowsServer  MicrosoftWindowsServer  2008-R2-SP1         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest         Win2008R2SP1         latest

Als u een volledige lijst wilt weergeven, voegt u het argument --all toe. De lijst met installatiekopieën kan ook worden gefilterd door --publisher of –-offer. In het volgende voorbeeld wordt de lijst gefilterd op alle installatiekopieën met een aanbieding die overeenkomt met CentOS:

az vm image list --offer CentOS --all --output table

In de volgende verkorte uitvoer ziet u enkele van de beschikbare CentOS 7.3-installatiekopieën:

Offer    Publisher   Sku   Urn                                 Version
-------  ----------  ----  ----------------------------------  -------------
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20161221   7.3.20161221
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170421   7.3.20170421
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170517   7.3.20170517
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170612   7.3.20170612
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170707   7.3.20170707
CentOS   OpenLogic   7.3   OpenLogic:CentOS:7.3:7.3.20170925   7.3.20170925

Als u een schaalset wilt implementeren met een specifieke installatiekopie, gebruikt u de waarde in de kolom Urn. Wanneer u de installatiekopie opgeeft, kunt u het versienummer van de installatiekopie vervangen door latest om de nieuwste versie van de distributie te selecteren. In het volgende voorbeeld wordt het argument --image gebruikt om de nieuwste versie van een installatiekopie van CentOS 7.3 op te geven.

Belangrijk

We raden u aan de nieuwste installatiekopieversie te gebruiken. Specificeer 'nieuwste' om de nieuwste versie van een installatiekopie te gebruiken die beschikbaar is op de implementatietijd. Zelfs als u 'nieuwste' gebruikt, wordt de VM-installatiekopie niet automatisch bijgewerkt na de implementatietijd, zelfs niet als er een nieuwe versie beschikbaar wordt.

Aangezien het enkele minuten duurt om alle schaalsetresources en VM-exemplaren te maken en te configureren, hoeft u de volgende schaalset niet te implementeren:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSetCentOS \
  --image OpenLogic:CentOS:7.3:latest \
  --admin-user azureuser \
  --generate-ssh-keys

VM-exemplaargrootten begrijpen

De grootte van een VM-exemplaar, of SKU, bepaalt de hoeveelheid rekenresources, zoals CPU, GPU en geheugen die beschikbaar worden gesteld aan het VM-exemplaar. VM-exemplaren in een schaalset moeten de juiste grootte krijgen voor de verwachte werkbelasting.

VM-exemplaargrootten

In de volgende tabel worden enkele veelgebruikte VM-grootten gecategoriseerd naar gebruikssituatie.

Type Veelgebruikte grootten Beschrijving
Algemeen doel Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Evenwichtige CPU-geheugenverhouding. Ideaal voor ontwikkelen/testen en in kleine tot middelgrote toepassingen en gegevensoplossingen.
Geoptimaliseerde rekenkracht Fs, F Hoge CPU-geheugenverhouding. Goed voor middelgrootte verkeerstoepassingen, netwerkapparatuur en batchprocessen.
Geoptimaliseerd geheugen Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Hoge geheugen-kernverhouding. Uiterst geschikt voor relationele-databases, middelgrote tot grote caches en analysefuncties in het geheugen.
Geoptimaliseerde opslag Ls Snelle doorvoer van schijfgegevens en IO. Ideaal voor big data-, SQL- en NoSQL-databases.
GPU NV, NC Gespecialiseerde VM's bedoeld voor intensieve grafische rendering en videobewerking.
Hoge prestaties H, A8-11 Onze krachtigste CPU-VM's met optionele netwerkinterfaces (RDMA) voor hoge doorvoer.

Beschikbare VM-exemplaargrootten zoeken

Als u een lijst wilt weergeven met de VM-exemplaargrootten die beschikbaar zijn in een bepaalde regio, gebruikt u de opdracht az vm list-sizes.

az vm list-sizes --location eastus --output table

De uitvoer is vergelijkbaar met het volgende verkorte voorbeeld, waarin de resources worden weergegeven die zijn toegewezen aan elke VM-grootte:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
                 4          3584  Standard_DS1_v2                       1           1047552                    7168
                 8          7168  Standard_DS2_v2                       2           1047552                   14336
[...]
                 1           768  Standard_A0                           1           1047552                   20480
                 2          1792  Standard_A1                           1           1047552                   71680
[...]
                 4          2048  Standard_F1                           1           1047552                   16384
                 8          4096  Standard_F2                           2           1047552                   32768
[...]
                24         57344  Standard_NV6                          6           1047552                   38912
                48        114688  Standard_NV12                        12           1047552                  696320

Een schaalset met een specifieke VM-exemplaargrootte maken

Toen u aan het begin van de zelfstudie een schaalset hebt gemaakt, werd er een standaard-VM-SKU van Standard_D1_v2 opgegeven voor de VM-exemplaren. U kunt een andere grootte voor het VM-exemplaar opgeven op basis van de uitvoer van az vm list-sizes. In het volgende voorbeeld wordt een schaalset gemaakt met de parameter --vm-sku om een VM-exemplaargrootte op te geven van Standard_F1. Aangezien het enkele minuten duurt om alle schaalsetresources en VM-exemplaren te maken en te configureren, hoeft u de volgende schaalset niet te implementeren:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSetF1Sku \
  --image UbuntuLTS \
  --vm-sku Standard_F1 \
  --admin-user azureuser \
  --generate-ssh-keys

De capaciteit van een schaalset wijzigen

Toen u aan het begin van de zelfstudie een schaalset hebt gemaakt, zijn er standaard twee VM-exemplaren geïmplementeerd. U kunt de parameter --instance-count opgeven met az vmss create om het aantal exemplaren te wijzigen dat wordt gemaakt met een schaalset. Als u het aantal VM-exemplaren in een bestaande schaalset wilt vergroten of verkleinen, kunt u de capaciteit handmatig wijzigen. De grootte van de schaalset wordt dan aangepast, waarna de load balancer wordt geconfigureerd voor het verdelen van het verkeer.

Als u het aantal VM-exemplaren in de schaalset handmatig wilt vergroten of verkleinen, gebruikt u az vmss scale. In het volgende voorbeeld wordt het aantal VM-exemplaren in de schaalset ingesteld op 3:

az vmss scale \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --new-capacity 3

Het duurt een paar minuten om de capaciteit van de schaalset bij te werken. Als u het aantal instanties wilt weergeven dat zich momenteel in een schaalset bevindt, gebruikt u az vmss show en voert u een query uit op sku.capacity:

az vmss show \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --query [sku.capacity] \
    --output table

Veelvoorkomende beheertaken

U kunt nu een schaalset maken, verbindingsgegevens opvragen en verbinding maken met VM-exemplaren. U hebt geleerd hoe u een andere installatiekopie van het besturingssysteem kunt gebruiken voor VM-exemplaren, hoe u een andere VM-grootte selecteert of hoe u handmatig het aantal exemplaren aanpast. Als onderdeel van de dagelijkse beheertaken, kan het nodig zijn om de VM-exemplaren in de schaalset te stoppen, starten of opnieuw op te starten.

VM-exemplaren in een schaalset stoppen en hun toewijzing ongedaan maken

Gebruik az vmss stop om een of meer VM-exemplaren in een schaalset te beëindigen. Met de parameter --instance-ids kunt u een of meer VM-exemplaren opgeven die u wilt stoppen. Als u geen exemplaar-id opgeeft, worden alle VM-exemplaren in de schaalset gestopt. In het volgende voorbeeld wordt het exemplaar 1 gestopt:

az vmss stop --resource-group myResourceGroup --name myScaleSet --instance-ids 1

De toewijzing van gestopte VM-exemplaren wordt niet ongedaan gemaakt, wat betekent dat er nog steeds compute-kosten in rekening worden gebracht voor deze exemplaren. Als u de toewijzing van de VM-exemplaren ongedaan wilt maken zodat er alleen nog opslagkosten in rekening worden gebracht, gebruikt u az vmss deallocate. In het volgende voorbeeld wordt het exemplaar 1 gestopt en wordt de toewijzing ingetrokken:

az vmss deallocate --resource-group myResourceGroup --name myScaleSet --instance-ids 1

VM-exemplaren in een schaalset starten

Gebruik az vmss start om een of meer VM-exemplaren in een schaalset te starten. Met de parameter --instance-ids kunt u een of meer VM-exemplaren opgeven die u wilt starten. Als u geen exemplaar-id opgeeft, worden alle VM-exemplaren in de schaalset gestart. In het volgende voorbeeld wordt het exemplaar 1 gestart:

az vmss start --resource-group myResourceGroup --name myScaleSet --instance-ids 1

VM-exemplaren in een schaalset opnieuw opstarten

Gebruik az vmss restart om een of meer VM-exemplaren in een schaalset opnieuw op te starten. Met de parameter --instance-ids kunt u een of meer VM-exemplaren opgeven die u opnieuw wilt opstarten. Als u geen exemplaar-id opgeeft, worden alle VM-exemplaren in de schaalset opnieuw opgestart. In het volgende voorbeeld wordt het exemplaar 1 opnieuw opgestart:

az vmss restart --resource-group myResourceGroup --name myScaleSet --instance-ids 1

Resources opschonen

Als u een resourcegroep verwijdert, verwijdert u ook alle resources binnen deze groep, zoals de VM-exemplaren, het virtuele netwerk en schijven. 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 --no-wait --yes

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u een aantal basistaken voor het maken en beheren van schaalsets kunt uitvoeren met Azure CLI:

  • Een schaalset voor virtuele machines maken en hiermee verbinding maken
  • VM-installatiekopieën selecteren en gebruiken
  • Specifieke VM-grootten weergeven en gebruiken
  • Een schaalset handmatig schalen
  • Algemene beheertaken voor schaalsets uitvoeren

Ga naar de volgende zelfstudie om alles te leren over schijven in een schaalset.