Nasazení spotových virtuálních počítačů Azure pomocí šablony Resource Manageru
Platí pro: ✔️ Virtuální počítače s Linuxem
Použití spotových virtuálních počítačů Azure vám umožňuje využít výhod naší nevyužité kapacity za významné úspory nákladů. V jakémkoli okamžiku, kdy Azure potřebuje kapacitu zpět, infrastruktura Azure vyřadí spotové virtuální počítače Azure. Spotové virtuální počítače Azure jsou skvělé pro úlohy, které dokážou zvládnout přerušení, jako jsou úlohy dávkového zpracování, vývojové/testovací prostředí, velké výpočetní úlohy a další.
Ceny spotových virtuálních počítačů Azure jsou proměnné na základě oblasti a skladové položky. Další informace najdete v tématu Ceny virtuálních počítačů pro Linux a Windows.
Pro virtuální počítač máte možnost nastavit maximální cenu, kterou jste ochotni zaplatit za hodinu. Maximální cena spotového virtuálního počítače Azure se dá nastavit v amerických dolarech (USD) s využitím až pěti desetinných míst. Například hodnota 0.98765
by byla maximální cena 0,98765 USD za hodinu. Pokud nastavíte maximální cenu -1
, vyřazení virtuálních počítačů není založené na ceně a její cena bude aktuální cena pro spotové virtuální počítače Azure nebo cena standardního virtuálního počítače, podle toho, co je nižší, pokud je k dispozici kapacita a kvóta. Další informace o nastavení maximální ceny najdete v tématu Spotové virtuální počítače Azure – ceny.
Použít šablonu
Pro nasazení šablon spotových virtuálních počítačů Azure použijte"apiVersion": "2019-03-01"
nebo novější. priority
evictionPolicy
Do šablony přidejte vlastnosti a billingProfile
vlastnosti:
"priority": "Spot",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": -1
}
Tady je ukázková šablona s přidanými vlastnostmi pro spotový virtuální počítač Azure. Názvy prostředků nahraďte vlastními a <password>
heslem pro účet místního správce na virtuálním počítači.
{
"$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')]"
}
}
}
Simulace vyřazení
Můžete simulovat vyřazení spotového virtuálního počítače Azure a otestovat odpověď aplikace na náhlé vyřazení.
Nahraďte následující parametry informacemi:
subscriptionId
resourceGroupName
vmName
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction?api-version=2020-06-01
Další kroky
- Můžete také vytvořit spotový virtuální počítač Azure pomocí Azure PowerShellu nebo Azure CLI.
- Další informace o aktuálních cenách spotových virtuálních počítačů Azure najdete v tématu Rozhraní API maloobchodních cen Azure. Oba
meterName
askuName
obsahujeSpot
. - Další informace o chybě najdete v tématu Kódy chyb.