Kurz: Úprava škálovací sady virtuálních počítačů pomocí PowerShellu
V průběhu životního cyklu vašich aplikací možná budete muset upravit nebo aktualizovat škálovací sadu virtuálních počítačů. Tyto aktualizace můžou zahrnovat, jak aktualizovat konfiguraci škálovací sady nebo změnit konfiguraci aplikace. Tento článek popisuje, jak upravit existující škálovací sadu pomocí PowerShellu.
Aktualizace modelu škálovací sady
Škálovací sada má "model škálovací sady", který zachycuje požadovaný stav škálovací sady jako celku. K dotazování modelu pro škálovací sadu můžete použít Rutinu Get-AzVmss.
Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Přesná prezentace výstupu závisí na možnostech, které zadáte příkazu. Následující příklad ukazuje zhuštěný ukázkový výstup z PowerShellu:
Sku :
Name : Standard_DS1_v2
Tier : Standard
Capacity : 2
ProvisioningState : Succeeded
SinglePlacementGroup : False
Id : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet
Name : myScaleSet
Type : Microsoft.Compute/virtualMachineScaleSets
Location : eastus
VirtualMachineProfile :
ComputerNamePrefix : myScaleSe
ProvisionVMAgent : True
EnableAutomaticUpdates : True
PatchMode : AutomaticByOS
AssessmentMode : ImageDefault
EnableVMAgentPlatformUpdates : False
AllowExtensionOperations : True
StorageProfile :
Publisher : MicrosoftWindowsServer
Offer : WindowsServer
Sku : 2016-Datacenter
Version : latest
OsDisk :
Caching : None
CreateOption : FromImage
DiskSizeGB : 127
OsType : Windows
StorageAccountType : Premium_LRS
DeleteOption : Delete
NetworkProfile :
NetworkInterfaceConfigurations[0] :
Name : myScaleSet
Primary : True
DisableTcpStateTracking : False
Name : myScaleSet
Subnet :
Id : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSet/subnets/myScaleSet
PrivateIPAddressVersion : IPv4
LoadBalancerBackendAddressPools[0] :
/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSet/backendAddressPools/myScaleSet
EnableIPForwarding : False
DeleteOption : Delete
NetworkApiVersion : 2020-11-01
OrchestrationMode : Flexible
TimeCreated : 12/2/2022 5:41:21 PM
K aktualizaci různých vlastností škálovací sady můžete použít také Update-AzVmss . Například aktualizujte typ licence.
$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -LicenseType Windows_Server
Aktualizace jednotlivých instancí virtuálních počítačů ve škálovací sadě
Podobně jako má škálovací sada zobrazení modelu, každá instance virtuálního počítače ve škálovací sadě má vlastní zobrazení modelu. K dotazování zobrazení modelu pro konkrétní instanci virtuálního počítače ve škálovací sadě můžete použít Get-AzVM.
Get-AzVM -ResourceGroupName myResourceGroup -name MyScaleSet_Instance1
ResourceGroupName : myResourceGroup
Id : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_Instance1
Name : myScaleSet_Instance1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Extensions : {MicrosoftMonitoringAgent}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated : 12/2/2022 5:41:23 PM
Můžete také přidat -Status
příznak pro získání zobrazení instance, které poskytuje další podrobnosti o virtuálním počítači.
Get-AzVM -ResourceGroupName myResourceGroup -name MyScaleSet_Instance1 -Status
ResourceGroupName : myResourceGroup
Name : MyScaleSet_Instance1
OsName : Windows Server 2016 Datacenter
OsVersion : 10.0.14393.5501
HyperVGeneration : V1
Disks[0] :
Name : myScaleSet_Instance1_disk1_cab60acccff7414b81d60572eeecb9e3
Statuses[0] :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Time : 12/2/2022 5:41:25 PM
Disks[1] :
Name : disk1
Statuses[0] :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Time : 12/2/2022 6:33:36 PM
Extensions[0] :
Name : MicrosoftMonitoringAgent
Type : Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent
TypeHandlerVersion : 1.0.18067.0
Statuses[0] :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Message : Latest configuration has been applied to the Microsoft Monitoring Agent.
VMAgent :
VmAgentVersion : 2.7.41491.1071
ExtensionHandlers[0] :
Type : Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent
TypeHandlerVersion : 1.0.18067.0
Status :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Ready
Message : This virtual machine has successfully connected to Azure Log Analytics.
Statuses[0] :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Ready
Message : GuestAgent is running and processing the extensions.
Time : 12/2/2022 6:34:55 PM
Statuses[0] :
Code : ProvisioningState/succeeded
Level : Info
DisplayStatus : Provisioning succeeded
Time : 12/2/2022 6:33:42 PM
Statuses[1] :
Code : PowerState/running
Level : Info
DisplayStatus : VM running
Tyto vlastnosti popisují konfiguraci instance virtuálního počítače ve škálovací sadě, nikoli konfiguraci škálovací sady jako celku.
Aktualizace jednotlivých instancí virtuálních počítačů ve škálovací sadě můžete provádět stejně jako samostatný virtuální počítač. Například připojení nového datového disku k instanci 1:
$VirtualMachine = Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myScaleSet_Instance1".
Add-AzVMDataDisk -VM $VirtualMachine -Name "disk1" -LUN 0 -Caching ReadOnly -DiskSizeinGB 128 -CreateOption Empty
Update-AzVM -ResourceGroupName "myResourceGroup" -VM $VirtualMachine
Přidání instance do škálovací sady
Někdy můžete chtít do škálovací sady přidat nový virtuální počítač, ale chcete jiné možnosti konfigurace než pak uvedené v modelu škálovací sady. Virtuální počítače je možné přidat do škálovací sady během vytváření pomocí příkazu Get-AzVmss a zadáním názvu škálovací sady, do které chcete instanci přidat.
New-AzVM -Name myNewInstance -ResourceGroupName myResourceGroup -image Ubuntu2204 -VmssId /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet
ResourceGroupName : myResourceGroup
Id : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myNewInstance
Name : myNewInstance
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : mynewinstance-21bc01.eastus.cloudapp.azure.com
VirtualMachineScaleSet : {Id}
TimeCreated : 12/2/2022 6:40:20 PM
Opětovným spuštěním rutiny Get-AzVM vidíme, že se nová instance vytvořila a přidala do existující škálovací sady.
Get-AzVm -ResourceGroupName myResourceGroup
ResourceGroupName Name Location VmSize OsType NIC ProvisioningState
----------------- ---- -------- ------ ------ --- -----------------
myResourceGroup myNewInstance eastus Standard_D2s_v3 Linux myNewInstance Succeeded
myResourceGroup myScaleSet_Instance1 eastus Standard_DS1_v2 Windows myScaleSet-a9f1d54c Succeeded
myResourceGroup myScaleSet_Instance2 eastus Standard_DS1_v2 Windows myScaleSet-4dc708e5 Succeeded
Aktualizace virtuálních počítačů pomocí nejnovějšího modelu škálovací sady
Poznámka:
Režimy upgradu se v současné době nepodporují ve škálovacích sadách virtuálních počítačů pomocí flexibilního režimu orchestrace.
Škálovací sady mají zásadu upgradu, která určuje, jak se virtuální počítače aktualizují pomocí nejnovějšího modelu škálovací sady. Pro zásady upgradu existují tři režimy:
- Automaticky – V tomto režimu škálovací sada neposkytuje žádné záruky týkající se pořadí vysílaných virtuálních počítačů. Škálovací sada může současně snížit všechny virtuální počítače.
- Rolling – V tomto režimu škálovací sada zavádí aktualizaci v dávkách s volitelným časem pozastavení mezi dávkami.
- Ruční – V tomto režimu se při aktualizaci modelu škálovací sady nic nestane s existujícími virtuálními počítači, dokud se neaktivuje ruční aktualizace.
Pokud je vaše škálovací sada nastavená na ruční upgrady, můžete aktivovat ruční upgrade pomocí update-AzVmss.
$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet
Poznámka:
Clustery Service Fabric můžou používat pouze automatický režim, ale aktualizace se zpracovává jinak. Další informace najdete v tématu Upgrady aplikací Service Fabric.
Opětovné vytvoření škálovací sady
Škálovací sady virtuálních počítačů vygenerují jedinečný název pro každý virtuální počítač ve škálovací sadě. Zásady vytváření názvů se liší podle režimu orchestrace:
- Flexibilní režim orchestrace:
{scale-set-name}_{8-char-guid}
- Jednotný režim orchestrace:
{scale-set-name}_{instance-id}
V případech, kdy potřebujete znovu vytvořit image konkrétní instance, použijte Set-AzVmss a zadejte název instance.
Set-AzVmssVM -ResourceGroupName myResourceGroup -VMScaleSetName myScaleSet -InstanceId myScaleSet_Instance1 -Reimage
Pokud chcete znovu vytvořit image všech instancí ve škálovací sadě, jednoduše zadejte název škálovací sady a vynechte všechny id instancí.
Set-AzVmssVM -Reimage -ResourceGroupName myResourceGroup -VMScaleSetName myScaleSet
Aktualizace image operačního systému pro škálovací sadu
Možná máte škálovací sadu, na které běží stará verze Ubuntu LTS 18.04. Chcete aktualizovat na novější verzi Ubuntu LTS 16.04, například na verzi 18.04.202210180. Vlastnost referenční verze image není součástí seznamu, takže tyto vlastnosti můžete přímo upravit pomocí update-AzVmsss.
$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -ImageReferenceVersion virtualMachineProfile.storageProfile.imageReference.version=18.04.202210180
Případně můžete chtít změnit image, kterou vaše škálovací sada používá. Můžete například chtít aktualizovat nebo změnit vlastní image používanou škálovací sadou. Image, kterou vaše škálovací sada používá, můžete změnit aktualizací vlastnosti ID odkazu na image. Vlastnost ID odkazu na image není součástí seznamu, takže tuto vlastnost můžete přímo upravit pomocí update-AzVmss.
$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -ImageReferenceVersion virtualMachineProfile.storageProfile.imageReference.id=/subscriptions/{subscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myNewImage
Pokud používáte image platformy Azure, můžete image aktualizovat úpravou imageReference (další informace najdete v dokumentaci k rozhraní REST API).
Poznámka:
U imagí platformy je běžné zadat nejnovější verzi pro referenční verzi image. Při vytváření, horizontálním navýšení kapacity a opětovném vytváření virtuálních počítačů se vytvoří s nejnovější dostupnou verzí. Neznamená to ale, že se image operačního systému automaticky aktualizuje v průběhu času při vydání nových verzí imagí. Samostatná funkce poskytuje automatické upgrady operačního systému. Další informace najdete v dokumentaci k automatickým upgradům operačního systému.
Pokud používáte vlastní image, můžete ji aktualizovat aktualizací ID imageReference (další informace najdete v dokumentaci k rozhraní REST API).
Další kroky
V tomto kurzu jste zjistili, jak pomocí PowerShellu upravit různé aspekty škálovací sady a jednotlivých instancí.
- Aktualizace modelu škálovací sady
- Aktualizace jednotlivých instancí virtuálního počítače ve škálovací sadě
- Přidání instance do škálovací sady
- Aktualizace virtuálních počítačů pomocí nejnovějšího modelu škálovací sady
- Opětovné vytvoření škálovací sady
- Aktualizace image operačního systému pro škálovací sadu