Megosztás a következőn keresztül:


Az Azure Spot Virtual Machines üzembe helyezése a 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 Virtual Machines használatával jelentős költségmegtakarítással kihasználhatja a nem használt kapacitás előnyeit. Ha az Azure-nak bármikor szüksége van a kapacitásra, az Azure-infrastruktúra kiüríti az Azure Spot Virtual Machines. Ezért az Azure Spot Virtual Machines kiválóan 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 Virtual Machines díjszabása régiótól és termékváltozattól függően változó. További információt a Linux és Windows rendszerű virtuális gépek díjszabását ismertető cikkben talál. A maximális ár beállításával kapcsolatos további információkért lásd: Azure Spot Virtual Machines – Díjszabás.

Beállíthat egy maximális árat, amelyért óránként fizetni szeretne a virtuális gépért. Az Azure-beli kihasználatlan virtuális gépek maximális ára amerikai dollárban (USD) állítható be legfeljebb 5 tizedesjegy használatával. Az érték 0.98765például 0,98765 USD óránkénti maximális ár lenne. Ha a maximális árat értékre -1állítja, a virtuális gép nem lesz kizárva az ár alapján. A virtuális gép ára a kihasználatlanság aktuális ára, vagy egy standard virtuális gép á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 a következő -MaxPrice értékre:

  • -1 így a virtuális gép nem lesz kizárva 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 New-AzVMConfigkövetkezőre-EvictionPolicy: Delete .

$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-beli kihasználatlan virtuális gép kiürítését a REST, a PowerShell vagy a parancssori felület használatával annak teszteléséhez, hogy az alkalmazás milyen jól reagál a hirtelen kilakoltatásra.

A legtöbb esetben a REST API Virtual Machines – Szimulált kiürítés használata az alkalmazások automatikus teszteléséhez. REST esetén ez azt Response Code: 204 jelenti, hogy a szimulált kiüríté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 Friday – Azure Ütemezett események használata a virtuális gépek karbantartására való felkészüléshez című cikket.

Gyorsteszt

A szimulált kiürítés működését bemutató gyorstesztért tekintsük át az ütemezett eseményszolgáltatás lekérdezését, és nézzük meg, hogyan néz ki, amikor a PowerShell használatával szimulál egy kiüríté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, amelyre telepítve van az Az PowerShell-modul (például a helyi gép), szimuláljon kiürítéseket 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 Status: Succeeded meg, ha a kérés sikeresen megtörtént.

Gyorsan térjen vissza a kihasználatlan virtuális géppel létesített távoli kapcsolathoz, és kérdezze le újra az Ütemezett események végpontot. Ismételje meg a következő parancsot, amíg olyan kimenetet nem kap, amely további információkat tartalmaz:

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 kiüríté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"}]}

Láthatja, hogy "EventType":"Preempt"a , és az erőforrás a virtuálisgép-erőforrás "Resources":["myspotvm"].

Az érték ellenőrzésével azt is láthatja, hogy mikor lesz kiürítve a "NotBefore" virtuális gép. A virtuális gépet a megadott NotBeforeidőpont előtt nem zárja ki a rendszer, így az alkalmazás szabályosan bezárulhat.

Következő lépések

Azure-beli kihasználatlan 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 kérdezze le az aktuális díjszabási információkat az Azure kiskereskedelmi árak API-jának használatával. A meterName és skuName mindkettő tartalmazza a következőt Spot: .

Ha hibát tapasztal, tekintse meg a Hibakódok című témakört.