答案 0 :(得分:2)
我们可以使用Update-AzureRmVmss
和Update-AzureRmVmssInstance
来升级VMSS实例。
如果我们想使用自定义映像升级Azure VMSS实例,我们应该确保通过自定义映像创建此VMSS。
如果我们从Azure marketplace创建VMSS,我们就无法使用自定义映像升级Azure VMSS实例。
这是我的测试:
1.我按自定义映像创建VMSS,并使用VMSS template创建它(托管磁盘)。
2,创建另一个虚拟机映像,并使用此脚本获取$ vmss,并使用Powershell升级VMSS实例:
$rgname = "vmsss"
$vmssname = "jasonvmss"
$instanceid = "1"
$newimagereference = "/subscriptions/5384xxxx-xxxx-xxxx-xxxx-xxxxe29axxxx/resourceGroups/jasonwin/providers/Microsoft.Compute/images/myImage"
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
$vmss.virtualMachineProfile.storageProfile.imageReference.id = $newImageReference
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
以下是我的截图:
我们也可以找到VMSS实例的状态:
因此,作为一种变通方法,我们可以使用模板或PowerShell创建Azure VMSS with custom image ,然后使用此脚本升级Azure VMSS实例。
注意:在我的测试中,我使用模板创建VMSS是托管磁盘,所以我们应该使用$vmss.virtualMachineProfile.storageProfile.imageReference.id
如果您创建的VMSS是非托管磁盘,我们应该使用此$vmss.virtualMachineProfile.storageProfile.osDisk.image.uri= $newURI
。
以下是有关升级VMSS实例的官方文章,请参阅it。
答案 1 :(得分:1)
根据FAQ on VMSS和VM,一般来说,VMSS运行在VHD之上。因此,如果您有一个新的VHD,那么您可以简单地删除旧的VMSS,并创建一个新的VMSS。
这是我如何描绘你的情况。
问题本身似乎很简单,除非你要求其他东西,我自欺欺人:)
如果问题是别的问题,那么需要更多地解释这个问题,其他更多经验的天蓝色的人可以帮助你。