Kurz: Vytvoření a správa škálovací sady virtuálních počítačů pomocí Azure PowerShellu

Platí pro: ✔️ Virtuální počítače s Linuxem ✔️ Windows virtuální počítače:heavy_check_mark: Jednotné škálovací sady

Škálovací sada virtuálních počítačů umožňuje nasadit a spravovat sadu identických virtuálních počítačů s automatickým škálováním. V průběhu životního cyklu škálovací sady virtuálních počítačů možná budete potřebovat spustit jednu nebo více úloh správy. Co se v tomto kurzu naučíte:

  • Vytvoření škálovací sady virtuálních počítačů a připojení k ní
  • Výběr a použití imagí virtuálních počítačů
  • Zobrazení a použití specifických velikostí instancí virtuálních počítačů
  • Ruční škálování škálovací sady
  • Provádění běžných úloh správy škálovací sady

Pokud ještě předplatné Azure nemáte, vytvořte si napřed bezplatný účet.

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Použití služby Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. Příklad Vyzkoušet služby Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Spuštění služby Cloud Shell v novém okně
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Tlačítko Cloud Shell na webu Azure Portal

Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:

  1. Spusťte Cloud Shell.

  2. Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.

  3. Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.

  4. Spusťte kód stisknutím klávesy Enter.

Vytvoření skupiny prostředků

Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Skupina prostředků musí být vytvořená už před vytvořením škálovací sady virtuálních počítačů. Vytvořte skupinu prostředků pomocí příkazu New-AzResourceGroup. V tomto příkladu se vytvoří skupina prostředků myResourceGroup v oblasti EastUS.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

Název skupiny prostředků zadáte při vytváření nebo úpravě škálovací sady v rámci tohoto kurzu.

Vytvoření škálovací sady

Nejprve pomocí rutiny Get-Credential nastavte uživatelské jméno a heslo správce instancí virtuálních počítačů:

$cred = Get-Credential

Teď vytvořte škálovací sadu virtuálních počítačů pomocí příkazu New-AzVmss. Za účelem distribuce provozu do jednotlivých instancí virtuálních počítačů se vytvoří také nástroj pro vyrovnávání zatížení. Nástroj pro vyrovnávání zatížení obsahuje pravidla pro distribuci provozu na portu TCP 80, stejně jako provozu vzdálené plochy na portu TCP 3389 a vzdálené komunikace PowerShellu na portu TCP 5985:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -Location "EastUS" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -Credential $cred

Vytvoření a konfigurace všech prostředků škálovací sady a instancí virtuálních počítačů trvá několik minut.

Důležité

Pokud se nemůžete připojit ke škálovací sadě, možná budete muset vytvořit skupinu zabezpečení sítě přidáním parametru -SecurityGroupName "mySecurityGroup".

Zobrazení instancí virtuálních počítačů ve škálovací sadě

Pokud chcete zobrazit seznam instancí virtuálních počítače ve škálovací sadě, použijte příkaz Get-AzVmssVM následujícím způsobem:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Následující příklad výstupu ukazuje dvě instance virtuálních počítačů ve škálovací sadě:

ResourceGroupName         Name Location             Sku InstanceID ProvisioningState
-----------------         ---- --------             --- ---------- -----------------
MYRESOURCEGROUP   myScaleSet_0   eastus Standard_DS1_v2          0         Succeeded
MYRESOURCEGROUP   myScaleSet_1   eastus Standard_DS1_v2          1         Succeeded

Pokud chcete zobrazit další informace o konkrétní instanci virtuálního počítače, přidejte -InstanceId parametr do get-AzVmssVM. Následující příklad zobrazí informace o instanci virtuálního počítače 1:

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"

Výpis informací o připojení

K nástroji pro vyrovnávání zatížení, který směruje provoz do jednotlivých instancí virtuálních počítačů, se přiřadí veřejná IP adresa. Ve výchozím nastavení se k nástroji pro vyrovnávání zatížení Azure, který směruje provoz vzdáleného připojení do jednotlivých virtuálních počítačů na daném portu, přidají pravidla překladu adres (NAT). Pokud se chcete připojit k instancím virtuálních počítačů ve škálovací sadě, vytvořte vzdálené připojení k přiřazené veřejné IP adrese a číslu portu.

