如何在 Azure 中自动缩放 VM
How to autoscale VM in Azure
我有一个 windows 虚拟机,我想在其上实现自动缩放。
目前 Azure Scaleset 不接受已经创建的 VM。
有没有人根据 CPU 指标在 Azure VM 上像在 AWS 上那样实施自动缩放?
我认为您可以水平 "scale VMs" 的唯一方法是使用 VM 比例集。尽管规模集不支持 运行 台机器,但我建议您拍摄 运行 台机器的快照,并将其用作 VM 规模集的映像,并从 2 个映像开始,然后实施您的指标可以扩展到更多实例。
Has anyone implemented Autoscaling on Azure VM like its there on AWS
based on CPU metrics ?
正如Rudi所说,我们可以使用Azure虚拟机规模集来实现这一点。 VMSS 正在缩减或缩减,创建另一个 VM 以进行横向扩展,移除一个 VM 以进行缩减。
在 Azure 中,我们可以使用 Runbook 来扩大或缩小规模。使用调整 VM 大小来实现此目的。
我们可以通过 Azure 门户进行设置:
指标-->添加指标警报-->select runbook:
注:
这样,放大或缩小将重新启动您的 VM。
更新:
如果你想 横向扩展 Azure VM。我想我们可以使用 Azure VMSS。
使用自动缩放规则来实现它。
更多关于Azure VMSS的信息,请参考这篇link。
更新2:
我们可以使用 Powershell 将托管磁盘复制到 Azure 存储帐户,我们可以使用这个 powershell 脚本:
##create $SAS
$sas = Grant-AzureRmDiskAccess -ResourceGroupName shui -DiskName test -DurationInSecond 3600 -Access Read
$destContext = New-AzureStorageContext –StorageAccountName contosostorageav1 -StorageAccountKey 'YourStorageAccountKey'
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer 'vhds' -DestContext $destContext -DestBlob 'MyDestinationBlobName.vhd'
更新3:
我们可以使用这个脚本:
$rgname = "myrg"
$vmssname = "myvmss"
$newversion = "4.0.20160229"
$instanceid = "1"
# get the VMSS model
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.imageReference.version = $newversion
# update the virtual machine scale set model
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
# now start updating instances
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
更多相关信息,请参考这篇link。
我有一个 windows 虚拟机,我想在其上实现自动缩放。
目前 Azure Scaleset 不接受已经创建的 VM。
有没有人根据 CPU 指标在 Azure VM 上像在 AWS 上那样实施自动缩放?
我认为您可以水平 "scale VMs" 的唯一方法是使用 VM 比例集。尽管规模集不支持 运行 台机器,但我建议您拍摄 运行 台机器的快照,并将其用作 VM 规模集的映像,并从 2 个映像开始,然后实施您的指标可以扩展到更多实例。
Has anyone implemented Autoscaling on Azure VM like its there on AWS based on CPU metrics ?
正如Rudi所说,我们可以使用Azure虚拟机规模集来实现这一点。 VMSS 正在缩减或缩减,创建另一个 VM 以进行横向扩展,移除一个 VM 以进行缩减。
在 Azure 中,我们可以使用 Runbook 来扩大或缩小规模。使用调整 VM 大小来实现此目的。
我们可以通过 Azure 门户进行设置: 指标-->添加指标警报-->select runbook:
注:
这样,放大或缩小将重新启动您的 VM。
更新:
如果你想 横向扩展 Azure VM。我想我们可以使用 Azure VMSS。 使用自动缩放规则来实现它。
更多关于Azure VMSS的信息,请参考这篇link。
更新2:
我们可以使用 Powershell 将托管磁盘复制到 Azure 存储帐户,我们可以使用这个 powershell 脚本:
##create $SAS
$sas = Grant-AzureRmDiskAccess -ResourceGroupName shui -DiskName test -DurationInSecond 3600 -Access Read
$destContext = New-AzureStorageContext –StorageAccountName contosostorageav1 -StorageAccountKey 'YourStorageAccountKey'
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer 'vhds' -DestContext $destContext -DestBlob 'MyDestinationBlobName.vhd'
更新3:
我们可以使用这个脚本:
$rgname = "myrg"
$vmssname = "myvmss"
$newversion = "4.0.20160229"
$instanceid = "1"
# get the VMSS model
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.imageReference.version = $newversion
# update the virtual machine scale set model
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
# now start updating instances
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
更多相关信息,请参考这篇link。