Azure Spot virtuális gépek üzembe helyezése az Azure PowerShell használatával
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ – Windows rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Az Azure Spot virtuális gépek használatával jelentős költségmegtakarítással kihasználhatja a kihasználatlan kapacitást. Amikor az Azure-nak bármikor szüksége lesz a kapacitásra, az Azure-infrastruktúra kiüríti az Azure Spot virtuális gépeket. Ezért az Azure Spot virtuális gépek nagyszerűen használhatók olyan számítási feladatokhoz, amelyek képesek kezelni a megszakításokat, például a kötegelt feldolgozási feladatokat, a fejlesztési/tesztelési környezeteket, a nagy számítási feladatokat és egyebeket.
Az Azure Spot virtuális gépek díjszabása régiótól és termékváltozattól függően változó. További információ: Linux és Windows rendszerű virtuális gépek díjszabása. A maximális ár beállításáról további információt az Azure Spot Virtual Machines – Díjszabás című témakörben talál.
Beállíthatja a virtuális gép óránkénti fizetésére hajlandó maximális árat. Az Azure Spot virtuális gépek maximális ára amerikai dollárban (USD) állítható be legfeljebb 5 tizedesjegy használatával. Az érték 0.98765
például óránként 0,98765 USD. Ha a maximális árat -1
állítja be, a virtuális gép nem lesz kizárva az ár alapján. A virtuális gép ára a kihasználatlan vagy a standard virtuális gépek aktuális ára lesz, amely mindig alacsonyabb lesz, feltéve, hogy rendelkezésre áll kapacitás és kvóta.
A virtuális gép létrehozása
Hozzon létre egy spotVM-et a New-AzVmConfig használatával a konfiguráció létrehozásához. Adja meg -Priority Spot
és állítsa be -MaxPrice
a következőre:
-1
így a virtuális gépet nem kell kilakoltatni az ár alapján.- egy dollár összeg, legfeljebb 5 számjegy. Ez azt jelenti például, hogy a virtuális gép felszabadítása akkor történik meg,
-MaxPrice .98765
ha a spotVM ára óránként körülbelül 98765 usd lesz.
Ez a példa létrehoz egy spotVM-et, amely nem lesz felszabadítva a díjszabás alapján (csak akkor, ha az Azure-nak szüksége van a kapacitásra). A kiürítési szabályzat úgy van beállítva, hogy felszabadítsa a virtuális gépet, hogy később újra lehessen indítani. Ha törölni szeretné a virtuális gépet és a mögöttes lemezt a virtuális gép kiürítésekor, állítsa a következőre -EvictionPolicy
Delete
New-AzVMConfig
: .
$resourceGroup = "mySpotRG"
$location = "eastus"
$vmName = "mySpotVM"
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
New-AzResourceGroup -Name $resourceGroup -Location $location
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet -AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup `
-Location $location -Name MYvNET -AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration and set this to be an Azure Spot Virtual Machine
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1 -Priority "Spot" -MaxPrice -1 -EvictionPolicy Deallocate | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | `
Add-AzVMNetworkInterface -Id $nic.Id
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
A virtuális gép létrehozása után lekérdezheti az erőforráscsoport összes virtuális gépének maximális árát.
Get-AzVM -ResourceGroupName $resourceGroup | `
Select-Object Name,@{Name="maxPrice"; Expression={$_.BillingProfile.MaxPrice}}
Kiürítés szimulálása
Szimulálhatja egy Azure Spot virtuális gép kiürítését REST, PowerShell vagy CLI használatával, hogy tesztelje, mennyire reagál az alkalmazás a hirtelen kilakoltatásra.
A legtöbb esetben a REST API virtuális gépek – Kiürítés szimulálása lehetőséget kell használnia az alkalmazások automatikus teszteléséhez. A REST esetében ez azt Response Code: 204
jelenti, hogy a szimulált kizárás sikeres volt. A szimulált kizárásokat kombinálhatja az ütemezett eseményszolgáltatással, így automatizálhatja, hogy az alkalmazás hogyan reagáljon a virtuális gép kiürítésekor.
Az ütemezett események működés közbeni megtekintéséhez tekintse meg az Azure Fridayt – Az Azure Ütemezett események használatával felkészülhet a virtuális gépek karbantartására.
Gyorsteszt
A szimulált kilakoltatás működését bemutató gyorstesztet az ütemezett eseményszolgáltatás lekérdezésével tekintheti meg, hogyan néz ki, amikor a PowerShell használatával szimulál egy kizárást.
Az ütemezett eseményszolgáltatás az első alkalommal engedélyezve van a szolgáltatás számára, amikor először kér eseményeket.
Lépjen távolról a virtuális gépre, majd nyisson meg egy parancssort.
A virtuális gép parancssorából írja be a következőt:
curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01
Ez az első válasz akár 2 percet is igénybe vehet. Mostantól szinte azonnal meg kell jeleníteniük a kimenetet.
Egy olyan számítógépről, amely telepítette az Az PowerShell-modult (például a helyi gépet), szimuláljon egy kizárást a Set-AzVM használatával. Cserélje le az erőforráscsoport nevét és a virtuális gép nevét a saját nevére.
Set-AzVM -ResourceGroupName "mySpotRG" -Name "mySpotVM" -SimulateEviction
A válasz kimenete akkor jelenik meg Status: Succeeded
, ha a kérés sikeresen megtörtént.
Gyorsan térjen vissza a kihasználatlan virtuális gép távoli kapcsolatához, és kérdezze le újra az ütemezett események végpontját. Ismételje meg a következő parancsot, amíg nem kap egy további információt tartalmazó kimenetet:
curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01
Amikor az ütemezett eseményszolgáltatás megkapja a kizárási értesítést, a következőhöz hasonló választ kap:
{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}
Ez látható "EventType":"Preempt"
, és az erőforrás a virtuálisgép-erőforrás "Resources":["myspotvm"]
.
Az érték ellenőrzésével "NotBefore"
azt is láthatja, hogy a virtuális gép mikor lesz kiürítve. A virtuális gépet nem fogja kiüríteni a megadott NotBefore
idő előtt, így az alkalmazás számára ez az ablak, amellyel kecsesen bezárhatja a virtuális gépet.
Következő lépések
Azure Spot virtuális gépet az Azure CLI, a portál vagy egy sablon használatával is létrehozhat.
Az Azure Spot Virtual Machine díjszabásával kapcsolatos információkért az Azure kiskereskedelmi árak API-jának használatával kérdezheti le az aktuális díjszabási információkat. A meterName
és skuName
mindkettő tartalmazza Spot
.
Ha hibát tapasztal, tekintse meg a hibakódokat.