Pokud chcete zobrazit seznam portů NAT pro připojení k instancím virtuálních počítače ve škálovací sadě, nejprve získejte objekt nástroje pro vyrovnávání zatížení pomocí příkazu Get-AzLoadBalancer. Pak zobrazte příchozí pravidla NAT pomocí příkazu Get-AzLoadBalancerInboundNatRuleConfig:

# Get the load balancer object
$lb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup" -Name "myLoadBalancer"

# View the list of inbound NAT rules
Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort

Následující příklad výstupu ukazuje název instance, veřejnou IP adresu nástroje pro vyrovnávání zatížení a číslo portu, na které pravidla překladu adres směrují provoz:

Name             Protocol FrontendPort BackendPort
----             -------- ------------ -----------
myScaleSet3389.0 Tcp             50001        3389
myScaleSet5985.0 Tcp             51001        5985
myScaleSet3389.1 Tcp             50002        3389
myScaleSet5985.1 Tcp             51002        5985

Název pravidla se zarovná s názvem instance virtuálního počítače, jak je znázorněno v předchozím příkazu Get-AzVmssVM. Pokud se například chcete připojit k instanci virtuálního počítače 0, použijte myScaleSet3389.0 a připojte se k portu 50001. Pokud se chcete připojit k instanci virtuálního počítače 1, použijte hodnotu z myScaleSet3389.1 a připojte se k portu 50002. Pokud chcete využít vzdálenou komunikaci PowerShellu, připojte se k odpovídajícímu pravidlu instance virtuálního počítače pro port TCP**5985.

Zobrazte veřejnou IP adresu nástroje pro vyrovnávání zatížení pomocí příkazu Get-AzPublicIpAddress:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" -Name "myPublicIPAddress" | Select IpAddress

Příklad výstupu:

IpAddress
---------
52.168.121.216

Vytvořte vzdálené připojení k první instanci virtuálního počítače. Zadejte vlastní veřejnou IP adresu a číslo portu požadované instance virtuálního počítače uvedené ve výstupech předchozích příkazů. Po zobrazení výzvy zadejte přihlašovací údaje použité při vytváření škálovací sady (ve výchozím nastavení v ukázkových příkazech azureuser a P @ ssw0rd!). Pokud používáte Azure Cloud Shell, proveďte tento krok z příkazového řádku místního PowerShellu nebo klienta Vzdálené plochy. Následující příklad se připojí k instanci virtuálního počítače 1:

mstsc /v 52.168.121.216:50001

Po přihlášení k instanci virtuálního počítače můžete podle potřeby provést ruční změny konfigurace. Prozatím vzdálené připojení ukončete.

Vysvětlení imagí instancí virtuálních počítačů

Azure Marketplace obsahuje mnoho imagí, které je možné použít k vytváření instancí virtuálních počítačů. Pokud chcete zobrazit seznam dostupných vydavatelů, použijte příkaz Get-AzVMImagePublisher.

Get-AzVMImagePublisher -Location "EastUS"

Seznam imagí pro daného vydavatele zobrazíte pomocí příkazu Get-AzVMImageSku. Seznam imagí je také možné filtrovat podle parametrů -PublisherName nebo -Offer. V následujícím příkladu se v seznamu vyfiltrují všechny image s názvem vydavatele MicrosoftWindowsServer, jejichž nabídka je WindowsServer:

Get-AzVMImageSku -Location "EastUS" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer"

Následující příklad výstupu ukazuje všechny dostupné image Windows Serveru:

Skus                                  Offer         PublisherName          Location
----                                  -----         -------------          --------
2008-R2-SP1                           WindowsServer MicrosoftWindowsServer eastus
2008-R2-SP1-smalldisk                 WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter                       WindowsServer MicrosoftWindowsServer eastus
2012-Datacenter-smalldisk             WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter                    WindowsServer MicrosoftWindowsServer eastus
2012-R2-Datacenter-smalldisk          WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter                       WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core           WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-Server-Core-smalldisk WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-smalldisk             WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-Containers       WindowsServer MicrosoftWindowsServer eastus
2016-Datacenter-with-RDSH             WindowsServer MicrosoftWindowsServer eastus
2016-Nano-Server                      WindowsServer MicrosoftWindowsServer eastus

