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