Azure Autoscaling组中VM的应用程序版本管理

时间:2017-11-30 07:31:35

标签: azure cloud azure-web-sites devops autoscaling

目前,我正在使用自动调整的Azure VM运行应用程序。因此,假设我当前的应用程序版本,即1.0正由4个VM按照当前的应用程序负载提供服务。 现在,如果我有补丁更新并发布新版本的应用程序,即2.0,那么这个新版本的应用程序将如何更新到当前的VM运行? 如果负载增加,新VM启动,他们都将拥有这个新版本的应用程序2.0,但之前运行的4个VM,他们是否会拥有这个新版本的应用程序?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:1)

您必须从具有自定义图像作为源图像而不是来自市场图像的ARM模板启动Azure VMSS。要更新VM上的应用程序,请再次创建具有更新应用程序的VM的自定义映像,然后使用Powershell在VMSS中更新此新VM。然后,Azure VMSS会使用更新的映像自动更新“比例集”中的所有VM。以下是使用新的自定义映像更新现有VMSS的代码。

    $rgname = "myrg"
    $vmssname = "myvmss"
    # get the VMSS model
    $vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
    # set the new version in the model data
    $vmss.virtualMachineProfile.storageProfile.imageReference.id = $newImageReference
    # 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