Az Azure Spot Virtual Machines üzembe helyezése Resource Manager sablon használatával
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek
Az Azure Spot Virtual Machines használatával jelentős költségmegtakarítással kihasználhatja a kihasználatlan kapacitást. Bármikor, amikor az Azure-nak vissza kell igényelnie a kapacitást, az Azure-infrastruktúra kizárja az Azure Spot virtuális gépeket. Az Azure Spot virtuális gépek olyan számítási feladatokhoz használhatók, 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ó: Linux és Windows rendszerű virtuális gépek díjszabása.
Beállíthat egy maximális árat, amelyért óránként hajlandó fizetni a virtuális gépért. Az Azure Spot virtuális gépek maximális ára amerikai dollárban (USD) állítható be legfeljebb öt tizedesjegy használatával. Az érték 0.98765
például óránként 0,98765 USD. Ha a maximális árat a értékre -1
állítja, a virtuális gépek kizárása nem az áron alapul, és az ár az Azure Spot virtuális gépek aktuális ára, vagy egy standard virtuális gép ára lesz, amelyik alacsonyabb, feltéve hogy rendelkezésre áll kapacitás és kvóta. A maximális ár beállításával kapcsolatos további információkért lásd: Azure Spot virtuális gépek – Díjszabás.
Sablon használata
Az Azure Spot virtuálisgép-sablon üzembe helyezéséhez használja a vagy újabb verziót"apiVersion": "2019-03-01"
. Adja hozzá a és billingProfile
evictionPolicy
a priority
tulajdonságot a sablonhoz:
"priority": "Spot",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": -1
}
Íme egy mintasablon, amely hozzáadott tulajdonságokkal rendelkezik egy Azure Spot virtuális géphez. Cserélje le az erőforrásneveket a sajátjára és <password>
a virtuális gép helyi rendszergazdai fiókjának jelszavára.
{
"$schema": "http://schema.management.azure.com/schemas/2019-03-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
},
"variables": {
"vnetId": "/subscriptions/ec9fcd04-e188-48b9-abfc-abcd515f1836/resourceGroups/spotVM/providers/Microsoft.Network/virtualNetworks/spotVM",
"subnetName": "default",
"networkInterfaceName": "spotVMNIC",
"publicIpAddressName": "spotVM-ip",
"publicIpAddressType": "Dynamic",
"publicIpAddressSku": "Basic",
"virtualMachineName": "spotVM",
"osDiskType": "Premium_LRS",
"virtualMachineSize": "Standard_D2s_v3",
"adminUsername": "azureuser",
"adminPassword": "<password>",
"diagnosticsStorageAccountName": "diagstoragespot2019",
"diagnosticsStorageAccountId": "Microsoft.Storage/storageAccounts/diagstoragespot2019",
"diagnosticsStorageAccountType": "Standard_LRS",
"diagnosticsStorageAccountKind": "Storage",
"subnetRef": "[concat(variables('vnetId'), '/subnets/', variables('subnetName'))]"
},
"resources": [
{
"name": "spotVM",
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2019-03-01",
"location": "eastus",
"dependsOn": [
"[concat('Microsoft.Network/publicIpAddresses/', variables('publicIpAddressName'))]"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[variables('subnetRef')]"
},
"privateIPAllocationMethod": "Dynamic",
"publicIpAddress": {
"id": "[resourceId(resourceGroup().name, 'Microsoft.Network/publicIpAddresses', variables('publicIpAddressName'))]"
}
}
}
]
}
},
{
"name": "[variables('publicIpAddressName')]",
"type": "Microsoft.Network/publicIpAddresses",
"apiVersion": "2019-02-01",
"location": "eastus",
"properties": {
"publicIpAllocationMethod": "[variables('publicIpAddressType')]"
},
"sku": {
"name": "[variables('publicIpAddressSku')]"
}
},
{
"name": "[variables('virtualMachineName')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-03-01",
"location": "eastus",
"dependsOn": [
"[concat('Microsoft.Network/networkInterfaces/', variables('networkInterfaceName'))]",
"[concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[variables('virtualMachineSize')]"
},
"storageProfile": {
"osDisk": {
"createOption": "fromImage",
"managedDisk": {
"storageAccountType": "[variables('osDiskType')]"
}
},
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "22.04-LTS",
"version": "latest"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('networkInterfaceName'))]"
}
]
},
"osProfile": {
"computerName": "[variables('virtualMachineName')]",
"adminUsername": "[variables('adminUsername')]",
"adminPassword": "[variables('adminPassword')]"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "[concat('https://', variables('diagnosticsStorageAccountName'), '.blob.core.windows.net/')]"
}
},
"priority": "Spot",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": -1
}
}
},
{
"name": "[variables('diagnosticsStorageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"location": "eastus",
"properties": {},
"kind": "[variables('diagnosticsStorageAccountKind')]",
"sku": {
"name": "[variables('diagnosticsStorageAccountType')]"
}
}
],
"outputs": {
"adminUsername": {
"type": "string",
"value": "[variables('adminUsername')]"
}
}
}
Kiürítés szimulálása
Szimulálhatja egy Azure Spot virtuális gép kiürítését, hogy tesztelje az alkalmazás válaszát egy hirtelen kizárásra.
Cserélje le az alábbi paramétereket az adataira:
subscriptionId
resourceGroupName
vmName
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction?api-version=2020-06-01
Következő lépések
- Azure Spot virtuális gépet is létrehozhat Azure PowerShell vagy az Azure CLI használatával.
- Az Azure Spot virtuális gépek aktuális díjszabásáról további információt az Azure kiskereskedelmi árak API-járól talál. Mindkettőt
meterName
tartalmazza, ésskuName
tartalmazza a parancsotSpot
is. - A hibákról további információt a Hibakódok című témakörben talál.