Při vytváření škálovací sady na začátku kurzu jste pro instance virtuálních počítačů zadali výchozí image virtuálního počítače Windows Server 2016 DataCenter. Na základě výstupu příkazu Get-AzVMImageSkumůžete zadat jinou image virtuálního počítače. Následující příklad vytvoří škálovací sadu s použitím parametru -ImageName, který určí image virtuálního počítače MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest. Vzhledem k tomu, že vytvoření a konfigurace všech prostředků škálovací sady a instancí virtuálních počítačů trvá několik minut, následující škálovací sadu nasazovat nemusíte:

New-AzVmss `
  -ResourceGroupName "myResourceGroup2" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet2" `
  -VirtualNetworkName "myVnet2" `
  -SubnetName "mySubnet2" `
  -PublicIpAddressName "myPublicIPAddress2" `
  -LoadBalancerName "myLoadBalancer2" `
  -UpgradePolicyMode "Automatic" `
  -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
  -Credential $cred

Důležité

Doporučujeme použít nejnovější verzi image. Pokud chcete používat nejnovější verzi image dostupné v době nasazení, zadejte latest. Všimněte si, že i když použijete nejnovější verzi, image virtuálního počítače se po nasazení automaticky ne aktualizuje, i když bude dostupná nová verze.

Vysvětlení velikostí instancí virtuálních počítačů

Velikost instance virtuálního počítače neboli skladová položka určuje množství výpočetních prostředků, jako jsou procesor, grafický procesor a paměť, které jsou pro instanci virtuálního počítače k dispozici. Velikost instancí virtuálních počítačů ve škálovací sadě je třeba správně určit podle očekávané pracovní zátěže.

Velikosti instancí virtuálních počítačů

V následující tabulce jsou běžné velikosti virtuálních počítačů rozdělené podle způsobů použití.

Typ Běžné velikosti Popis
Obecné účely Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Vyvážený poměr procesorů k paměti. Ideální pro vývoj nebo testování a pro malé až střední řešení aplikací a dat.
Optimalizované pro výpočty Fs, F Vysoký poměr procesorů k paměti. Vhodné pro aplikace se středním provozem, síťová zařízení a dávkové procesy.
Optimalizované pro paměť Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Vysoký poměr paměti k jádrům. Velmi vhodné pro relační databáze, střední a velké mezipaměti a analýzu v paměti.
Optimalizované pro úložiště Ls Vysoká propustnost disku a V/V. Ideální pro databáze NoSQL, SQL a velké objemy dat.
GPU NV, NC Specializované virtuální počítače určené pro náročné vykreslování grafiky a úpravy videa.
Vysoký výkon H, A8-11 Naše procesorově nejvýkonnější virtuální počítače s volitelnými síťovými rozhraními s vysokou propustností (RDMA).

Vyhledání dostupných velikostí instancí virtuálních počítačů

Pokud chcete zobrazit seznam velikostí instancí virtuálních počítačů dostupných v konkrétní oblasti, použijte příkaz Get-AzVMSize.

Get-AzVMSize -Location "EastUS"

Výstup se podobá následujícímu zhuštěnému příkladu, který ukazuje prostředky přiřazené k jednotlivým velikostem virtuálních počítačů:

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

Při vytváření škálovací sady na začátku kurzu jste pro instance virtuálních počítačů zadali výchozí skladovou položku virtuálního počítače Standard_DS1_v2. Na základě výstupu příkazu Get-AzVMSizemůžete zadat jinou velikost instance virtuálního počítače. Následující příklad vytvoří škálovací sadu s použitím parametru -VmSize, který určí velikost instancí virtuálních počítačů Standard_F1. Vzhledem k tomu, že vytvoření a konfigurace všech prostředků škálovací sady a instancí virtuálních počítačů trvá několik minut, následující škálovací sadu nasazovat nemusíte:

New-AzVmss `
  -ResourceGroupName "myResourceGroup3" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet3" `
  -VirtualNetworkName "myVnet3" `
  -SubnetName "mySubnet3" `
  -PublicIpAddressName "myPublicIPAddress3" `
  -LoadBalancerName "myLoadBalancer3" `
  -UpgradePolicyMode "Automatic" `
  -VmSize "Standard_F1" `
  -Credential $cred

Změna kapacity škálovací sady

