Azure Spot Sanal Makineleri bir Resource Manager dağıtma
Uygulama: ✔️ Linux VM'leri
Azure Spot Sanal Makineler'i kullanarak kullanılmayan kapasiteden önemli maliyet tasarrufları elde edersiniz. Azure'ın kapasiteye geri ihtiyacı olduğu herhangi bir zamanda Azure altyapısı Azure Spot Sanal Makineleri'nden çıkar. Bu nedenle, Azure Spot Sanal Makineler toplu işlem işleri, geliştirme/test ortamları, büyük işlem iş yükleri ve daha fazlası gibi kesintileri iş yükleri için harikadır.
Azure Spot Sanal Makinelerinin fiyatlandırması bölge ve SKU'ya göre değişkendir. Daha fazla bilgi için bkz. Linux için VM fiyatlandırması ve Windows.
VM için saat başına ödeme yapmak istediğiniz maksimum fiyatı ayarlama seçeneğiniz vardır. Azure Spot Sanal Makinesi için maksimum fiyat ABD doları (USD) olarak ayarlanacak ve en fazla 5 ondalık basamak kullanılabilir. Örneğin, değer saatte 0.98765 0,98765 ABD doları olan maksimum fiyat olabilir. Maksimum fiyatı olarak -1 ayarlamanız, VM'nin fiyata göre çıkarılamayr. Kapasite ve kota kullanılabilir olduğu sürece VM'nin fiyatı Azure Spot Sanal Makineler için geçerli fiyat veya standart bir VM'nin fiyatı olur. Maksimum fiyatı ayarlama hakkında daha fazla bilgi için bkz. Azure Spot Sanal Makineleri - Fiyatlandırma.
Şablon kullanma
Azure Spot Sanal Makine şablonu dağıtımları için veya daha "apiVersion": "2019-03-01" yenisini kullanın. şablonuna priority evictionPolicy , ve özelliklerini billingProfile ekleyin:
"priority": "Spot",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": -1
}
Azure Spot Sanal Makinesi için eklenen özelliklere sahip örnek bir şablon burada velenmiştir. Kaynak adlarını kendi adlarınızı ve <password> VM'de yerel yönetici hesabı için bir parolayla değiştirin.
{
"$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": "18.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')]"
}
}
}
Çıkarmanın simülasyonunu yapma
Azure Spot Sanal Makinesi'nin çıkarma benzetimini kullanarak, uygulamanın ani bir çıkarmaya ne kadar iyi yanıt veserceye yanıt vetkisini test edin.
Aşağıdakini bilgileriyle değiştirin:
subscriptionIdresourceGroupNamevmName
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction?api-version=2020-06-01
Sonraki adımlar
Azure Spot Sanal Makinesi oluşturmak için azure Azure PowerShell azure CLI'sini de kullanabilirsiniz.
Azure Spot Sanal Makine fiyatlandırması hakkında bilgi için Azure perakende fiyatları API'sini kullanarak geçerli fiyatlandırma bilgilerini sorgular. ve meterName her ikisi de skuName Spot içerir.
Bir hatayla karşılaşırsanız bkz. Hata kodları.