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ř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. | ![]() |
| Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:
Spusťte Cloud Shell.
Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.
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.
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.