Při vytváření škálovací sady jste vyžádali dvě instance virtuálních počítačů. Pokud chcete zvýšit nebo snížit počet instancí virtuálních počítačů ve škálovací sadě, můžete ručně změnit kapacitu. Škálovací sada vytvoří nebo odebere požadovaný počet instancí virtuálních počítačů a pak nakonfiguruje nástroj pro vyrovnávání zatížení pro distribuci provozu.

Nejprve vytvořte objekt sady škálování pomocí Get-AzVmssa pak zadejte novou hodnotu pro sku.capacity . Pokud chcete použít změnu kapacity, použijte Update-AzVmss. Následující příklad nastaví počet instancí virtuálních počítačů ve vaší škálovací sadě na 3:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss 

Aktualizace kapacity škálovací sady trvá několik minut. Pokud chcete zobrazit počet instancí, které teď máte v sadě škálování, použijte příkaz Get-AzVmss:

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Následující příklad výstupu ukazuje, že kapacita škálovací sady je teď 3:

Sku        :
  Name     : Standard_DS2
  Tier     : Standard
  Capacity : 3

Běžné úlohy správy

Teď můžete vytvořit škálovací sadu, vypsat informace o připojení a připojit se k instancím virtuálních počítačů. Zjistili jste, jak pro instance virtuálních počítačů použít jinou image operačního systému, vybrat jinou velikost virtuálních počítačů nebo ručně škálovat počet instancí. V rámci každodenní správy můžete potřebovat zastavit, spustit nebo restartovat instance virtuálních počítačů ve své škálovací sadě.

Zastavení a uvolnění instancí virtuálních počítačů ve škálovací sadě

Pokud chcete zastavit jeden nebo více virtuálních počítačů v sadě škálování, použijte stop-AzVmss. Pomocí parametru -InstanceId můžete zadat jeden nebo několik virtuálních počítačů, které se mají zastavit. Pokud nezadáte ID instance, zastaví se všechny virtuální počítače ve škálovací sadě. Následující příklad zastaví instanci 1:

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"

Ve výchozím nastavení se zastavené virtuální počítače uvolní a neúčtují se u nich poplatky za výpočty. Pokud chcete, aby virtuální počítače po zastavení zůstaly ve zřízeném stavu, přidejte k předchozímu příkazu parametr -StayProvisioned. U zastavených virtuálních počítačů, které zůstanou zřízené, se účtují obvyklé poplatky za výpočty.

Spuštění instancí virtuálních počítačů ve škálovací sadě

Pokud chcete spustit jeden nebo více virtuálních počítačů v sadě škálování, použijte Start-AzVmss. Pomocí parametru -InstanceId můžete zadat jeden nebo několik virtuálních počítačů, které se mají spustit. Pokud nezadáte ID instance, spustí se všechny virtuální počítače ve škálovací sadě. Následující příklad spustí instanci 1:

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"

Restartování instancí virtuálních počítačů ve škálovací sadě

Pokud chcete restartovat jeden nebo víc virtuálních počítačů v sadě škálování, použijte restart-AzVmss. Pomocí parametru -InstanceId můžete zadat jeden nebo několik virtuálních počítačů, které se mají restartovat. Pokud nezadáte ID instance, restartují se všechny virtuální počítače ve škálovací sadě. Následující příklad restartuje instanci 1:

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "1"

Vyčištění prostředků

Když odstraníte skupinu prostředků, odstraní se také všechny prostředky v ní obsažené, například instance virtuálních počítačů, virtuální síť a disky. Parametr -Force potvrdí, že chcete prostředky odstranit, aniž by se na to zobrazoval další dotaz. Parametr -AsJob vrátí řízení na příkazový řádek bez čekání na dokončení operace.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Další kroky

V tomto kurzu jste zjistili, jak provádět několik běžných úloh vytvoření a správy škálovací sady pomocí Azure PowerShellu:

  • Vytvoření škálovací sady virtuálních počítačů a připojení k ní
  • Výběr a použití imagí virtuálních počítačů
  • Zobrazení a použití specifických velikostí virtuálních počítačů
  • Ruční škálování škálovací sady
  • Provádění běžných úloh správy škálovací sady

V dalším kurzu se dozvíte něco o discích škálovacích sad.